import * as outputs from "../types/output";
export interface AlertingFilters {
    /**
     * A conditions for the metric usage
     */
    filters?: outputs.AlertingFiltersFilter[];
}
export interface AlertingFiltersFilter {
    /**
     * Configuration of a custom event filter. Filters custom events by title or description. If both specified, the AND logic applies
     */
    custom?: outputs.AlertingFiltersFilterCustom;
    /**
     * Configuration of a custom event filter. Filters custom events by title or description. If both specified, the AND logic applies
     */
    predefined?: outputs.AlertingFiltersFilterPredefined;
}
export interface AlertingFiltersFilterCustom {
    /**
     * Configuration of a matching filter
     */
    description?: outputs.AlertingFiltersFilterCustomDescription;
    /**
     * Configuration of a matching filter
     */
    metadata?: outputs.AlertingFiltersFilterCustomMetadata;
    /**
     * Configuration of a matching filter
     */
    title?: outputs.AlertingFiltersFilterCustomTitle;
}
export interface AlertingFiltersFilterCustomDescription {
    /**
     * The condition is case sensitive (`false`) or case insensitive (`true`).   If not set, then `false` is used, making the condition case sensitive
     */
    caseSensitive?: boolean;
    /**
     * The filter is enabled (`true`) or disabled (`false`)
     */
    enabled?: boolean;
    /**
     * Reverses the comparison **operator**. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison.   You can reverse it by setting **negate** to `true`. Possible values are `BEGINS_WITH`, `CONTAINS`, `REGEX_MATCHES`, `ENDS_WITH` and `STRING_EQUALS`
     */
    operator: string;
    /**
     * The value to compare to
     */
    value: string;
}
export interface AlertingFiltersFilterCustomMetadata {
    /**
     * Define filters for event properties. A maximum of 20 properties is allowed.
     */
    items: outputs.AlertingFiltersFilterCustomMetadataItems;
}
export interface AlertingFiltersFilterCustomMetadataItems {
    filters: outputs.AlertingFiltersFilterCustomMetadataItemsFilter[];
}
export interface AlertingFiltersFilterCustomMetadataItemsFilter {
    /**
     * GET /api/v2/eventProperties for list of available keys
     */
    key: string;
    /**
     * no documentation available
     */
    negate?: boolean;
    /**
     * Value
     */
    value: string;
}
export interface AlertingFiltersFilterCustomTitle {
    /**
     * The condition is case sensitive (`false`) or case insensitive (`true`).   If not set, then `false` is used, making the condition case sensitive
     */
    caseSensitive?: boolean;
    /**
     * The filter is enabled (`true`) or disabled (`false`)
     */
    enabled?: boolean;
    /**
     * Reverses the comparison **operator**. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison.   You can reverse it by setting **negate** to `true`. Possible values are `BEGINS_WITH`, `CONTAINS`, `REGEX_MATCHES`, `ENDS_WITH` and `STRING_EQUALS`
     */
    operator: string;
    /**
     * The value to compare to
     */
    value: string;
}
export interface AlertingFiltersFilterPredefined {
    /**
     * The alert triggers when the problem of specified severity arises while the specified event **is** happening (`false`) or while the specified event is **not** happening (`true`).   For example, if you chose the Slowdown (`PERFORMANCE`) severity and Unexpected high traffic (`APPLICATION_UNEXPECTED_HIGH_LOAD`) event with **negate** set to `true`, the alerting profile will trigger only when the slowdown problem is raised while there is no unexpected high traffic event.  Consider the following use case as an example. The Slowdown (`PERFORMANCE`) severity rule is set. Depending on the configuration of the event filter (Unexpected high traffic (`APPLICATION_UNEXPECTED_HIGH_LOAD`) event is used as an example), the options of the alerting profile is one of the following:* **negate** is set to `false`: The alert triggers when the slowdown problem is raised while unexpected high traffic event is happening.  * **negate** is set to `true`: The alert triggers when the slowdown problem is raised while there is no unexpected high traffic event.  * no event rule is set: The alert triggers when the slowdown problem is raised, regardless of any events
     */
    negate?: boolean;
    /**
     * The type of the predefined event. Possible values are `APPLICATION_ERROR_RATE_INCREASED`, `APPLICATION_SLOWDOWN`, `APPLICATION_UNEXPECTED_HIGH_LOAD`, `APPLICATION_UNEXPECTED_LOW_LOAD`, `AWS_LAMBDA_HIGH_ERROR_RATE`, `CUSTOM_APPLICATION_ERROR_RATE_INCREASED`, `CUSTOM_APPLICATION_SLOWDOWN`, `CUSTOM_APPLICATION_UNEXPECTED_HIGH_LOAD`, `CUSTOM_APPLICATION_UNEXPECTED_LOW_LOAD`, `CUSTOM_APP_CRASH_RATE_INCREASED`, `DATABASE_CONNECTION_FAILURE`, `DATA_CENTER_SERVICE_PERFORMANCE_DEGRADATION`, `DATA_CENTER_SERVICE_UNAVAILABLE`, `EBS_VOLUME_HIGH_LATENCY`, `EC2_HIGH_CPU`, `ELB_HIGH_BACKEND_ERROR_RATE`, `ENTERPRICE_APPLICATION_PERFORMANCE_DEGRADATION`, `ENTERPRISE_APPLICATION_UNAVAILABLE`, `ESXI_GUEST_ACTIVE_SWAP_WAIT`, `ESXI_GUEST_CPU_LIMIT_REACHED`, `ESXI_HOST_CPU_SATURATION`, `ESXI_HOST_DATASTORE_LOW_DISK_SPACE`, `ESXI_HOST_DISK_QUEUE_SLOW`, `ESXI_HOST_DISK_SLOW`, `ESXI_HOST_MEMORY_SATURATION`, `ESXI_HOST_NETWORK_PROBLEMS`, `ESXI_HOST_OVERLOADED_STORAGE`, `ESXI_VM_IMPACT_HOST_CPU_SATURATION`, `ESXI_VM_IMPACT_HOST_MEMORY_SATURATION`, `EXTERNAL_SYNTHETIC_TEST_OUTAGE`, `EXTERNAL_SYNTHETIC_TEST_SLOWDOWN`, `HOST_OF_SERVICE_UNAVAILABLE`, `HTTP_CHECK_GLOBAL_OUTAGE`, `HTTP_CHECK_LOCAL_OUTAGE`, `HTTP_CHECK_TEST_LOCATION_SLOWDOWN`, `MOBILE_APPLICATION_ERROR_RATE_INCREASED`, `MOBILE_APPLICATION_SLOWDOWN`, `MOBILE_APPLICATION_UNEXPECTED_HIGH_LOAD`, `MOBILE_APPLICATION_UNEXPECTED_LOW_LOAD`, `MOBILE_APP_CRASH_RATE_INCREASED`, `MONITORING_UNAVAILABLE`, `OSI_DISK_LOW_INODES`, `OSI_GRACEFULLY_SHUTDOWN`, `OSI_HIGH_CPU`, `OSI_HIGH_MEMORY`, `OSI_LOW_DISK_SPACE`, `OSI_NIC_DROPPED_PACKETS_HIGH`, `OSI_NIC_ERRORS_HIGH`, `OSI_NIC_UTILIZATION_HIGH`, `OSI_SLOW_DISK`, `OSI_UNEXPECTEDLY_UNAVAILABLE`, `PGI_OF_SERVICE_UNAVAILABLE`, `PGI_UNAVAILABLE`, `PG_LOW_INSTANCE_COUNT`, `PROCESS_CRASHED`, `PROCESS_HIGH_GC_ACTIVITY`, `PROCESS_MEMORY_RESOURCE_EXHAUSTED`, `PROCESS_NA_HIGH_CONN_FAIL_RATE`, `PROCESS_NA_HIGH_LOSS_RATE`, `PROCESS_THREADS_RESOURCE_EXHAUSTED`, `RDS_HIGH_CPU`, `RDS_HIGH_LATENCY`, `RDS_LOW_MEMORY`, `RDS_LOW_STORAGE_SPACE`, `RDS_OF_SERVICE_UNAVAILABLE`, `RDS_RESTART_SEQUENCE`, `SERVICE_ERROR_RATE_INCREASED`, `SERVICE_SLOWDOWN`, `SERVICE_UNEXPECTED_HIGH_LOAD`, `SERVICE_UNEXPECTED_LOW_LOAD`, `SYNTHETIC_GLOBAL_OUTAGE`, `SYNTHETIC_LOCAL_OUTAGE`, `SYNTHETIC_NODE_OUTAGE`, `SYNTHETIC_PRIVATE_LOCATION_OUTAGE` and `SYNTHETIC_TEST_LOCATION_SLOWDOWN`
     */
    type: string;
}
export interface AlertingProfileEventTypeFilter {
    /**
     * Configuration of a custom event filter. Filters custom events by title or description. If both specified, the AND logic applies
     */
    customEventFilters?: outputs.AlertingProfileEventTypeFilterCustomEventFilter[];
    /**
     * Configuration of a custom event filter. Filters custom events by title or description. If both specified, the AND logic applies
     */
    predefinedEventFilters?: outputs.AlertingProfileEventTypeFilterPredefinedEventFilter[];
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
}
export interface AlertingProfileEventTypeFilterCustomEventFilter {
    /**
     * Configuration of a matching filter
     */
    customDescriptionFilters?: outputs.AlertingProfileEventTypeFilterCustomEventFilterCustomDescriptionFilter[];
    /**
     * Configuration of a matching filter
     */
    customTitleFilters?: outputs.AlertingProfileEventTypeFilterCustomEventFilterCustomTitleFilter[];
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
}
export interface AlertingProfileEventTypeFilterCustomEventFilterCustomDescriptionFilter {
    /**
     * The condition is case sensitive (`false`) or case insensitive (`true`).   If not set, then `false` is used, making the condition case sensitive
     */
    caseInsensitive?: boolean;
    /**
     * The filter is enabled (`true`) or disabled (`false`)
     */
    enabled?: boolean;
    /**
     * Reverses the comparison **operator**. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison.   You can reverse it by setting **negate** to `true`. Possible values are `BEGINS_WITH`, `CONTAINS`, `CONTAINS_REGEX`, `ENDS_WITH` and `EQUALS`
     */
    operator: string;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value: string;
}
export interface AlertingProfileEventTypeFilterCustomEventFilterCustomTitleFilter {
    /**
     * The condition is case sensitive (`false`) or case insensitive (`true`).   If not set, then `false` is used, making the condition case sensitive
     */
    caseInsensitive?: boolean;
    /**
     * The filter is enabled (`true`) or disabled (`false`)
     */
    enabled?: boolean;
    /**
     * Reverses the comparison **operator**. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison.   You can reverse it by setting **negate** to `true`. Possible values are `BEGINS_WITH`, `CONTAINS`, `CONTAINS_REGEX`, `ENDS_WITH` and `EQUALS`
     */
    operator: string;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value: string;
}
export interface AlertingProfileEventTypeFilterPredefinedEventFilter {
    /**
     * The type of the predefined event. Possible values are `APPLICATION_ERROR_RATE_INCREASED`, `APPLICATION_SLOWDOWN`, `APPLICATION_UNEXPECTED_HIGH_LOAD`, `APPLICATION_UNEXPECTED_LOW_LOAD`, `AWS_LAMBDA_HIGH_ERROR_RATE`, `CUSTOM_APPLICATION_ERROR_RATE_INCREASED`, `CUSTOM_APPLICATION_SLOWDOWN`, `CUSTOM_APPLICATION_UNEXPECTED_HIGH_LOAD`, `CUSTOM_APPLICATION_UNEXPECTED_LOW_LOAD`, `CUSTOM_APP_CRASH_RATE_INCREASED`, `DATABASE_CONNECTION_FAILURE`, `DATA_CENTER_SERVICE_PERFORMANCE_DEGRADATION`, `DATA_CENTER_SERVICE_UNAVAILABLE`, `EBS_VOLUME_HIGH_LATENCY`, `EC2_HIGH_CPU`, `ELB_HIGH_BACKEND_ERROR_RATE`, `ENTERPRICE_APPLICATION_PERFORMANCE_DEGRADATION`, `ENTERPRISE_APPLICATION_UNAVAILABLE`, `ESXI_GUEST_ACTIVE_SWAP_WAIT`, `ESXI_GUEST_CPU_LIMIT_REACHED`, `ESXI_HOST_CPU_SATURATION`, `ESXI_HOST_DATASTORE_LOW_DISK_SPACE`, `ESXI_HOST_DISK_QUEUE_SLOW`, `ESXI_HOST_DISK_SLOW`, `ESXI_HOST_MEMORY_SATURATION`, `ESXI_HOST_NETWORK_PROBLEMS`, `ESXI_HOST_OVERLOADED_STORAGE`, `ESXI_VM_IMPACT_HOST_CPU_SATURATION`, `ESXI_VM_IMPACT_HOST_MEMORY_SATURATION`, `EXTERNAL_SYNTHETIC_TEST_OUTAGE`, `EXTERNAL_SYNTHETIC_TEST_SLOWDOWN`, `HOST_OF_SERVICE_UNAVAILABLE`, `HTTP_CHECK_GLOBAL_OUTAGE`, `HTTP_CHECK_LOCAL_OUTAGE`, `HTTP_CHECK_TEST_LOCATION_SLOWDOWN`, `MOBILE_APPLICATION_ERROR_RATE_INCREASED`, `MOBILE_APPLICATION_SLOWDOWN`, `MOBILE_APPLICATION_UNEXPECTED_HIGH_LOAD`, `MOBILE_APPLICATION_UNEXPECTED_LOW_LOAD`, `MOBILE_APP_CRASH_RATE_INCREASED`, `MONITORING_UNAVAILABLE`, `OSI_DISK_LOW_INODES`, `OSI_GRACEFULLY_SHUTDOWN`, `OSI_HIGH_CPU`, `OSI_HIGH_MEMORY`, `OSI_LOW_DISK_SPACE`, `OSI_NIC_DROPPED_PACKETS_HIGH`, `OSI_NIC_ERRORS_HIGH`, `OSI_NIC_UTILIZATION_HIGH`, `OSI_SLOW_DISK`, `OSI_UNEXPECTEDLY_UNAVAILABLE`, `PGI_OF_SERVICE_UNAVAILABLE`, `PGI_UNAVAILABLE`, `PG_LOW_INSTANCE_COUNT`, `PROCESS_CRASHED`, `PROCESS_HIGH_GC_ACTIVITY`, `PROCESS_MEMORY_RESOURCE_EXHAUSTED`, `PROCESS_NA_HIGH_CONN_FAIL_RATE`, `PROCESS_NA_HIGH_LOSS_RATE`, `PROCESS_THREADS_RESOURCE_EXHAUSTED`, `RDS_HIGH_CPU`, `RDS_HIGH_LATENCY`, `RDS_LOW_MEMORY`, `RDS_LOW_STORAGE_SPACE`, `RDS_OF_SERVICE_UNAVAILABLE`, `RDS_RESTART_SEQUENCE`, `SERVICE_ERROR_RATE_INCREASED`, `SERVICE_SLOWDOWN`, `SERVICE_UNEXPECTED_HIGH_LOAD`, `SERVICE_UNEXPECTED_LOW_LOAD`, `SYNTHETIC_GLOBAL_OUTAGE`, `SYNTHETIC_LOCAL_OUTAGE`, `SYNTHETIC_NODE_OUTAGE`, `SYNTHETIC_PRIVATE_LOCATION_OUTAGE` and `SYNTHETIC_TEST_LOCATION_SLOWDOWN`
     */
    eventType: string;
    /**
     * The alert triggers when the problem of specified severity arises while the specified event **is** happening (`false`) or while the specified event is **not** happening (`true`).   For example, if you chose the Slowdown (`PERFORMANCE`) severity and Unexpected high traffic (`APPLICATION_UNEXPECTED_HIGH_LOAD`) event with **negate** set to `true`, the alerting profile will trigger only when the slowdown problem is raised while there is no unexpected high traffic event.  Consider the following use case as an example. The Slowdown (`PERFORMANCE`) severity rule is set. Depending on the configuration of the event filter (Unexpected high traffic (`APPLICATION_UNEXPECTED_HIGH_LOAD`) event is used as an example), the behavior of the alerting profile is one of the following:* **negate** is set to `false`: The alert triggers when the slowdown problem is raised while unexpected high traffic event is happening.  * **negate** is set to `true`: The alert triggers when the slowdown problem is raised while there is no unexpected high traffic event.  * no event rule is set: The alert triggers when the slowdown problem is raised, regardless of any events
     */
    negate?: boolean;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
}
export interface AlertingProfileMetadata {
    /**
     * Dynatrace server version
     */
    clusterVersion?: string;
    /**
     * A Sorted list of the version numbers of the configuration
     */
    configurationVersions?: number[];
    /**
     * A Sorted list of the version numbers of the configuration
     */
    currentConfigurationVersions?: string[];
}
export interface AlertingProfileRule {
    /**
     * Send a notification if a problem remains open longer than *X* minutes
     */
    delayInMinutes: number;
    /**
     * The severity level to trigger the alert. Possible values are `AVAILABILITY`,	`CUSTOM_ALERT`,	`ERROR`,`MONITORING_UNAVAILABLE`,`PERFORMANCE` and `RESOURCE_CONTENTION`.
     */
    severityLevel: string;
    /**
     * Configuration of the tag filtering of the alerting profile
     */
    tagFilters: outputs.AlertingProfileRuleTagFilter[];
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
}
export interface AlertingProfileRuleTagFilter {
    /**
     * The filtering mode:  * `INCLUDE_ANY`: The rule applies to monitored entities that have at least one of the specified tags. You can specify up to 100 tags.  * `INCLUDE_ALL`: The rule applies to monitored entities that have **all** of the specified tags. You can specify up to 10 tags.  * `NONE`: The rule applies to all monitored entities
     */
    includeMode: string;
    /**
     * A list of required tags
     */
    tagFilters?: outputs.AlertingProfileRuleTagFilterTagFilter[];
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
}
export interface AlertingProfileRuleTagFilterTagFilter {
    /**
     * The origin of the tag, such as AWS or Cloud Foundry. Custom tags use the `CONTEXTLESS` value
     */
    context: string;
    /**
     * The key of the tag. Custom tags have the tag value here
     */
    key: string;
    /**
     * The value of the tag. Not applicable to custom tags
     */
    value?: string;
}
export interface AlertingRules {
    /**
     * A conditions for the metric usage
     */
    rules?: outputs.AlertingRulesRule[];
}
export interface AlertingRulesRule {
    /**
     * Send a notification if a problem remains open longer than *X* minutes
     */
    delayInMinutes: number;
    /**
     * The filtering mode:  * `INCLUDE_ANY`: The rule applies to monitored entities that have at least one of the specified tags. You can specify up to 100 tags.  * `INCLUDE_ALL`: The rule applies to monitored entities that have **all** of the specified tags. You can specify up to 10 tags.  * `NONE`: The rule applies to all monitored entities
     */
    includeMode: string;
    /**
     * The severity level to trigger the alert. Possible values are `AVAILABILITY`,	`CUSTOM_ALERT`,	`ERRORS`,`MONITORING_UNAVAILABLE`,`PERFORMANCE` and `RESOURCE_CONTENTION`.
     */
    severityLevel: string;
    /**
     * Entities which contain any/all of the configured tags will match this alerting profile. It is recommended to use manual tags.
     */
    tags?: string[];
}
export interface ApiDetectionConditions {
    conditions: outputs.ApiDetectionConditionsCondition[];
}
export interface ApiDetectionConditionsCondition {
    /**
     * Possible Values: `FILE_NAME`, `FQCN`, `PACKAGE`
     */
    base: string;
    /**
     * Possible Values: `BEGINS_WITH`, `CONTAINS`
     */
    matcher: string;
    /**
     * no documentation available
     */
    pattern: string;
}
export interface AppMonitoringAppMonitoring {
    appMonitorings: outputs.AppMonitoringAppMonitoringAppMonitoring[];
}
export interface AppMonitoringAppMonitoringAppMonitoring {
    /**
     * App ID
     */
    appId: string;
    /**
     * Possible Values: `debug`, `error`, `info`, `off`, `useDefault`, `warn`
     */
    customLogLevel: string;
    /**
     * Possible Values: `off`, `on`, `useDefault`
     */
    customTraceLevel?: string;
}
export interface ApplicationAnomaliesFailureRate {
    /**
     * Parameters of failure rate increase auto-detection. Example: If the expected error rate is 1.5%, and you set an absolute increase of 1%, and a relative increase of 50%, the thresholds will be:  Absolute: 1.5% + **1%** = 2.5%  Relative: 1.5% + 1.5% * **50%** = 2.25%
     */
    auto?: outputs.ApplicationAnomaliesFailureRateAuto;
    /**
     * Fixed thresholds for failure rate increase detection
     */
    thresholds?: outputs.ApplicationAnomaliesFailureRateThresholds;
}
export interface ApplicationAnomaliesFailureRateAuto {
    /**
     * Absolute increase of failing service calls to trigger an alert, %
     */
    absolute: number;
    /**
     * Relative increase of failing service calls to trigger an alert, %
     */
    relative: number;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
}
export interface ApplicationAnomaliesFailureRateThresholds {
    /**
     * Sensitivity of the threshold.  With `low` sensitivity, high statistical confidence is used. Brief violations (for example, due to a surge in load) won't trigger alerts.  With `high` sensitivity, no statistical confidence is used. Each violation triggers alert
     */
    sensitivity: string;
    /**
     * Failure rate during any 5-minute period to trigger an alert, %
     */
    threshold: number;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
}
export interface ApplicationAnomaliesResponseTime {
    /**
     * Parameters of the response time degradation auto-detection. Violation of **any** criterion triggers an alert
     */
    auto?: outputs.ApplicationAnomaliesResponseTimeAuto;
    /**
     * Fixed thresholds for response time degradation detection
     */
    thresholds?: outputs.ApplicationAnomaliesResponseTimeThresholds;
}
export interface ApplicationAnomaliesResponseTimeAuto {
    /**
     * Minimal service load to detect response time degradation. Response time degradation of services with smaller load won't trigger alerts. Possible values are `FIFTEEN_REQUESTS_PER_MINUTE`, `FIVE_REQUESTS_PER_MINUTE`, `ONE_REQUEST_PER_MINUTE` and `TEN_REQUESTS_PER_MINUTE`
     */
    load: string;
    /**
     * Alert if the response time degrades by more than *X* milliseconds
     */
    milliseconds: number;
    /**
     * Alert if the response time degrades by more than *X* %
     */
    percent: number;
    /**
     * Alert if the response time of the slowest 10% degrades by more than *X* milliseconds
     */
    slowestMilliseconds: number;
    /**
     * Alert if the response time of the slowest 10% degrades by more than *X* milliseconds
     */
    slowestPercent: number;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
}
export interface ApplicationAnomaliesResponseTimeThresholds {
    /**
     * Minimal service load to detect response time degradation. Response time degradation of services with smaller load won't trigger alerts. Possible values are `FIFTEEN_REQUESTS_PER_MINUTE`, `FIVE_REQUESTS_PER_MINUTE`, `ONE_REQUEST_PER_MINUTE` and `TEN_REQUESTS_PER_MINUTE`
     */
    load: string;
    /**
     * Response time during any 5-minute period to trigger an alert, in milliseconds
     */
    milliseconds: number;
    /**
     * Sensitivity of the threshold.  With `low` sensitivity, high statistical confidence is used. Brief violations (for example, due to a surge in load) won't trigger alerts.  With `high` sensitivity, no statistical confidence is used. Each violation triggers an alert
     */
    sensitivity: string;
    /**
     * Response time of the 10% slowest during any 5-minute period to trigger an alert, in milliseconds
     */
    slowestMilliseconds: number;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
}
export interface ApplicationAnomaliesTraffic {
    /**
     * The configuration of traffic drops detection
     */
    drops?: outputs.ApplicationAnomaliesTrafficDrops;
    /**
     * The configuration of traffic spikes detection
     */
    spikes?: outputs.ApplicationAnomaliesTrafficSpikes;
}
export interface ApplicationAnomaliesTrafficDrops {
    /**
     * The detection is enabled (`true`) or disabled (`false`)
     */
    enabled: boolean;
    /**
     * Alert if the observed traffic is less than *X* % of the expected value
     */
    percent?: number;
}
export interface ApplicationAnomaliesTrafficSpikes {
    /**
     * The detection is enabled (`true`) or disabled (`false`)
     */
    enabled: boolean;
    /**
     * Alert if the observed traffic is less than *X* % of the expected value
     */
    percent?: number;
}
export interface ApplicationDataPrivacySessionReplayDataPrivacy {
    /**
     * (Field has overlap with `dynatrace.SessionReplayWebPrivacy`) Content masking settings for Session Replay.
     */
    contentMaskingSettings: outputs.ApplicationDataPrivacySessionReplayDataPrivacyContentMaskingSettings;
    /**
     * (Field has overlap with `dynatrace.SessionReplayWebPrivacy`) If `true`, session recording is disabled until JavaScriptAPI `dtrum.enableSessionReplay()` is called
     */
    optIn?: boolean;
    /**
     * (Field has overlap with `dynatrace.SessionReplayWebPrivacy`) A list of URLs to be excluded from recording
     */
    urlExclusionRules?: string[];
}
export interface ApplicationDataPrivacySessionReplayDataPrivacyContentMaskingSettings {
    /**
     * (Field has overlap with `dynatrace.SessionReplayWebPrivacy`) Configuration of the Session Replay masking during Playback
     */
    playback: outputs.ApplicationDataPrivacySessionReplayDataPrivacyContentMaskingSettingsPlayback;
    /**
     * (Field has overlap with `dynatrace.SessionReplayWebPrivacy`) Configuration of the Session Replay masking during Recording
     */
    recording: outputs.ApplicationDataPrivacySessionReplayDataPrivacyContentMaskingSettingsRecording;
}
export interface ApplicationDataPrivacySessionReplayDataPrivacyContentMaskingSettingsPlayback {
    /**
     * The type of the masking:
     */
    preset: string;
    /**
     * A list of masking rules
     */
    rules?: outputs.ApplicationDataPrivacySessionReplayDataPrivacyContentMaskingSettingsPlaybackRules;
}
export interface ApplicationDataPrivacySessionReplayDataPrivacyContentMaskingSettingsPlaybackRules {
    /**
     * The masking rule defining how data is hidden
     */
    rules: outputs.ApplicationDataPrivacySessionReplayDataPrivacyContentMaskingSettingsPlaybackRulesRule[];
}
export interface ApplicationDataPrivacySessionReplayDataPrivacyContentMaskingSettingsPlaybackRulesRule {
    /**
     * The selector for the element or the attribute to be masked.
     */
    selector: string;
    /**
     * The type of the masking rule
     */
    type: string;
    /**
     * Interactions with the element are (`true`) or are not (`false) masked
     */
    userInteractionHidden?: boolean;
}
export interface ApplicationDataPrivacySessionReplayDataPrivacyContentMaskingSettingsRecording {
    /**
     * The type of the masking:
     */
    preset: string;
    /**
     * A list of masking rules
     */
    rules?: outputs.ApplicationDataPrivacySessionReplayDataPrivacyContentMaskingSettingsRecordingRules;
}
export interface ApplicationDataPrivacySessionReplayDataPrivacyContentMaskingSettingsRecordingRules {
    /**
     * The masking rule defining how data is hidden
     */
    rules: outputs.ApplicationDataPrivacySessionReplayDataPrivacyContentMaskingSettingsRecordingRulesRule[];
}
export interface ApplicationDataPrivacySessionReplayDataPrivacyContentMaskingSettingsRecordingRulesRule {
    /**
     * The selector for the element or the attribute to be masked.
     */
    selector: string;
    /**
     * The type of the masking rule
     */
    type: string;
    /**
     * Interactions with the element are (`true`) or are not (`false) masked
     */
    userInteractionHidden?: boolean;
}
export interface ApplicationDetectionRuleFilterConfig {
    /**
     * Where to look for the pattern value, possible values are `DOMAIN` or `URL`
     */
    applicationMatchTarget: string;
    /**
     * The operator used for matching the application detection rule, possible values are `BEGINS_WITH`, `CONTAINS`, `ENDS_WITH`, `EQUALS`, `MATCHES`
     */
    applicationMatchType: string;
    /**
     * The value to look for with the application detection rule
     */
    pattern: string;
}
export interface ApplicationErrorRulesCustomErrors {
    /**
     * Configuration of the custom error in the web application
     */
    rules: outputs.ApplicationErrorRulesCustomErrorsRule[];
}
export interface ApplicationErrorRulesCustomErrorsRule {
    /**
     * Capture (`true`) or ignore (`false`) the error
     */
    capture?: boolean;
    /**
     * Include (`true`) or exclude (`false`) the error in Davis AI [problem detection and analysis](https://dt-url.net/a963kd2)
     */
    customAlerting?: boolean;
    /**
     * Include (`true`) or exclude (`false`) the error in Apdex calculation
     */
    impactApdex?: boolean;
    /**
     * The matching operation for the **keyPattern**. Possible values are `BEGINS_WITH`, `CONTAINS`, `ENDS_WITH` and `EQUALS`
     */
    keyMatcher?: string;
    /**
     * The key of the error to look for
     */
    keyPattern?: string;
    /**
     * The matching operation for the **valuePattern**. Possible values are `BEGINS_WITH`, `CONTAINS`, `ENDS_WITH` and `EQUALS`.
     */
    valueMatcher?: string;
    /**
     * The value of the error to look for
     */
    valuePattern?: string;
}
export interface ApplicationErrorRulesHttpErrors {
    /**
     * Configuration of the HTTP error in the web application
     */
    rules: outputs.ApplicationErrorRulesHttpErrorsRule[];
}
export interface ApplicationErrorRulesHttpErrorsRule {
    /**
     * Capture (`true`) or ignore (`false`) the error
     */
    capture?: boolean;
    /**
     * If `true`, match by errors that have CSP Rule violations
     */
    considerBlockedRequests?: boolean;
    /**
     * Include (`true`) or exclude (`false`) the error in Davis AI [problem detection and analysis](https://dt-url.net/a963kd2)
     */
    considerForAi?: boolean;
    /**
     * If `true`, match by errors that have unknown HTTP status code
     */
    considerUnknownErrorCode?: boolean;
    /**
     * The HTTP status code or status code range to match by.
     */
    errorCodes?: string;
    /**
     * The matching rule for the URL. Popssible values are `BEGINS_WITH`, `CONTAINS`, `ENDS_WITH` and `EQUALS`.
     */
    filter?: string;
    /**
     * If `true`, filter errors by URL
     */
    filterByUrl?: boolean;
    /**
     * Include (`true`) or exclude (`false`) the error in Apdex calculation
     */
    impactApdex?: boolean;
    /**
     * The URL to look for
     */
    url?: string;
}
export interface AppsecNotificationAttackCandidateBasedEmailPayload {
    /**
     * The template of the email notifications.
     * In case a value of a security problem is not set, the placeholder will be replaced by an empty string.. **Note:** Security notifications contain sensitive information. Excessive usage of placeholders in the body might leak information to untrusted parties.
     *
     * Available placeholders:
     * **{AttackDisplayId}**: The unique identifier assigned by Dynatrace, for example: "A-1234".
     * **{Title}**: Location of the attack, for example: "com.dynatrace.Class.method():120"
     * **{Type}**: The type of attack, for example: "SQL Injection".
     * **{AttackUrl}**: URL of the attack in Dynatrace.
     * **{ProcessGroupId}**: Details about the process group attacked.
     * **{EntryPoint}**: The entry point of the attack into the process, for example: "/login". Can be empty.
     * **{Status}**: The status of the attack, for example: "Exploited"
     * **{Timestamp}**: When the attack happened.
     * **{VulnerabilityName}**: Name of the associated code-level vulnerability, for example: "InMemoryDatabaseCaller.getAccountInfo():51". Can be empty.
     */
    body: string;
    /**
     * The subject of the email notifications.. Available placeholders:
     * **{AttackDisplayId}**: The unique identifier assigned by Dynatrace, for example, "A-1234".
     * **{Title}**: Location of the attack, for example: "com.dynatrace.Class.method():120"
     * **{Type}**: The type of attack, for example: "SQL Injection".
     * **{AttackUrl}**: URL of the attack in Dynatrace.
     * **{ProcessGroupId}**: Details about the process group attacked.
     * **{EntryPoint}**: The entry point of the attack into the process, for example: "/login". Can be empty.
     * **{Status}**: The status of the attack, for example: "Exploited"
     * **{Timestamp}**: When the attack happened.
     * **{VulnerabilityName}**: Name of the associated code-level vulnerability, for example: "InMemoryDatabaseCaller.getAccountInfo():51". Can be empty.
     */
    subject: string;
}
export interface AppsecNotificationAttackCandidateBasedJiraPayload {
    /**
     * The description of the Jira issue to be created by this notification.
     * In case a value of an attack is not set, the placeholder will be replaced by an empty string.. **Note:** Security notifications contain sensitive information. Excessive usage of placeholders in the description might leak information to untrusted parties.
     *
     * Available placeholders:
     * **{AttackDisplayId}**: The unique identifier assigned by Dynatrace, for example: "A-1234".
     * **{Title}**: Location of the attack, for example: "com.dynatrace.Class.method():120"
     * **{Type}**: The type of attack, for example: "SQL Injection".
     * **{AttackUrl}**: URL of the attack in Dynatrace.
     * **{ProcessGroupId}**: Details about the process group attacked.
     * **{EntryPoint}**: The entry point of the attack into the process, for example: "/login". Can be empty.
     * **{Status}**: The status of the attack, for example: "Exploited"
     * **{Timestamp}**: When the attack happened.
     * **{VulnerabilityName}**: Name of the associated code-level vulnerability, for example: "InMemoryDatabaseCaller.getAccountInfo():51". Can be empty.
     */
    description: string;
    /**
     * The summary of the Jira issue to be created by this notification.. **Note:** The Jira summary field must contain less than 255 characters. Any content exceeding this limit after evaluating the placeholders will be discarded.
     *
     * Available placeholders:
     * **{AttackDisplayId}**: The unique identifier assigned by Dynatrace, for example, "A-1234".
     * **{Title}**: Location of the attack, for example: "com.dynatrace.Class.method():120"
     * **{Type}**: The type of attack, for example: "SQL Injection".
     * **{AttackUrl}**: URL of the attack in Dynatrace.
     * **{ProcessGroupId}**: Details about the process group attacked.
     * **{EntryPoint}**: The entry point of the attack into the process, for example: "/login". Can be empty.
     * **{Status}**: The status of the attack, for example: "Exploited"
     * **{Timestamp}**: When the attack happened.
     * **{VulnerabilityName}**: Name of the associated code-level vulnerability, for example: "InMemoryDatabaseCaller.getAccountInfo():51". Can be empty.
     */
    summary: string;
}
export interface AppsecNotificationAttackCandidateBasedWebhookPayload {
    /**
     * This is the content your notification message will include when users view it.
     * In case a value of an attack is not set, the placeholder will be replaced by an empty string.. **Note:** Security notifications contain sensitive information. Excessive usage of placeholders in the custom payload might leak information to untrusted parties.
     *
     * Available placeholders:
     * **{AttackDisplayId}**: The unique identifier assigned by Dynatrace, for example: "A-1234".
     * **{Title}**: Location of the attack, for example: "com.dynatrace.Class.method():120"
     * **{Type}**: The type of attack, for example: "SQL Injection".
     * **{AttackUrl}**: URL of the attack in Dynatrace.
     * **{ProcessGroupId}**: Details about the process group attacked.
     * **{EntryPoint}**: The entry point of the attack into the process, for example: "/login". Can be empty.
     * **{Status}**: The status of the attack, for example: "Exploited"
     * **{Timestamp}**: When the attack happened.
     * **{VulnerabilityName}**: Name of the associated code-level vulnerability, for example: "InMemoryDatabaseCaller.getAccountInfo():51". Can be empty.
     */
    payload: string;
}
export interface AppsecNotificationEmailConfiguration {
    /**
     * BCC
     */
    bccRecipients?: string[];
    /**
     * CC
     */
    ccRecipients?: string[];
    /**
     * To
     */
    recipients: string[];
}
export interface AppsecNotificationJiraConfiguration {
    /**
     * The API token for the Jira profile. Using password authentication [was deprecated by Jira](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-basic-auth-and-cookie-based-auth/)
     */
    apiToken: string;
    /**
     * The type of the Jira issue to be created by this notification.
     *
     * To find all available issue types or create your own, in Jira, go to Project settings > Issue types.
     */
    issueType: string;
    /**
     * The project key of the Jira issue to be created by this notification.
     */
    projectKey: string;
    /**
     * The URL of the Jira API endpoint.
     */
    url: string;
    /**
     * The username of the Jira profile.
     */
    username: string;
}
export interface AppsecNotificationSecurityProblemBasedEmailPayload {
    /**
     * The template of the email notifications.
     * In case a value of a security problem is not set, the placeholder will be replaced by an empty string.. **Note:** Security notifications contain sensitive information. Excessive usage of placeholders in the description might leak information to untrusted parties.
     *
     * Available placeholders:
     * **{SecurityProblemId}**: The unique identifier assigned by Dynatrace, for example, "S-1234".
     * **{Title}**: A short summary of the type of vulnerability that was found, for example, "Remote Code Execution".
     * **{Description}**: A more detailed description of the vulnerability.
     * **{CvssScore}**: CVSS score of the identified vulnerability, for example, "10.0". Can be empty.
     * **{DavisSecurityScore}**: [Davis Security Score](https://www.dynatrace.com/support/help/how-to-use-dynatrace/application-security/davis-security-score/) is an enhanced risk-calculation score based on the CVSS, for example, "10.0".
     * **{Severity}**: The security problem severity, for example, "Critical" or "Medium".
     * **{SecurityProblemUrl}**: URL of the security problem in Dynatrace.
     * **{AffectedEntities}**: Details about the entities affected by the security problem in a json array.
     * **{ManagementZones}**: Comma-separated list of all management zones affected by the vulnerability at the time of detection.
     * **{Tags}**: Comma-separated list of tags that are defined for a vulnerability's affected entities. For example: "PROD, owner:John". Assign the tag's key in square brackets: **{Tags[key]}** to get all associated values. For example: "{Tags[owner]}" will be resolved as "John". Tags without an assigned value will be resolved as empty string.
     * **{Exposed}**: Describes whether one or more affected process is exposed to the public Internet. Can be "true" or "false".
     * **{DataAssetsReachable}**: Describes whether one or more affected process can reach data assets. Can be "true" or "false".
     * **{ExploitAvailable}**: Describes whether there's an exploit available for the vulnerability. Can be "true" or "false".
     */
    body: string;
    /**
     * The subject of the email notifications.. Available placeholders:
     * **{SecurityProblemId}**: The unique identifier assigned by Dynatrace, for example, "S-1234".
     * **{Title}**: A short summary of the type of vulnerability that was found, for example, "Remote Code Execution".
     * **{CvssScore}**: CVSS score of the identified vulnerability, for example, "10.0". Can be empty.
     * **{DavisSecurityScore}**: [Davis Security Score](https://www.dynatrace.com/support/help/how-to-use-dynatrace/application-security/davis-security-score/) is an enhanced risk-calculation score based on the CVSS, for example, "10.0".
     * **{Severity}**: The security problem severity, for example, "Critical" or "Medium".
     * **{SecurityProblemUrl}**: URL of the security problem in Dynatrace.
     * **{Exposed}**: Describes whether one or more affected process is exposed to the public Internet. Can be "true" or "false".
     * **{DataAssetsReachable}**: Describes whether one or more affected process can reach data assets. Can be "true" or "false".
     * **{ExploitAvailable}**: Describes whether there's an exploit available for the vulnerability. Can be "true" or "false".
     */
    subject: string;
}
export interface AppsecNotificationSecurityProblemBasedJiraPayload {
    /**
     * The description of the Jira issue to be created by this notification.
     * In case a value of a security problem is not set, the placeholder will be replaced by an empty string.. **Note:** Security notifications contain sensitive information. Excessive usage of placeholders in the description might leak information to untrusted parties.
     *
     * Available placeholders:
     * **{SecurityProblemId}**: The unique identifier assigned by Dynatrace, for example, "S-1234".
     * **{Title}**: A short summary of the type of vulnerability that was found, for example, "Remote Code Execution".
     * **{Description}**: A more detailed description of the vulnerability.
     * **{CvssScore}**: CVSS score of the identified vulnerability, for example, "10.0". Can be empty.
     * **{DavisSecurityScore}**: [Davis Security Score](https://www.dynatrace.com/support/help/how-to-use-dynatrace/application-security/davis-security-score/) is an enhanced risk-calculation score based on the CVSS, for example, "10.0".
     * **{Severity}**: The security problem severity, for example, "Critical" or "Medium".
     * **{SecurityProblemUrl}**: URL of the security problem in Dynatrace.
     * **{AffectedEntities}**: Details about the entities affected by the security problem in a json array.
     * **{ManagementZones}**: Comma-separated list of all management zones affected by the vulnerability at the time of detection.
     * **{Tags}**: Comma-separated list of tags that are defined for a vulnerability's affected entities. For example: "PROD, owner:John". Assign the tag's key in square brackets: **{Tags[key]}** to get all associated values. For example: "{Tags[owner]}" will be resolved as "John". Tags without an assigned value will be resolved as empty string.
     * **{Exposed}**: Describes whether one or more affected process is exposed to the public Internet. Can be "true" or "false".
     * **{DataAssetsReachable}**: Describes whether one or more affected process can reach data assets. Can be "true" or "false".
     * **{ExploitAvailable}**: Describes whether there's an exploit available for the vulnerability. Can be "true" or "false".
     */
    description: string;
    /**
     * The summary of the Jira issue to be created by this notification.. **Note:** The Jira summary field must contain less than 255 characters. Any content exceeding this limit after evaluating the placeholders will be discarded.
     *
     * Available placeholders:
     * **{SecurityProblemId}**: The unique identifier assigned by Dynatrace, for example, "S-1234".
     * **{Title}**: A short summary of the type of vulnerability that was found, for example, "Remote Code Execution".
     * **{CvssScore}**: CVSS score of the identified vulnerability, for example, "10.0". Can be empty.
     * **{DavisSecurityScore}**: [Davis Security Score](https://www.dynatrace.com/support/help/how-to-use-dynatrace/application-security/davis-security-score/) is an enhanced risk-calculation score based on the CVSS, for example, "10.0".
     * **{Severity}**: The security problem severity, for example, "Critical" or "Medium".
     * **{SecurityProblemUrl}**: URL of the security problem in Dynatrace.
     * **{Exposed}**: Describes whether one or more affected process is exposed to the public Internet. Can be "true" or "false".
     * **{DataAssetsReachable}**: Describes whether one or more affected process can reach data assets. Can be "true" or "false".
     * **{ExploitAvailable}**: Describes whether there's an exploit available for the vulnerability. Can be "true" or "false".
     */
    summary: string;
}
export interface AppsecNotificationSecurityProblemBasedWebhookPayload {
    /**
     * This is the content your notification message will include when users view it.
     * In case a value of a security problem is not set, the placeholder will be replaced by an empty string.. **Note:** Security notifications contain sensitive information. Excessive usage of placeholders in the custom payload might leak information to untrusted parties.
     *
     * Available placeholders:
     * **{SecurityProblemId}**: The unique identifier assigned by Dynatrace, for example, "S-1234".
     * **{Title}**: A short summary of the type of vulnerability that was found, for example, "Remote Code Execution".
     * **{Description}**: A more detailed description of the vulnerability.
     * **{CvssScore}**: CVSS score of the identified vulnerability, for example, "10.0". Can be empty.
     * **{DavisSecurityScore}**: [Davis Security Score](https://www.dynatrace.com/support/help/how-to-use-dynatrace/application-security/davis-security-score/) is an enhanced risk-calculation score based on the CVSS, for example, "10.0".
     * **{Severity}**: The security problem severity, for example, "Critical" or "Medium".
     * **{SecurityProblemUrl}**: URL of the security problem in Dynatrace.
     * **{AffectedEntities}**: Details about the entities affected by the security problem in a json array.
     * **{ManagementZones}**: Comma-separated list of all management zones affected by the vulnerability at the time of detection.
     * **{Tags}**: Comma-separated list of tags that are defined for a vulnerability's affected entities. For example: "PROD, owner:John". Assign the tag's key in square brackets: **{Tags[key]}** to get all associated values. For example: "{Tags[owner]}" will be resolved as "John". Tags without an assigned value will be resolved as empty string.
     * **{Exposed}**: Describes whether one or more affected process is exposed to the public Internet. Can be "true" or "false".
     * **{DataAssetsReachable}**: Describes whether one or more affected process can reach data assets. Can be "true" or "false".
     * **{ExploitAvailable}**: Describes whether there's an exploit available for the vulnerability. Can be "true" or "false".
     */
    payload: string;
}
export interface AppsecNotificationWebhookConfiguration {
    /**
     * Accept any SSL certificate (including self-signed and invalid certificates)
     */
    acceptAnyCertificate: boolean;
    /**
     * Use additional HTTP headers to attach any additional information, for example, configuration, authorization, or metadata.
     *
     * Note that JSON-based webhook endpoints require the addition of the **Content-Type: application/json** header to enable escaping of special characters and to avoid malformed JSON content.
     */
    headers?: outputs.AppsecNotificationWebhookConfigurationHeaders;
    /**
     * Webhook endpoint URL
     */
    url: string;
}
export interface AppsecNotificationWebhookConfigurationHeaders {
    headers: outputs.AppsecNotificationWebhookConfigurationHeadersHeader[];
}
export interface AppsecNotificationWebhookConfigurationHeadersHeader {
    /**
     * no documentation available
     */
    name: string;
    /**
     * Secret HTTP header value
     */
    secret: boolean;
    /**
     * The secret value of the HTTP header. May contain an empty value.
     */
    secretValue?: string;
    /**
     * The value of the HTTP header. May contain an empty value.
     */
    value?: string;
}
export interface AttackAllowlistAttackHandling {
    /**
     * Possible Values: `MONITOR`, `OFF`
     */
    blockingStrategy: string;
}
export interface AttackAllowlistCriteria {
    /**
     * Only consider attacks matching the specified pattern.
     */
    attackPattern?: string;
    /**
     * Source IP
     */
    sourceIp?: string;
}
export interface AttackAllowlistMetadata {
    /**
     * no documentation available
     */
    comment: string;
}
export interface AttackAllowlistResourceAttributeConditions {
    resourceAttributeConditions: outputs.AttackAllowlistResourceAttributeConditionsResourceAttributeCondition[];
}
export interface AttackAllowlistResourceAttributeConditionsResourceAttributeCondition {
    /**
     * Possible Values: `CONTAINS`, `DOES_NOT_CONTAIN`, `DOES_NOT_END_WITH`, `DOES_NOT_EXIST`, `DOES_NOT_START_WITH`, `ENDS_WITH`, `EQUALS`, `EXISTS`, `NOT_EQUALS`, `STARTS_WITH`
     */
    matcher: string;
    /**
     * Resource attribute key
     */
    resourceAttributeKey: string;
    /**
     * Resource attribute value
     */
    resourceAttributeValue?: string;
}
export interface AttackAllowlistRules {
    rules: outputs.AttackAllowlistRulesRule[];
}
export interface AttackAllowlistRulesRule {
    /**
     * Possible Values: `ACTOR_IP`, `DETECTION_TYPE`, `ENTRY_POINT_PAYLOAD`, `ENTRY_POINT_PAYLOAD_DOMAIN`, `ENTRY_POINT_PAYLOAD_PORT`, `ENTRY_POINT_URL_PATH`
     */
    criteriaKey: string;
    /**
     * Possible Values: `CONTAINS`, `DOES_NOT_CONTAIN`, `DOES_NOT_END_WITH`, `DOES_NOT_STARTS_WITH`, `ENDS_WITH`, `EQUALS`, `IP_CIDR`, `NOT_EQUALS`, `NOT_IN_IP_CIDR`, `STARTS_WITH`
     */
    criteriaMatcher: string;
    /**
     * Possible Values: `CMD_INJECTION`, `JNDI_INJECTION`, `SQL_INJECTION`, `SSRF`
     */
    criteriaValueDetectionType?: string;
    /**
     * Value
     */
    criteriaValueFreeText?: string;
}
export interface AttackRulesAttackHandling {
    /**
     * Possible Values: `BLOCK`, `MONITOR`, `OFF`
     */
    blockingStrategy: string;
}
export interface AttackRulesCriteria {
    /**
     * Possible Values: `ANY`, `CMD_INJECTION`, `JNDI_INJECTION`, `SQL_INJECTION`, `SSRF`
     */
    attackType: string;
    /**
     * Process group
     *
     * @deprecated This field has been deprecated
     */
    processGroup?: string;
}
export interface AttackRulesMetadata {
    /**
     * no documentation available
     */
    comment: string;
}
export interface AttackRulesResourceAttributeConditions {
    resourceAttributeConditions: outputs.AttackRulesResourceAttributeConditionsResourceAttributeCondition[];
}
export interface AttackRulesResourceAttributeConditionsResourceAttributeCondition {
    /**
     * Possible Values: `CONTAINS`, `DOES_NOT_CONTAIN`, `DOES_NOT_END_WITH`, `DOES_NOT_EXIST`, `DOES_NOT_START_WITH`, `ENDS_WITH`, `EQUALS`, `EXISTS`, `NOT_EQUALS`, `STARTS_WITH`
     */
    matcher: string;
    /**
     * Resource attribute key
     */
    resourceAttributeKey: string;
    /**
     * Resource attribute value
     */
    resourceAttributeValue?: string;
}
export interface AttackSettingsDefaultAttackHandling {
    /**
     * (v1.290) Possible Values: `BLOCK`, `MONITOR`, `OFF`
     */
    blockingStrategyDotNet?: string;
    /**
     * Possible Values: `BLOCK`, `MONITOR`, `OFF`
     */
    blockingStrategyJava: string;
}
export interface AutomationBusinessCalendarHolidays {
    /**
     * A (unordered) list of holidays valid in this calendar
     */
    holidays: outputs.AutomationBusinessCalendarHolidaysHoliday[];
}
export interface AutomationBusinessCalendarHolidaysHoliday {
    /**
     * The date of this holiday: Example `2017-07-04` for July 4th 2017
     */
    date: string;
    /**
     * An official name for this holiday
     */
    title: string;
}
export interface AutomationSchedulingRuleFixedOffset {
    /**
     * Every day of the scheduling rule referred to with `rule` will be offset by this amount of days
     */
    offset: number;
    /**
     * Refers to a scheduling rule for which to produce valid days with an offset
     */
    rule: string;
}
export interface AutomationSchedulingRuleGrouping {
    /**
     * The IDs of scheduling rules determining the days the schedule should apply to
     */
    combines: string[];
    /**
     * The IDs of scheduling rules determining the days the schedule is allowed apply to. If specified, only days that are covered by `combine` and `intersect` are valid days for the schedule
     */
    intersects?: string[];
    /**
     * The IDs of scheduling rules determing the days the schedule must not apply. If specified it reduces down the set of days covered by `combine` and `intersect`
     */
    subtracts?: string[];
}
export interface AutomationSchedulingRuleRecurrence {
    /**
     * The recurrence start. Example: `2017-07-04` represents July 4th 2017
     */
    datestart: string;
    /**
     * Restricts the recurrence to specific days within a month. `1`, `2`, `3`, ... refers to the first, second, third day in the month. You can also specify negative values to refer to values relative to the last day. `-1` refers to the last day, `-2` refers to the second to the last day, ...
     */
    daysInMonths?: number[];
    /**
     * Restricts the recurrence to specific days within a year. `1`, `2`, `3`, ... refers to the first, second, third day of the year. You can also specify negative values to refer to values relative to the last day. `-1` refers to the last day, `-2` refers to the second to the last day, ...
     */
    daysInYears?: number[];
    /**
     * Restricts the recurrence to specific days relative to Easter Sunday. `0` will yield the Easter Sunday itself
     */
    easters?: number[];
    /**
     * Possible values are `YEARLY`, `MONTHLY`, `WEEKLY`, `DAILY`, `HOURLY`, `MINUTELY` and `SECONDLY`. Example: `frequency` = `DAILY` and `interval` = `2` schedules for every other day
     */
    frequency: string;
    /**
     * The interval between each iteration. Default: 1. Example: `frequency` = `DAILY` and `interval` = `2` schedules for every other day
     */
    interval?: number;
    /**
     * Restricts the recurrence to specific months. `1` for `January`, `2` for `February`, ..., `12` for `December`
     */
    months?: number[];
    /**
     * Restricts the recurrence to specific week days. Possible values are `MO`, `TU`, `WE`, `TH`, `FR`, `SA` and `SU`
     */
    weekdays?: string[];
    /**
     * Restricts the recurrence to specific weeks within a year. `1`, `2`, `3`, ... refers to the first, second, third week of the year. You can also specify negative values to refer to values relative to the last week. `-1` refers to the last week, `-2` refers to the second to the last week, ...
     */
    weeks?: number[];
    /**
     * Possible values are `WORKING` (Work days), `HOLIDAYS` (Holidays) and `OFF` (Weekends + Holidays)
     */
    workdays: string;
}
export interface AutomationSchedulingRuleRelativeOffset {
    direction: string;
    sourceRule: string;
    targetRule: string;
}
export interface AutomationWorkflowAwsConnectionsWebIdentity {
    /**
     * An optional list of policies that can be used to restrict the AWS role
     */
    policyArns?: string[];
    /**
     * The ARN of the AWS role that should be assumed
     */
    roleArn: string;
}
export interface AutomationWorkflowTasks {
    /**
     * TODO: No documentation available
     */
    tasks?: outputs.AutomationWorkflowTasksTask[];
}
export interface AutomationWorkflowTasksTask {
    /**
     * Currently known and supported values are `dynatrace.automations:http-function`, `dynatrace.automations:run-javascript` and `dynatrace.automations:execute-dql-query`
     */
    action: string;
    /**
     * Specifies whether a task should be skipped as a no operation or not
     */
    active?: boolean;
    /**
     * Required if `withItems` is specified. By default loops execute sequentially with concurrency set to 1. You can increase how often it runs in parallel
     */
    concurrency?: string;
    /**
     * Conditions that have to be met in order to execute that task
     */
    conditions?: outputs.AutomationWorkflowTasksTaskConditions;
    /**
     * A description for this task
     */
    description?: string;
    /**
     * Parameters and values for this task as JSON code. Contents depend on the kind of task - determined by the attribute `action`
     */
    input?: string;
    /**
     * The name of the task
     */
    name: string;
    /**
     * Layouting information about the task tile when visualized. If not specified Dynatrace will position the task tiles automatically
     */
    position?: outputs.AutomationWorkflowTasksTaskPosition;
    /**
     * Configure whether to automatically rerun the task on failure. If not specified no retries will be attempted
     */
    retry?: outputs.AutomationWorkflowTasksTaskRetry;
    /**
     * Specifies a default task timeout in seconds. 15 * 60 (15min) is used when not set. Minimum 1. Maximum 604800
     */
    timeout?: string;
    /**
     * Specifies a default task wait before in seconds. 0 is used when not set
     */
    waitBefore?: string;
    /**
     * Iterates over items in a list, allowing actions to be executed repeatedly. Example: Specifying `item in [1, 2, 3]` here will execute the task three times for the numbers 1, 2 and 3 - with the current number available for scripting using the expression `{{ _.item }}`
     */
    withItems?: string;
}
export interface AutomationWorkflowTasksTaskConditions {
    /**
     * A custom condition that needs to be met for the current task to get executed
     */
    custom?: string;
    /**
     * Possible values are `SKIP` and `STOP`
     */
    else?: string;
    /**
     * key/value pairs where the `key` is the name of another task and the value the status it needs to be for the current task to get executed. Possible values are `SUCCESS`, `ERROR`, `ANY`, `OK` (Success or Skipped) and `NOK` (Error or Cancelled)
     */
    states?: {
        [key: string]: string;
    };
}
export interface AutomationWorkflowTasksTaskPosition {
    /**
     * x-coordinate for layouting
     */
    x: number;
    /**
     * y-coordinate for layouting
     */
    y: number;
}
export interface AutomationWorkflowTasksTaskRetry {
    /**
     * Specifies a maximum number of times that a task can be repeated in case it fails on execution. You can specify either a number between 1 and 99 here or use an expression (`{{}}`). Default: 1
     */
    count?: string;
    /**
     * Specifies a delay in seconds between subsequent task retries. You can specify either a number between 1 and 3600 here or an expression (`{{...}}`). Default: 1
     */
    delay?: string;
    /**
     * Specifies whether retrying the failed iterations or the whole loop. Default: true
     */
    failedLoopIterationsOnly?: boolean;
}
export interface AutomationWorkflowTrigger {
    /**
     * If specified the workflow is getting triggered based on events
     */
    event?: outputs.AutomationWorkflowTriggerEvent;
    /**
     * If specified the workflow is getting triggered based on a schedule
     */
    schedule?: outputs.AutomationWorkflowTriggerSchedule;
}
export interface AutomationWorkflowTriggerEvent {
    /**
     * If specified the workflow is getting triggered based on a schedule
     */
    active?: boolean;
    /**
     * If specified the workflow is getting triggered based on events
     */
    config?: outputs.AutomationWorkflowTriggerEventConfig;
}
export interface AutomationWorkflowTriggerEventConfig {
    /**
     * Contains trigger configuration based on Davis Events. Either `davisEvent`, `davisProblem`, `davisEvent` or `config` need to set
     */
    davisEvent?: outputs.AutomationWorkflowTriggerEventConfigDavisEvent;
    /**
     * Contains trigger configuration based on Davis Problems. Either `davisEvent`, `davisProblem`, `davisEvent` or `config` need to set
     */
    davisProblem?: outputs.AutomationWorkflowTriggerEventConfigDavisProblem;
    /**
     * Contains trigger configuration based on Davis Problems. Either `davisEvent`, `davisProblem`, `davisEvent` or `config` need to set
     */
    event?: outputs.AutomationWorkflowTriggerEventConfigEvent;
    /**
     * The type of the trigger configuration to expect within attribute `value`. Only required if `config` is set. Must not be set if `davisEvent`, `davisProblem` or `event` are present
     */
    type?: string;
    /**
     * Contains JSON encoded trigger configuration if the trigger type is neither `davisEvent`, `davisProblem` or `event`. It requires the attribute `type` to be set in combination
     */
    value?: string;
}
export interface AutomationWorkflowTriggerEventConfigDavisEvent {
    /**
     * key/value pairs for entity tags to match for. For tags that don't require a value, just specify an empty string as value. Omit this attribute if all entities should match
     */
    entityTags?: {
        [key: string]: string;
    };
    /**
     * Specifies whether all or just any of the configured entity tags need to match. Possible values: `all` and `any`. Omit this attribute if all entities should match
     */
    entityTagsMatch?: string;
    /**
     * If set to `true` closing a problem also is considered an event that triggers the execution
     */
    onProblemClose?: boolean;
    /**
     * The types of davis events to trigger an execution. Possible values are `CUSTOM_ANNOTATION`, `APPLICATION_UNEXPECTED_HIGH_LOAD`, `APPLICATION_UNEXPECTED_LOW_LOAD`, `APPLICATION_OVERLOAD_PREVENTION`, `APPLICATION_SLOWDOWN`, `AVAILABILITY_EVENT`, `LOG_AVAILABILITY`, `EC2_HIGH_CPU`, `RDS_BACKUP_COMPLETED`, `RDS_BACKUP_STARTED`, `SYNTHETIC_GLOBAL_OUTAGE`, `SYNTHETIC_LOCAL_OUTAGE`, `SYNTHETIC_TEST_LOCATION_SLOWDOWN`, `CUSTOM_CONFIGURATION`, `PROCESS_NA_HIGH_CONN_FAIL_RATE`, `OSI_HIGH_CPU`, `CUSTOM_ALERT`, `CUSTOM_APP_CRASH_RATE_INCREASED`, `CUSTOM_APPLICATION_ERROR_RATE_INCREASED`, `CUSTOM_APPLICATION_UNEXPECTED_HIGH_LOAD`, `CUSTOM_APPLICATION_UNEXPECTED_LOW_LOAD`, `CUSTOM_APPLICATION_OVERLOAD_PREVENTION`, `CUSTOM_APPLICATION_SLOWDOWN`, `PGI_CUSTOM_AVAILABILITY`, `PGI_CUSTOM_ERROR`, `CUSTOM_INFO`, `PGI_CUSTOM_PERFORMANCE`, `CUSTOM_DEPLOYMENT`, `DEPLOYMENT_CHANGED_CHANGE`, `DEPLOYMENT_CHANGED_NEW`, `DEPLOYMENT_CHANGED_REMOVED`, `EBS_VOLUME_HIGH_LATENCY`, `ERROR_EVENT`, `LOG_ERROR`, `ESXI_HOST_CONNECTION_FAILED`, `ESXI_HOST_CONNECTION_LOST`, `ESXI_GUEST_CPU_LIMIT_REACHED`, `ESXI_GUEST_ACTIVE_SWAP_WAIT`, `ESXI_HOST_CPU_SATURATION`, `ESXI_HOST_MEMORY_SATURATION`, `ESXI_HOST_MAINTENANCE`, `ESXI_HOST_NETWORK_PROBLEMS`, `ESXI_HOST_NO_CONNECTION`, `ESXI_HOST_SHUTDOWN`, `ESXI_HOST_DISK_SLOW`, `ESXI_HOST_UP`, `ESXI_HOST_TIMEOUT`, `ESXI_VM_IMPACT_HOST_CPU_SATURATION`, `ESXI_VM_IMPACT_HOST_MEMORY_SATURATION`, `DATABASE_CONNECTION_FAILURE`, `RDS_AZ_FAILOVER_COMPLETED`, `RDS_AZ_FAILOVER_STARTED`, `SERVICE_ERROR_RATE_INCREASED`, `RDS_HIGH_LATENCY`, `OSI_NIC_UTILIZATION_HIGH`, `OSI_NIC_ERRORS_HIGH`, `PGI_HAPROXY_QUEUED_REQUESTS_HIGH`, `PGI_RMQ_HIGH_FILE_DESC_USAGE`, `PGI_RMQ_HIGH_MEM_USAGE`, `PGI_RMQ_HIGH_PROCESS_USAGE`, `PGI_RMQ_HIGH_SOCKETS_USAGE`, `OSI_NIC_DROPPED_PACKETS_HIGH`, `PGI_MYSQL_SLOW_QUERIES_RATE_HIGH`, `PGI_KEYSTONE_SLOW`, `PGI_HAPROXY_SESSION_USAGE_HIGH`, `HOST_LOG_AVAILABILITY`, `HOST_LOG_ERROR`, `OSI_GRACEFULLY_SHUTDOWN`, `HOST_LOG_MATCHED`, `OSI_UNEXPECTEDLY_UNAVAILABLE`, `HOST_LOG_PERFORMANCE`, `HOST_OF_SERVICE_UNAVAILABLE`, `HTTP_CHECK_GLOBAL_OUTAGE`, `HTTP_CHECK_LOCAL_OUTAGE`, `HTTP_CHECK_TEST_LOCATION_SLOWDOWN`, `ESXI_HOST_DISK_QUEUE_SLOW`, `LOG_MATCHED`, `APPLICATION_ERROR_RATE_INCREASED`, `APPLICATION_JS_FRAMEWORK_DETECTED`, `AWS_LAMBDA_HIGH_ERROR_RATE`, `ELB_HIGH_BACKEND_ERROR_RATE`, `ELB_HIGH_FRONTEND_ERROR_RATE`, `ELB_HIGH_UNHEALTHY_HOST_RATE`, `PROCESS_HIGH_GC_ACTIVITY`, `ESXI_HOST_DATASTORE_LOW_DISK_SPACE`, `OSI_DOCKER_DEVICEMAPPER_LOW_DATA_SPACE`, `OSI_LOW_DISK_SPACE`, `OSI_DOCKER_DEVICEMAPPER_LOW_METADATA_SPACE`, `OSI_DISK_LOW_INODES`, `PGI_RMQ_LOW_DISK_SPACE`, `RDS_LOW_STORAGE_SPACE`, `MARKED_FOR_TERMINATION`, `PROCESS_MEMORY_RESOURCE_EXHAUSTED`, `OSI_HIGH_MEMORY`, `MOBILE_APP_CRASH_RATE_INCREASED`, `MOBILE_APPLICATION_ERROR_RATE_INCREASED`, `MOBILE_APPLICATION_OVERLOAD_PREVENTION`, `MOBILE_APPLICATION_SLOWDOWN`, `MOBILE_APPLICATION_UNEXPECTED_HIGH_LOAD`, `MOBILE_APPLICATION_UNEXPECTED_LOW_LOAD`, `MONITORING_UNAVAILABLE`, `PROCESS_NA_HIGH_LOSS_RATE`, `PGI_KEYSTONE_UNHEALTHY`, `ESXI_HOST_OVERLOADED_STORAGE`, `PERFORMANCE_EVENT`, `LOG_PERFORMANCE`, `PGI_LOG_AVAILABILITY`, `PGI_CRASHED_INFO`, `PROCESS_CRASHED`, `PGI_LOG_ERROR`, `PG_LOW_INSTANCE_COUNT`, `PGI_LOG_MATCHED`, `PGI_MEMDUMP`, `PGI_LOG_PERFORMANCE`, `PROCESS_RESTART`, `PGI_UNAVAILABLE`, `RDS_HIGH_CPU`, `RDS_LOW_MEMORY`, `RDS_OF_SERVICE_UNAVAILABLE`, `RESOURCE_CONTENTION_EVENT`, `SERVICE_SLOWDOWN`, `RDS_RESTART`, `RDS_RESTART_SEQUENCE`, `PGI_OF_SERVICE_UNAVAILABLE`, `OSI_SLOW_DISK`, `SYNTHETIC_NODE_OUTAGE`, `SYNTHETIC_PRIVATE_LOCATION_OUTAGE`, `EXTERNAL_SYNTHETIC_TEST_OUTAGE`, `EXTERNAL_SYNTHETIC_TEST_SLOWDOWN`, `PROCESS_THREADS_RESOURCE_EXHAUSTED`, `SERVICE_UNEXPECTED_HIGH_LOAD`, `SERVICE_UNEXPECTED_LOW_LOAD`, `ESXI_VM_DISCONNECTED`, `OPENSTACK_VM_LAUNCH_FAILED`, `ESXI_HOST_VM_MOTION_LEFT`, `ESXI_HOST_VM_MOTION_ARRIVED`, `ESXI_VM_MOTION`, `OPENSTACK_VM_MOTION`, `ESXI_VM_POWER_OFF`, `ESXI_VM_SHUTDOWN`, `OPENSTACK_HOST_VM_SHUTDOWN`, `ESXI_VM_START`, `ESXI_HOST_VM_STARTED`, `OPENSTACK_HOST_VM_STARTED`
     */
    types: string[];
}
export interface AutomationWorkflowTriggerEventConfigDavisProblem {
    categories: outputs.AutomationWorkflowTriggerEventConfigDavisProblemCategory[];
    customFilter?: string;
    /**
     * key/value pairs for entity tags to match for. For tags that don't require a value, just specify an empty string as value. Omit this attribute if all entities should match
     */
    entityTags?: {
        [key: string]: string;
    };
    /**
     * Specifies whether all or just any of the configured entity tags need to match. Possible values: `all` and `any`. Omit this attribute if all entities should match
     */
    entityTagsMatch?: string;
    /**
     * If set to `true` closing a problem also is considered an event that triggers the execution
     */
    onProblemClose?: boolean;
}
export interface AutomationWorkflowTriggerEventConfigDavisProblemCategory {
    availability?: boolean;
    custom?: boolean;
    error?: boolean;
    info?: boolean;
    monitoringUnavailable?: boolean;
    resource?: boolean;
    slowdown?: boolean;
}
export interface AutomationWorkflowTriggerEventConfigEvent {
    /**
     * Possible values: `events` or `bizevents`. Default: `events`
     */
    eventType?: string;
    /**
     * A query based on DQL for events that trigger executions
     */
    query: string;
}
export interface AutomationWorkflowTriggerSchedule {
    /**
     * The trigger is enabled (`true`) or not (`false`). Default is `false`
     */
    active?: boolean;
    /**
     * Advanced restrictions for the schedule to trigger executions
     */
    filterParameters?: outputs.AutomationWorkflowTriggerScheduleFilterParameters;
    /**
     * Refers to a configured rule that determines at which days the schedule should be active. If not specified it implies that the schedule is valid every day
     */
    rule?: string;
    /**
     * A time zone the scheduled times to align with. If not specified it will be chosen automatically based on the location of the Dynatrace Server
     */
    timeZone: string;
    /**
     * Detailed configuration about the timing constraints that trigger the execution
     */
    trigger: outputs.AutomationWorkflowTriggerScheduleTrigger;
}
export interface AutomationWorkflowTriggerScheduleFilterParameters {
    /**
     * If specified, the schedule will end triggering executions af the given amount of executions. Minimum: 1, Maximum: 10
     */
    count?: number;
    /**
     * If specified, the schedule won't trigger executions before the given date
     */
    earliestStart?: string;
    /**
     * If specified, the schedule won't trigger executions before the given time
     */
    earliestStartTime?: string;
    /**
     * If specified, the schedule won't trigger exeuctions on the given dates
     */
    excludeDates?: string[];
    /**
     * If specified, the schedule will trigger executions on the given dates, even if the main configuration prohibits it
     */
    includeDates?: string[];
    /**
     * If specified, the schedule won't trigger executions after the given date
     */
    until?: string;
}
export interface AutomationWorkflowTriggerScheduleTrigger {
    /**
     * Triggers the schedule every n minutes within a given time frame - specifying the end time on any valid day in 24h format (e.g. 14:22:44). Conflicts with `cron` and `time`. Required with `intervalMinutes` and `betweenStart`
     */
    betweenEnd?: string;
    /**
     * Triggers the schedule every n minutes within a given time frame - specifying the start time on any valid day in 24h format (e.g. 13:22:44). Conflicts with `cron` and `time`. Required with `intervalMinutes` and `betweenEnd`
     */
    betweenStart?: string;
    /**
     * Configures using cron syntax. Conflicts with `time`, `intervalMinutes`, `betweenStart` and `betweenEnd`
     */
    cron?: string;
    /**
     * Triggers the schedule every n minutes within a given time frame. Minimum: 1, Maximum: 720. Required with `betweenStart` and `betweenEnd`. Conflicts with `cron` and `time`
     */
    intervalMinutes?: number;
    /**
     * Specifies a fixed time the schedule will trigger at in 24h format (e.g. `14:23:59`). Conflicts with `cron`, `intervalMinutes`, `betweenStart` and `betweenEnd`
     */
    time?: string;
}
export interface AutotagEntitySelectorBasedRule {
    /**
     * The rule is enabled (`true`) or disabled (`false`)
     */
    enabled?: boolean;
    /**
     * Changes applied to the value after applying the value format. Possible values are `LEAVE_TEXT_AS_IS`, `TO_LOWER_CASE` and `TO_UPPER_CASE`. Default is `LEAVE_TEXT_AS_IS`
     */
    normalization?: string;
    /**
     * The entity selector string, by which the entities are selected
     */
    selector?: string;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
    /**
     * The value of the entity-selector-based auto-tag. If specified, the tag is used in the `name:valueFormat` format.
     *
     * For example, you can extend the `Infrastructure` tag to `Infrastructure:Windows` and `Infrastructure:Linux`
     */
    valueFormat?: string;
}
export interface AutotagRule {
    /**
     * A list of matching rules for the management zone. The management zone applies only if **all** conditions are fulfilled
     */
    conditions?: outputs.AutotagRuleCondition[];
    /**
     * The rule is enabled (`true`) or disabled (`false`)
     */
    enabled?: boolean;
    /**
     * Changes applied to the value after applying the value format. Possible values are `LEAVE_TEXT_AS_IS`, `TO_LOWER_CASE` and `TO_UPPER_CASE`. Default is `LEAVE_TEXT_AS_IS`
     */
    normalization?: string;
    /**
     * How to apply the management zone to underlying entities:
     *    - `SERVICE_TO_HOST_LIKE`: Apply to underlying hosts of matching services
     *    - `SERVICE_TO_PROCESS_GROUP_LIKE`: Apply to underlying process groups of matching services
     *    - `PROCESS_GROUP_TO_HOST`: Apply to underlying hosts of matching process groups
     *    - `PROCESS_GROUP_TO_SERVICE`: Apply to all services provided by matching process groups
     *    - `HOST_TO_PROCESS_GROUP_INSTANCE`: Apply to processes running on matching hosts
     *    - `CUSTOM_DEVICE_GROUP_TO_CUSTOM_DEVICE`: Apply to custom devices in matching custom device groups
     *    - `AZURE_TO_PG`: Apply to process groups connected to matching Azure entities
     *    - `AZURE_TO_SERVICE`: Apply to services provided by matching Azure entities
     */
    propagationTypes?: string[];
    /**
     * The type of Dynatrace entities the management zone can be applied to
     */
    type: string;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
    /**
     * The value of the auto-tag. If specified, the tag is used in the `name:valueFormat` format.  For example, you can extend the `Infrastructure` tag to `Infrastructure:Windows` and `Infrastructure:Linux`.  You can use the following placeholders here:  * `{AwsAutoScalingGroup:Name}`  * `{AwsAvailabilityZone:Name}`  * `{AwsElasticLoadBalancer:Name}`  * `{AwsRelationalDatabaseService:DBName}`  * `{AwsRelationalDatabaseService:Endpoint}`  * `{AwsRelationalDatabaseService:Engine}`  * `{AwsRelationalDatabaseService:InstanceClass}`  * `{AwsRelationalDatabaseService:Name}`  * `{AwsRelationalDatabaseService:Port}`  * `{AzureRegion:Name}`  * `{AzureScaleSet:Name}`  * `{AzureVm:Name}`  * `{CloudFoundryOrganization:Name}`  * `{CustomDevice:DetectedName}`  * `{CustomDevice:DnsName}`  * `{CustomDevice:IpAddress}`  * `{CustomDevice:Port}`  * `{DockerContainerGroupInstance:ContainerName}`  * `{DockerContainerGroupInstance:FullImageName}`  * `{DockerContainerGroupInstance:ImageVersion}`  * `{DockerContainerGroupInstance:StrippedImageName}`  * `{ESXIHost:HardwareModel}`  * `{ESXIHost:HardwareVendor}`  * `{ESXIHost:Name}`  * `{ESXIHost:ProductName}`  * `{ESXIHost:ProductVersion}`  * `{Ec2Instance:AmiId}`  * `{Ec2Instance:BeanstalkEnvironmentName}`  * `{Ec2Instance:InstanceId}`  * `{Ec2Instance:InstanceType}`  * `{Ec2Instance:LocalHostName}`  * `{Ec2Instance:Name}`  * `{Ec2Instance:PublicHostName}`  * `{Ec2Instance:SecurityGroup}`  * `{GoogleComputeInstance:Id}`  * `{GoogleComputeInstance:IpAddresses}`  * `{GoogleComputeInstance:MachineType}`  * `{GoogleComputeInstance:Name}`  * `{GoogleComputeInstance:ProjectId}`  * `{GoogleComputeInstance:Project}`  * `{Host:AWSNameTag}`  * `{Host:AixLogicalCpuCount}`  * `{Host:AzureHostName}`  * `{Host:AzureSiteName}`  * `{Host:BoshDeploymentId}`  * `{Host:BoshInstanceId}`  * `{Host:BoshInstanceName}`  * `{Host:BoshName}`  * `{Host:BoshStemcellVersion}`  * `{Host:CpuCores}`  * `{Host:DetectedName}`  * `{Host:Environment:AppName}`  * `{Host:Environment:BoshReleaseVersion}`  * `{Host:Environment:Environment}`  * `{Host:Environment:Link}`  * `{Host:Environment:Organization}`  * `{Host:Environment:Owner}`  * `{Host:Environment:Support}`  * `{Host:IpAddress}`  * `{Host:LogicalCpuCores}`  * `{Host:OneAgentCustomHostName}`  * `{Host:OperatingSystemVersion}`  * `{Host:PaasMemoryLimit}`  * `{HostGroup:Name}`  * `{KubernetesCluster:Name}`  * `{KubernetesNode:DetectedName}`  * `{OpenstackAvailabilityZone:Name}`  * `{OpenstackZone:Name}`  * `{OpenstackComputeNode:Name}`  * `{OpenstackProject:Name}`  * `{OpenstackVm:UnstanceType}`  * `{OpenstackVm:Name}`  * `{OpenstackVm:SecurityGroup}`  * `{ProcessGroup:AmazonECRImageAccountId}`  * `{ProcessGroup:AmazonECRImageRegion}`  * `{ProcessGroup:AmazonECSCluster}`  * `{ProcessGroup:AmazonECSContainerName}`  * `{ProcessGroup:AmazonECSFamily}`  * `{ProcessGroup:AmazonECSRevision}`  * `{ProcessGroup:AmazonLambdaFunctionName}`  * `{ProcessGroup:AmazonRegion}`  * `{ProcessGroup:ApacheConfigPath}`  * `{ProcessGroup:ApacheSparkMasterIpAddress}`  * `{ProcessGroup:AspDotNetCoreApplicationPath}`  * `{ProcessGroup:AspDotNetCoreApplicationPath}`  * `{ProcessGroup:AzureHostName}`  * `{ProcessGroup:AzureSiteName}`  * `{ProcessGroup:CassandraClusterName}`  * `{ProcessGroup:CatalinaBase}`  * `{ProcessGroup:CatalinaHome}`  * `{ProcessGroup:CloudFoundryAppId}`  * `{ProcessGroup:CloudFoundryAppName}`  * `{ProcessGroup:CloudFoundryInstanceIndex}`  * `{ProcessGroup:CloudFoundrySpaceId}`  * `{ProcessGroup:CloudFoundrySpaceName}`  * `{ProcessGroup:ColdFusionJvmConfigFile}`  * `{ProcessGroup:ColdFusionServiceName}`  * `{ProcessGroup:CommandLineArgs}`  * `{ProcessGroup:DetectedName}`  * `{ProcessGroup:DotNetCommandPath}`  * `{ProcessGroup:DotNetCommand}`  * `{ProcessGroup:DotNetClusterId}`  * `{ProcessGroup:DotNetNodeId}`  * `{ProcessGroup:ElasticsearchClusterName}`  * `{ProcessGroup:ElasticsearchNodeName}`  * `{ProcessGroup:EquinoxConfigPath}`  * `{ProcessGroup:ExeName}`  * `{ProcessGroup:ExePath}`  * `{ProcessGroup:GlassFishDomainName}`  * `{ProcessGroup:GlassFishInstanceName}`  * `{ProcessGroup:GoogleAppEngineInstance}`  * `{ProcessGroup:GoogleAppEngineService}`  * `{ProcessGroup:GoogleCloudProject}`  * `{ProcessGroup:HybrisBinDirectory}`  * `{ProcessGroup:HybrisConfigDirectory}`  * `{ProcessGroup:HybrisConfigDirectory}`  * `{ProcessGroup:HybrisDataDirectory}`  * `{ProcessGroup:IBMCicsRegion}`  * `{ProcessGroup:IBMCtgName}`  * `{ProcessGroup:IBMImsConnectRegion}`  * `{ProcessGroup:IBMImsControlRegion}`  * `{ProcessGroup:IBMImsMessageProcessingRegion}`  * `{ProcessGroup:IBMImsSoapGwName}`  * `{ProcessGroup:IBMIntegrationNodeName}`  * `{ProcessGroup:IBMIntegrationServerName}`  * `{ProcessGroup:IISAppPool}`  * `{ProcessGroup:IISRoleName}`  * `{ProcessGroup:JbossHome}`  * `{ProcessGroup:JbossMode}`  * `{ProcessGroup:JbossServerName}`  * `{ProcessGroup:JavaJarFile}`  * `{ProcessGroup:JavaJarPath}`  * `{ProcessGroup:JavaMainCLass}`  * `{ProcessGroup:KubernetesBasePodName}`  * `{ProcessGroup:KubernetesContainerName}`  * `{ProcessGroup:KubernetesFullPodName}`  * `{ProcessGroup:KubernetesNamespace}`  * `{ProcessGroup:KubernetesPodUid}`  * `{ProcessGroup:MssqlInstanceName}`  * `{ProcessGroup:NodeJsAppBaseDirectory}`  * `{ProcessGroup:NodeJsAppName}`  * `{ProcessGroup:NodeJsScriptName}`  * `{ProcessGroup:OracleSid}`  * `{ProcessGroup:PHPScriptPath}`  * `{ProcessGroup:PHPWorkingDirectory}`  * `{ProcessGroup:Ports}`  * `{ProcessGroup:RubyAppRootPath}`  * `{ProcessGroup:RubyScriptPath}`  * `{ProcessGroup:SoftwareAGInstallRoot}`  * `{ProcessGroup:SoftwareAGProductPropertyName}`  * `{ProcessGroup:SpringBootAppName}`  * `{ProcessGroup:SpringBootProfileName}`  * `{ProcessGroup:SpringBootStartupClass}`  * `{ProcessGroup:TIBCOBusinessWorksAppNodeName}`  * `{ProcessGroup:TIBCOBusinessWorksAppSpaceName}`  * `{ProcessGroup:TIBCOBusinessWorksCeAppName}`  * `{ProcessGroup:TIBCOBusinessWorksCeVersion}`  * `{ProcessGroup:TIBCOBusinessWorksDomainName}`  * `{ProcessGroup:TIBCOBusinessWorksEnginePropertyFilePath}`  * `{ProcessGroup:TIBCOBusinessWorksEnginePropertyFile}`  * `{ProcessGroup:TIBCOBusinessWorksHome}`  * `{ProcessGroup:VarnishInstanceName}`  * `{ProcessGroup:WebLogicClusterName}`  * `{ProcessGroup:WebLogicDomainName}`  * `{ProcessGroup:WebLogicHome}`  * `{ProcessGroup:WebLogicName}`  * `{ProcessGroup:WebSphereCellName}`  * `{ProcessGroup:WebSphereClusterName}`  * `{ProcessGroup:WebSphereNodeName}`  * `{ProcessGroup:WebSphereServerName}`  * `{ProcessGroup:ActorSystem}`  * `{Service:STGServerName}`  * `{Service:DatabaseHostName}`  * `{Service:DatabaseName}`  * `{Service:DatabaseVendor}`  * `{Service:DetectedName}`  * `{Service:EndpointPath}`  * `{Service:EndpointPathGatewayUrl}`  * `{Service:IIBApplicationName}`  * `{Service:MessageListenerClassName}`  * `{Service:Port}`  * `{Service:PublicDomainName}`  * `{Service:RemoteEndpoint}`  * `{Service:RemoteName}`  * `{Service:WebApplicationId}`  * `{Service:WebContextRoot}`  * `{Service:WebServerName}`  * `{Service:WebServiceNamespace}`  * `{Service:WebServiceName}`  * `{VmwareDatacenter:Name}`  * `{VmwareVm:Name}`
     */
    valueFormat?: string;
}
export interface AutotagRuleCondition {
    /**
     * Comparison for `APPLICATION_TYPE` attributes
     *
     * @deprecated You should use 'application_type' instead of 'application_type_comparison'. This attribute still exists for backwards compatibility.
     */
    applicationTypeComparisons?: outputs.AutotagRuleConditionApplicationTypeComparison[];
    /**
     * Comparison for `APPLICATION_TYPE` attributes
     */
    applicationTypes?: outputs.AutotagRuleConditionApplicationType[];
    /**
     * Comparison for `AZURE_COMPUTE_MODE` attributes
     */
    azureComputeModeComparisons?: outputs.AutotagRuleConditionAzureComputeModeComparison[];
    /**
     * Comparison for `AZURE_COMPUTE_MODE` attributes
     *
     * @deprecated You should use 'azure_compute_mode' instead of 'azure_compute_mode_comparison'. This attribute still exists for backwards compatibility.
     */
    azureComputeModes?: outputs.AutotagRuleConditionAzureComputeMode[];
    /**
     * Comparison for `AZURE_SKU` attributes
     *
     * @deprecated You should use 'azure_sku' instead of 'azure_sku_comparision'. This attribute still exists for backwards compatibility.
     */
    azureSkuComparisions?: outputs.AutotagRuleConditionAzureSkuComparision[];
    /**
     * Comparison for `AZURE_SKU` attributes
     */
    azureSkus?: outputs.AutotagRuleConditionAzureSkus[];
    /**
     * A comparison that's yet unknown to the provider. Operator and Value need to be encoded using the 'unknowns' property.
     *
     * @deprecated You should use 'comparison' instead of 'base_comparison_basic'. This attribute still exists for backwards compatibility.
     */
    baseComparisonBasics?: outputs.AutotagRuleConditionBaseComparisonBasic[];
    /**
     * Fallback for not yet known type
     *
     * @deprecated 'base_condition_key' is deprecated. You should use 'key'
     */
    baseConditionKeys?: outputs.AutotagRuleConditionBaseConditionKey[];
    /**
     * Comparison for `BITNESS` attributes
     *
     * @deprecated You should use 'bitness' instead of 'bitness_comparision'. This attribute still exists for backwards compatibility.
     */
    bitnessComparisions?: outputs.AutotagRuleConditionBitnessComparision[];
    /**
     * Comparison for `BITNESS` attributes
     */
    bitnesses?: outputs.AutotagRuleConditionBitness[];
    /**
     * Comparison for `CLOUD_TYPE` attributes
     *
     * @deprecated You should use 'cloud_type' instead of 'cloud_type_comparison'. This attribute still exists for backwards compatibility.
     */
    cloudTypeComparisons?: outputs.AutotagRuleConditionCloudTypeComparison[];
    /**
     * Comparison for `CLOUD_TYPE` attributes
     */
    cloudTypes?: outputs.AutotagRuleConditionCloudType[];
    /**
     * A comparison that's yet unknown to the provider. Operator and Value need to be encoded using the 'unknowns' property.
     */
    comparisons?: outputs.AutotagRuleConditionComparison[];
    /**
     * Comparison for `CUSTOM_APPLICATION_TYPE` attributes
     *
     * @deprecated You should use 'custom_application_type' instead of 'custom_application_type_comparison'. This attribute still exists for backwards compatibility.
     */
    customApplicationTypeComparisons?: outputs.AutotagRuleConditionCustomApplicationTypeComparison[];
    /**
     * Comparison for `CUSTOM_APPLICATION_TYPE` attributes
     */
    customApplicationTypes?: outputs.AutotagRuleConditionCustomApplicationType[];
    /**
     * Key for Custom Host Metadata
     *
     * @deprecated 'custom_host_metadata_condition_key' is deprecated. You should use 'custom_host_metadata'
     */
    customHostMetadataConditionKeys?: outputs.AutotagRuleConditionCustomHostMetadataConditionKey[];
    /**
     * Key for Custom Host Metadata
     */
    customHostMetadatas?: outputs.AutotagRuleConditionCustomHostMetadata[];
    /**
     * Key for Custom Process Metadata
     *
     * @deprecated 'custom_process_metadata_condition_key' is deprecated. You should use 'custom_process_metadata'
     */
    customProcessMetadataConditionKeys?: outputs.AutotagRuleConditionCustomProcessMetadataConditionKey[];
    /**
     * Key for Custom Process Metadata
     */
    customProcessMetadatas?: outputs.AutotagRuleConditionCustomProcessMetadata[];
    /**
     * Comparison for `DATABASE_TOPOLOGY` attributes
     */
    databaseTopologies?: outputs.AutotagRuleConditionDatabaseTopology[];
    /**
     * Comparison for `DATABASE_TOPOLOGY` attributes
     *
     * @deprecated You should use 'database_topology' instead of 'database_topology_comparison'. This attribute still exists for backwards compatibility.
     */
    databaseTopologyComparisons?: outputs.AutotagRuleConditionDatabaseTopologyComparison[];
    /**
     * Comparison for `DCRUM_DECODER_TYPE` attributes
     *
     * @deprecated You should use 'dcrum_decoder' instead of 'dcrum_decoder_comparison'. This attribute still exists for backwards compatibility.
     */
    dcrumDecoderComparisons?: outputs.AutotagRuleConditionDcrumDecoderComparison[];
    /**
     * Comparison for `DCRUM_DECODER_TYPE` attributes
     */
    dcrumDecoders?: outputs.AutotagRuleConditionDcrumDecoder[];
    /**
     * Comparison for `ENTITY_ID` attributes
     */
    entities?: outputs.AutotagRuleConditionEntity[];
    /**
     * Comparison for `ENTITY_ID` attributes
     *
     * @deprecated You should use 'entity' instead of 'entity_id_comparison'. This attribute still exists for backwards compatibility.
     */
    entityIdComparisons?: outputs.AutotagRuleConditionEntityIdComparison[];
    /**
     * Comparison for `SIMPLE_HOST_TECH` attributes
     */
    hostTeches?: outputs.AutotagRuleConditionHostTech[];
    /**
     * `hypervisorTypeComparision` is deprecated. Use `hypervisor` instead
     *
     * @deprecated `hypervisorTypeComparision` is deprecated. Use `hypervisor` instead
     */
    hypervisorTypeComparisions?: outputs.AutotagRuleConditionHypervisorTypeComparision[];
    /**
     * Comparison for `HYPERVISOR_TYPE` attributes
     */
    hypervisors?: outputs.AutotagRuleConditionHypervisor[];
    /**
     * Comparison for `INDEXED_NAME` attributes
     *
     * @deprecated You should use 'indexed_name' instead of 'indexed_name_comparison'. This attribute still exists for backwards compatibility.
     */
    indexedNameComparisons?: outputs.AutotagRuleConditionIndexedNameComparison[];
    /**
     * Comparison for `INDEXED_NAME` attributes
     */
    indexedNames?: outputs.AutotagRuleConditionIndexedName[];
    /**
     * Comparison for `INDEXED_STRING` attributes
     *
     * @deprecated You should use 'indexed_string' instead of 'indexed_string_comparison'. This attribute still exists for backwards compatibility.
     */
    indexedStringComparisons?: outputs.AutotagRuleConditionIndexedStringComparison[];
    /**
     * Comparison for `INDEXED_STRING` attributes
     */
    indexedStrings?: outputs.AutotagRuleConditionIndexedString[];
    /**
     * Comparison for `INDEXED_TAG` attributes
     *
     * @deprecated You should use 'indexed_tag' instead of 'indexed_tag_comparison'. This attribute still exists for backwards compatibility.
     */
    indexedTagComparisons?: outputs.AutotagRuleConditionIndexedTagComparison[];
    /**
     * Comparison for `INDEXED_TAG` attributes
     */
    indexedTags?: outputs.AutotagRuleConditionIndexedTag[];
    /**
     * Comparison for `INTEGER` attributes
     *
     * @deprecated You should use 'integer' instead of 'integer_comparison'. This attribute still exists for backwards compatibility.
     */
    integerComparisons?: outputs.AutotagRuleConditionIntegerComparison[];
    /**
     * Comparison for `INTEGER` attributes
     */
    integers?: outputs.AutotagRuleConditionInteger[];
    /**
     * Comparison for `IP_ADDRESS` attributes
     *
     * @deprecated You should use 'ipaddress' instead of 'ipaddress_comparison'. This attribute still exists for backwards compatibility.
     */
    ipaddressComparisons?: outputs.AutotagRuleConditionIpaddressComparison[];
    /**
     * Comparison for `IP_ADDRESS` attributes
     */
    ipaddresses?: outputs.AutotagRuleConditionIpaddress[];
    /**
     * Fallback for not yet known type
     */
    keys?: outputs.AutotagRuleConditionKey[];
    /**
     * Comparison for `MOBILE_PLATFORM` attributes
     *
     * @deprecated You should use 'mobile_platform' instead of 'mobile_platform_comparison'. This attribute still exists for backwards compatibility.
     */
    mobilePlatformComparisons?: outputs.AutotagRuleConditionMobilePlatformComparison[];
    /**
     * Comparison for `MOBILE_PLATFORM` attributes
     */
    mobilePlatforms?: outputs.AutotagRuleConditionMobilePlatform[];
    /**
     * Comparison for `OS_ARCHITECTURE` attributes
     */
    osArches?: outputs.AutotagRuleConditionOsArch[];
    /**
     * Comparison for `OS_TYPE` attributes
     */
    osTypes?: outputs.AutotagRuleConditionOsType[];
    /**
     * Comparison for `OS_ARCHITECTURE` attributes
     *
     * @deprecated You should use 'os_arch' instead of 'osarchitecture_comparison'. This attribute still exists for backwards compatibility.
     */
    osarchitectureComparisons?: outputs.AutotagRuleConditionOsarchitectureComparison[];
    /**
     * Comparison for `OS_TYPE` attributes
     *
     * @deprecated You should use 'os_type' instead of 'ostype_comparison'. This attribute still exists for backwards compatibility.
     */
    ostypeComparisons?: outputs.AutotagRuleConditionOstypeComparison[];
    /**
     * Comparison for `PAAS_TYPE` attributes
     *
     * @deprecated You should use 'paas_type' instead of 'paas_type_comparison'. This attribute still exists for backwards compatibility.
     */
    paasTypeComparisons?: outputs.AutotagRuleConditionPaasTypeComparison[];
    /**
     * Comparison for `PAAS_TYPE` attributes
     */
    paasTypes?: outputs.AutotagRuleConditionPaasType[];
    /**
     * The key for dynamic attributes of the `PROCESS_PREDEFINED_METADATA_KEY` type
     *
     * @deprecated 'process_metadata_condition_key' is deprecated. You should use 'process_metadata'
     */
    processMetadataConditionKeys?: outputs.AutotagRuleConditionProcessMetadataConditionKey[];
    /**
     * The key for dynamic attributes of the `PROCESS_PREDEFINED_METADATA_KEY` type
     */
    processMetadatas?: outputs.AutotagRuleConditionProcessMetadata[];
    /**
     * Comparison for `SERVICE_TOPOLOGY` attributes
     */
    serviceTopologies?: outputs.AutotagRuleConditionServiceTopology[];
    /**
     * Comparison for `SERVICE_TOPOLOGY` attributes
     *
     * @deprecated You should use 'service_topology' instead of 'service_topology_comparison'. This attribute still exists for backwards compatibility.
     */
    serviceTopologyComparisons?: outputs.AutotagRuleConditionServiceTopologyComparison[];
    /**
     * Comparison for `SERVICE_TYPE` attributes
     *
     * @deprecated You should use 'service_type' instead of 'service_type_comparison'. This attribute still exists for backwards compatibility.
     */
    serviceTypeComparisons?: outputs.AutotagRuleConditionServiceTypeComparison[];
    /**
     * Comparison for `SERVICE_TYPE` attributes
     */
    serviceTypes?: outputs.AutotagRuleConditionServiceType[];
    /**
     * Comparison for `SIMPLE_HOST_TECH` attributes
     *
     * @deprecated You should use 'host_tech' instead of 'simple_host_tech_comparison'. This attribute still exists for backwards compatibility.
     */
    simpleHostTechComparisons?: outputs.AutotagRuleConditionSimpleHostTechComparison[];
    /**
     * Comparison for `SIMPLE_TECH` attributes
     *
     * @deprecated You should use 'tech' instead of 'simple_tech_comparison'. This attribute still exists for backwards compatibility.
     */
    simpleTechComparisons?: outputs.AutotagRuleConditionSimpleTechComparison[];
    /**
     * Comparison for `STRING` attributes
     *
     * @deprecated You should use 'string' instead of 'string_comparison'. This attribute still exists for backwards compatibility.
     */
    stringComparisons?: outputs.AutotagRuleConditionStringComparison[];
    /**
     * The key for dynamic attributes of the `STRING` type
     *
     * @deprecated 'string_condition_key' is deprecated. You should use 'string_key'
     */
    stringConditionKeys?: outputs.AutotagRuleConditionStringConditionKey[];
    /**
     * The key for dynamic attributes of the `STRING` type
     */
    stringKeys?: outputs.AutotagRuleConditionStringKey[];
    /**
     * Comparison for `STRING` attributes
     */
    strings?: outputs.AutotagRuleConditionString[];
    /**
     * Comparison for `SYNTHETIC_ENGINE_TYPE` attributes
     *
     * @deprecated You should use 'synthetic_engine' instead of 'synthetic_engine_type_comparison'. This attribute still exists for backwards compatibility.
     */
    syntheticEngineTypeComparisons?: outputs.AutotagRuleConditionSyntheticEngineTypeComparison[];
    /**
     * Comparison for `SYNTHETIC_ENGINE_TYPE` attributes
     */
    syntheticEngines?: outputs.AutotagRuleConditionSyntheticEngine[];
    /**
     * Comparison for `TAG` attributes
     *
     * @deprecated You should use 'tag' instead of 'tag_comparison'. This attribute still exists for backwards compatibility.
     */
    tagComparisons?: outputs.AutotagRuleConditionTagComparison[];
    /**
     * Comparison for `TAG` attributes
     */
    tags?: outputs.AutotagRuleConditionTag[];
    /**
     * Comparison for `SIMPLE_TECH` attributes
     */
    teches?: outputs.AutotagRuleConditionTech[];
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
}
export interface AutotagRuleConditionApplicationType {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value?: string;
}
export interface AutotagRuleConditionApplicationTypeComparison {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be APPLICATION_TYPE
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value?: string;
}
export interface AutotagRuleConditionAzureComputeMode {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are DEDICATED or SHARED.
     */
    value?: string;
}
export interface AutotagRuleConditionAzureComputeModeComparison {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are DEDICATED or SHARED.
     */
    value?: string;
}
export interface AutotagRuleConditionAzureSkuComparision {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be AZURE_SKU
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are BASIC, DYNAMIC, FREE, PREMIUM, SHARED and STANDARD.
     */
    value?: string;
}
export interface AutotagRuleConditionAzureSkus {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are BASIC, DYNAMIC, FREE, PREMIUM, SHARED and STANDARD.
     */
    value?: string;
}
export interface AutotagRuleConditionBaseComparisonBasic {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * The type of comparison
     */
    type: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
}
export interface AutotagRuleConditionBaseConditionKey {
    /**
     * The attribute to be used for comparision
     */
    attribute: string;
    /**
     * Defines the actual set of fields depending on the value
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
}
export interface AutotagRuleConditionBitness {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are 32 and 64.
     */
    value?: string;
}
export interface AutotagRuleConditionBitnessComparision {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be BITNESS
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are 32 and 64.
     */
    value?: string;
}
export interface AutotagRuleConditionCloudType {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are AZURE, EC2, GOOGLE_CLOUD_PLATFORM, OPENSTACK, ORACLE and UNRECOGNIZED.
     */
    value?: string;
}
export interface AutotagRuleConditionCloudTypeComparison {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be CLOUD_TYPE
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are AZURE, EC2, GOOGLE_CLOUD_PLATFORM, OPENSTACK, ORACLE and UNRECOGNIZED.
     */
    value?: string;
}
export interface AutotagRuleConditionComparison {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * The type of comparison
     */
    type: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
}
export interface AutotagRuleConditionCustomApplicationType {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are AMAZON_ECHO, DESKTOP, EMBEDDED, IOT, MICROSOFT_HOLOLENS and UFO.
     */
    value?: string;
}
export interface AutotagRuleConditionCustomApplicationTypeComparison {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be CUSTOM_APPLICATION_TYPE
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are AMAZON_ECHO, DESKTOP, EMBEDDED, IOT, MICROSOFT_HOLOLENS and UFO.
     */
    value?: string;
}
export interface AutotagRuleConditionCustomHostMetadata {
    /**
     * The attribute to be used for comparision
     */
    attribute: string;
    /**
     * The key of the attribute, which need dynamic keys. Not applicable otherwise, as the attibute itself acts as a key
     */
    dynamicKey: outputs.AutotagRuleConditionCustomHostMetadataDynamicKey;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
}
export interface AutotagRuleConditionCustomHostMetadataConditionKey {
    /**
     * The attribute to be used for comparision
     */
    attribute: string;
    /**
     * The key of the attribute, which need dynamic keys. Not applicable otherwise, as the attibute itself acts as a key
     */
    dynamicKey: outputs.AutotagRuleConditionCustomHostMetadataConditionKeyDynamicKey;
    /**
     * if specified, needs to be HOST_CUSTOM_METADATA_KEY
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
}
export interface AutotagRuleConditionCustomHostMetadataConditionKeyDynamicKey {
    /**
     * The actual key of the custom metadata
     */
    key: string;
    /**
     * The source of the custom metadata. Possible values are ENVIRONMENT, GOOGLE_COMPUTE_ENGINE and PLUGIN
     */
    source: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
}
export interface AutotagRuleConditionCustomHostMetadataDynamicKey {
    /**
     * The actual key of the custom metadata
     */
    key: string;
    /**
     * The source of the custom metadata. Possible values are ENVIRONMENT, GOOGLE_COMPUTE_ENGINE and PLUGIN
     */
    source: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
}
export interface AutotagRuleConditionCustomProcessMetadata {
    /**
     * The attribute to be used for comparision
     */
    attribute: string;
    /**
     * The key of the attribute, which need dynamic keys. Not applicable otherwise, as the attibute itself acts as a key
     */
    dynamicKey: outputs.AutotagRuleConditionCustomProcessMetadataDynamicKey;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
}
export interface AutotagRuleConditionCustomProcessMetadataConditionKey {
    /**
     * The attribute to be used for comparision
     */
    attribute: string;
    /**
     * The key of the attribute, which need dynamic keys. Not applicable otherwise, as the attibute itself acts as a key
     */
    dynamicKey: outputs.AutotagRuleConditionCustomProcessMetadataConditionKeyDynamicKey;
    /**
     * if specified, needs to be PROCESS_CUSTOM_METADATA_KEY
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
}
export interface AutotagRuleConditionCustomProcessMetadataConditionKeyDynamicKey {
    /**
     * The actual key of the custom metadata
     */
    key: string;
    /**
     * The source of the custom metadata. Possible values are CLOUD_FOUNDRY, ENVIRONMENT, GOOGLE_CLOUD, KUBERNETES and PLUGIN
     */
    source: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
}
export interface AutotagRuleConditionCustomProcessMetadataDynamicKey {
    /**
     * The actual key of the custom metadata
     */
    key: string;
    /**
     * The source of the custom metadata. Possible values are CLOUD_FOUNDRY, ENVIRONMENT, GOOGLE_CLOUD, KUBERNETES and PLUGIN
     */
    source: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
}
export interface AutotagRuleConditionDatabaseTopology {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are CLUSTER, EMBEDDED, FAILOVER, IPC, LOAD_BALANCING, SINGLE_SERVER and UNSPECIFIED.
     */
    value?: string;
}
export interface AutotagRuleConditionDatabaseTopologyComparison {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be DATABASE_TOPOLOGY
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are CLUSTER, EMBEDDED, FAILOVER, IPC, LOAD_BALANCING, SINGLE_SERVER and UNSPECIFIED.
     */
    value?: string;
}
export interface AutotagRuleConditionDcrumDecoder {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are ALL_OTHER, CITRIX_APPFLOW, CITRIX_ICA, CITRIX_ICA_OVER_SSL, DB2_DRDA, HTTP, HTTPS, HTTP_EXPRESS, INFORMIX, MYSQL, ORACLE, SAP_GUI, SAP_GUI_OVER_HTTP, SAP_GUI_OVER_HTTPS, SAP_HANA_DB, SAP_RFC, SSL and TDS.
     */
    value?: string;
}
export interface AutotagRuleConditionDcrumDecoderComparison {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be DCRUM_DECODER_TYPE
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are ALL_OTHER, CITRIX_APPFLOW, CITRIX_ICA, CITRIX_ICA_OVER_SSL, DB2_DRDA, HTTP, HTTPS, HTTP_EXPRESS, INFORMIX, MYSQL, ORACLE, SAP_GUI, SAP_GUI_OVER_HTTP, SAP_GUI_OVER_HTTPS, SAP_HANA_DB, SAP_RFC, SSL and TDS.
     */
    value?: string;
}
export interface AutotagRuleConditionEntity {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Currently only EQUALS is supported. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value?: string;
}
export interface AutotagRuleConditionEntityIdComparison {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Currently only EQUALS is supported. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be ENTITY_ID
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value?: string;
}
export interface AutotagRuleConditionHostTech {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are EQUALS and EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value?: outputs.AutotagRuleConditionHostTechValue;
}
export interface AutotagRuleConditionHostTechValue {
    /**
     * Predefined technology, if technology is not predefined, then the verbatim type must be set. Possible values are APPARMOR, BOSH, BOSHBPM, CLOUDFOUNDRY, CONTAINERD, CRIO, DIEGO_CELL, DOCKER, GARDEN, GRSECURITY, KUBERNETES, OPENSHIFT, OPENSTACK_COMPUTE, OPENSTACK_CONTROLLER and SELINUX
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * Non-predefined technology, use for custom technologies
     */
    verbatimType?: string;
}
export interface AutotagRuleConditionHypervisor {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are AHV, HYPER_V, KVM, LPAR, QEMU, VIRTUAL_BOX, VMWARE, WPAR and XEN.
     */
    value?: string;
}
export interface AutotagRuleConditionHypervisorTypeComparision {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be HYPERVISOR_TYPE
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are AHV, HYPER_V, KVM, LPAR, QEMU, VIRTUAL_BOX, VMWARE, WPAR and XEN.
     */
    value?: string;
}
export interface AutotagRuleConditionIndexedName {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS, CONTAINS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value?: string;
}
export interface AutotagRuleConditionIndexedNameComparison {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS, CONTAINS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be INDEXED_NAME
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value?: string;
}
export interface AutotagRuleConditionIndexedString {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value?: string;
}
export interface AutotagRuleConditionIndexedStringComparison {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be INDEXED_STRING
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value?: string;
}
export interface AutotagRuleConditionIndexedTag {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * Tag of a Dynatrace entity
     */
    value?: outputs.AutotagRuleConditionIndexedTagValue;
}
export interface AutotagRuleConditionIndexedTagComparison {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be INDEXED_TAG
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * Tag of a Dynatrace entity
     */
    value?: outputs.AutotagRuleConditionIndexedTagComparisonValue;
}
export interface AutotagRuleConditionIndexedTagComparisonValue {
    /**
     * The origin of the tag, such as AWS or Cloud Foundry. Possible values are AWS, AWS_GENERIC, AZURE, CLOUD_FOUNDRY, CONTEXTLESS, ENVIRONMENT, GOOGLE_CLOUD and KUBERNETES. Custom tags use the `CONTEXTLESS` value
     */
    context: string;
    /**
     * The key of the tag. Custom tags have the tag value here
     */
    key: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value of the tag. Not applicable to custom tags
     */
    value?: string;
}
export interface AutotagRuleConditionIndexedTagValue {
    /**
     * The origin of the tag, such as AWS or Cloud Foundry. Possible values are AWS, AWS_GENERIC, AZURE, CLOUD_FOUNDRY, CONTEXTLESS, ENVIRONMENT, GOOGLE_CLOUD and KUBERNETES. Custom tags use the `CONTEXTLESS` value
     */
    context: string;
    /**
     * The key of the tag. Custom tags have the tag value here
     */
    key: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value of the tag. Not applicable to custom tags
     */
    value?: string;
}
export interface AutotagRuleConditionInteger {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are EQUALS, EXISTS, GREATER_THAN, GREATER_THAN_OR_EQUAL, LOWER_THAN and LOWER_THAN_OR_EQUAL. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value?: number;
}
export interface AutotagRuleConditionIntegerComparison {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are EQUALS, EXISTS, GREATER_THAN, GREATER_THAN_OR_EQUAL, LOWER_THAN and LOWER_THAN_OR_EQUAL. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be INTEGER
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value?: number;
}
export interface AutotagRuleConditionIpaddress {
    /**
     * The comparison is case-sensitive (`true`) or insensitive (`false`)
     */
    caseSensitive?: boolean;
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are BEGINS_WITH, CONTAINS, ENDS_WITH, EQUALS, EXISTS, IS_IP_IN_RANGE and REGEX_MATCHES. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value?: string;
}
export interface AutotagRuleConditionIpaddressComparison {
    /**
     * The comparison is case-sensitive (`true`) or insensitive (`false`)
     */
    caseSensitive?: boolean;
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are BEGINS_WITH, CONTAINS, ENDS_WITH, EQUALS, EXISTS, IS_IP_IN_RANGE and REGEX_MATCHES. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be IP_ADDRESS
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value?: string;
}
export interface AutotagRuleConditionKey {
    /**
     * The attribute to be used for comparision
     */
    attribute: string;
    /**
     * Defines the actual set of fields depending on the value
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
}
export interface AutotagRuleConditionMobilePlatform {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are EQUALS and EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are ANDROID, IOS, LINUX, MAC_OS, OTHER, TVOS and WINDOWS.
     */
    value?: string;
}
export interface AutotagRuleConditionMobilePlatformComparison {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are EQUALS and EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be MOBILE_PLATFORM
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are ANDROID, IOS, LINUX, MAC_OS, OTHER, TVOS and WINDOWS.
     */
    value?: string;
}
export interface AutotagRuleConditionOsArch {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are EQUALS and EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are ARM, IA64, PARISC, PPC, PPCLE, S390, SPARC, X86 and ZOS.
     */
    value?: string;
}
export interface AutotagRuleConditionOsType {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are EQUALS and EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are AIX, DARWIN, HPUX, LINUX, SOLARIS, WINDOWS and ZOS.
     */
    value?: string;
}
export interface AutotagRuleConditionOsarchitectureComparison {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are EQUALS and EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be OS_ARCHITECTURE
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are ARM, IA64, PARISC, PPC, PPCLE, S390, SPARC, X86 and ZOS.
     */
    value?: string;
}
export interface AutotagRuleConditionOstypeComparison {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are EQUALS and EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be OS_TYPE
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are AIX, DARWIN, HPUX, LINUX, SOLARIS, WINDOWS and ZOS.
     */
    value?: string;
}
export interface AutotagRuleConditionPaasType {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are EQUALS and EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are AWS_ECS_EC2, AWS_ECS_FARGATE, AWS_LAMBDA, AZURE_FUNCTIONS, AZURE_WEBSITES, CLOUD_FOUNDRY, GOOGLE_APP_ENGINE, HEROKU, KUBERNETES and OPENSHIFT.
     */
    value?: string;
}
export interface AutotagRuleConditionPaasTypeComparison {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are EQUALS and EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be PAAS_TYPE
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are AWS_ECS_EC2, AWS_ECS_FARGATE, AWS_LAMBDA, AZURE_FUNCTIONS, AZURE_WEBSITES, CLOUD_FOUNDRY, GOOGLE_APP_ENGINE, HEROKU, KUBERNETES and OPENSHIFT.
     */
    value?: string;
}
export interface AutotagRuleConditionProcessMetadata {
    /**
     * The attribute to be used for comparision
     */
    attribute: string;
    /**
     * The key of the attribute, which need dynamic keys. Not applicable otherwise, as the attibute itself acts as a key. Possible values are AMAZON_ECR_IMAGE_ACCOUNT_ID,AMAZON_ECR_IMAGE_REGION, AMAZON_LAMBDA_FUNCTION_NAME, AMAZON_REGION, APACHE_CONFIG_PATH, APACHE_SPARK_MASTER_IP_ADDRESS, ASP_DOT_NET_CORE_APPLICATION_PATH, AWS_ECS_CLUSTER, AWS_ECS_CONTAINERNAME, AWS_ECS_FAMILY, AWS_ECS_REVISION, CASSANDRA_CLUSTER_NAME, CATALINA_BASE, CATALINA_HOME, CLOUD_FOUNDRY_APP_ID, CLOUD_FOUNDRY_APP_NAME, CLOUD_FOUNDRY_INSTANCE_INDEX, CLOUD_FOUNDRY_SPACE_ID, CLOUD_FOUNDRY_SPACE_NAME, COLDFUSION_JVM_CONFIG_FILE, COLDFUSION_SERVICE_NAME, COMMAND_LINE_ARGS, DOTNET_COMMAND, DOTNET_COMMAND_PATH, DYNATRACE_CLUSTER_ID, DYNATRACE_NODE_ID, ELASTICSEARCH_CLUSTER_NAME, ELASTICSEARCH_NODE_NAME, EQUINOX_CONFIG_PATH, EXE_NAME, EXE_PATH, GLASS_FISH_DOMAIN_NAME, GLASS_FISH_INSTANCE_NAME, GOOGLE_APP_ENGINE_INSTANCE, GOOGLE_APP_ENGINE_SERVICE, GOOGLE_CLOUD_PROJECT, HYBRIS_BIN_DIRECTORY, HYBRIS_CONFIG_DIRECTORY, HYBRIS_DATA_DIRECTORY, IBM_CICS_REGION, IBM_CTG_NAME, IBM_IMS_CONNECT_REGION, IBM_IMS_CONTROL_REGION, IBM_IMS_MESSAGE_PROCESSING_REGION, IBM_IMS_SOAP_GW_NAME, IBM_INTEGRATION_NODE_NAME, IBM_INTEGRATION_SERVER_NAME, IIS_APP_POOL, IIS_ROLE_NAME, JAVA_JAR_FILE, JAVA_JAR_PATH, JAVA_MAIN_CLASS, JAVA_MAIN_MODULE, JBOSS_HOME, JBOSS_MODE, JBOSS_SERVER_NAME, KUBERNETES_BASE_POD_NAME, KUBERNETES_CONTAINER_NAME, KUBERNETES_FULL_POD_NAME, KUBERNETES_NAMESPACE, KUBERNETES_POD_UID, MSSQL_INSTANCE_NAME, NODE_JS_APP_BASE_DIRECTORY, NODE_JS_APP_NAME, NODE_JS_SCRIPT_NAME, ORACLE_SID, PG_ID_CALC_INPUT_KEY_LINKAGE, PHP_SCRIPT_PATH, PHP_WORKING_DIRECTORY, RUBY_APP_ROOT_PATH, RUBY_SCRIPT_PATH, RULE_RESULT, SOFTWAREAG_INSTALL_ROOT, SOFTWAREAG_PRODUCTPROPNAME, SPRINGBOOT_APP_NAME, SPRINGBOOT_PROFILE_NAME, SPRINGBOOT_STARTUP_CLASS, TIBCO_BUSINESSWORKS_CE_APP_NAME, TIBCO_BUSINESSWORKS_CE_VERSION, TIBCO_BUSINESS_WORKS_APP_NODE_NAME, TIBCO_BUSINESS_WORKS_APP_SPACE_NAME, TIBCO_BUSINESS_WORKS_DOMAIN_NAME, TIBCO_BUSINESS_WORKS_ENGINE_PROPERTY_FILE, TIBCO_BUSINESS_WORKS_ENGINE_PROPERTY_FILE_PATH, TIBCO_BUSINESS_WORKS_HOME, VARNISH_INSTANCE_NAME, WEB_LOGIC_CLUSTER_NAME, WEB_LOGIC_DOMAIN_NAME, WEB_LOGIC_HOME, WEB_LOGIC_NAME, WEB_SPHERE_CELL_NAME, WEB_SPHERE_CLUSTER_NAME, WEB_SPHERE_NODE_NAME and WEB_SPHERE_SERVER_NAME
     */
    dynamicKey: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
}
export interface AutotagRuleConditionProcessMetadataConditionKey {
    /**
     * The attribute to be used for comparision
     */
    attribute: string;
    /**
     * The key of the attribute, which need dynamic keys. Not applicable otherwise, as the attibute itself acts as a key. Possible values are AMAZON_ECR_IMAGE_ACCOUNT_ID,AMAZON_ECR_IMAGE_REGION, AMAZON_LAMBDA_FUNCTION_NAME, AMAZON_REGION, APACHE_CONFIG_PATH, APACHE_SPARK_MASTER_IP_ADDRESS, ASP_DOT_NET_CORE_APPLICATION_PATH, AWS_ECS_CLUSTER, AWS_ECS_CONTAINERNAME, AWS_ECS_FAMILY, AWS_ECS_REVISION, CASSANDRA_CLUSTER_NAME, CATALINA_BASE, CATALINA_HOME, CLOUD_FOUNDRY_APP_ID, CLOUD_FOUNDRY_APP_NAME, CLOUD_FOUNDRY_INSTANCE_INDEX, CLOUD_FOUNDRY_SPACE_ID, CLOUD_FOUNDRY_SPACE_NAME, COLDFUSION_JVM_CONFIG_FILE, COLDFUSION_SERVICE_NAME, COMMAND_LINE_ARGS, DOTNET_COMMAND, DOTNET_COMMAND_PATH, DYNATRACE_CLUSTER_ID, DYNATRACE_NODE_ID, ELASTICSEARCH_CLUSTER_NAME, ELASTICSEARCH_NODE_NAME, EQUINOX_CONFIG_PATH, EXE_NAME, EXE_PATH, GLASS_FISH_DOMAIN_NAME, GLASS_FISH_INSTANCE_NAME, GOOGLE_APP_ENGINE_INSTANCE, GOOGLE_APP_ENGINE_SERVICE, GOOGLE_CLOUD_PROJECT, HYBRIS_BIN_DIRECTORY, HYBRIS_CONFIG_DIRECTORY, HYBRIS_DATA_DIRECTORY, IBM_CICS_REGION, IBM_CTG_NAME, IBM_IMS_CONNECT_REGION, IBM_IMS_CONTROL_REGION, IBM_IMS_MESSAGE_PROCESSING_REGION, IBM_IMS_SOAP_GW_NAME, IBM_INTEGRATION_NODE_NAME, IBM_INTEGRATION_SERVER_NAME, IIS_APP_POOL, IIS_ROLE_NAME, JAVA_JAR_FILE, JAVA_JAR_PATH, JAVA_MAIN_CLASS, JAVA_MAIN_MODULE, JBOSS_HOME, JBOSS_MODE, JBOSS_SERVER_NAME, KUBERNETES_BASE_POD_NAME, KUBERNETES_CONTAINER_NAME, KUBERNETES_FULL_POD_NAME, KUBERNETES_NAMESPACE, KUBERNETES_POD_UID, MSSQL_INSTANCE_NAME, NODE_JS_APP_BASE_DIRECTORY, NODE_JS_APP_NAME, NODE_JS_SCRIPT_NAME, ORACLE_SID, PG_ID_CALC_INPUT_KEY_LINKAGE, PHP_SCRIPT_PATH, PHP_WORKING_DIRECTORY, RUBY_APP_ROOT_PATH, RUBY_SCRIPT_PATH, RULE_RESULT, SOFTWAREAG_INSTALL_ROOT, SOFTWAREAG_PRODUCTPROPNAME, SPRINGBOOT_APP_NAME, SPRINGBOOT_PROFILE_NAME, SPRINGBOOT_STARTUP_CLASS, TIBCO_BUSINESSWORKS_CE_APP_NAME, TIBCO_BUSINESSWORKS_CE_VERSION, TIBCO_BUSINESS_WORKS_APP_NODE_NAME, TIBCO_BUSINESS_WORKS_APP_SPACE_NAME, TIBCO_BUSINESS_WORKS_DOMAIN_NAME, TIBCO_BUSINESS_WORKS_ENGINE_PROPERTY_FILE, TIBCO_BUSINESS_WORKS_ENGINE_PROPERTY_FILE_PATH, TIBCO_BUSINESS_WORKS_HOME, VARNISH_INSTANCE_NAME, WEB_LOGIC_CLUSTER_NAME, WEB_LOGIC_DOMAIN_NAME, WEB_LOGIC_HOME, WEB_LOGIC_NAME, WEB_SPHERE_CELL_NAME, WEB_SPHERE_CLUSTER_NAME, WEB_SPHERE_NODE_NAME and WEB_SPHERE_SERVER_NAME
     */
    dynamicKey: string;
    /**
     * if specified, needs to be PROCESS_PREDEFINED_METADATA_KEY
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
}
export interface AutotagRuleConditionServiceTopology {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are EQUALS and EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are EXTERNAL_SERVICE, FULLY_MONITORED and OPAQUE_SERVICE.
     */
    value?: string;
}
export interface AutotagRuleConditionServiceTopologyComparison {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are EQUALS and EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be SERVICE_TOPOLOGY
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are EXTERNAL_SERVICE, FULLY_MONITORED and OPAQUE_SERVICE.
     */
    value?: string;
}
export interface AutotagRuleConditionServiceType {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are EQUALS and EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are BACKGROUND_ACTIVITY, CICS_SERVICE, CUSTOM_SERVICE, DATABASE_SERVICE, ENTERPRISE_SERVICE_BUS_SERVICE, EXTERNAL, IBM_INTEGRATION_BUS_SERVICE, IMS_SERVICE, MESSAGING_SERVICE, QUEUE_LISTENER_SERVICE, RMI_SERVICE, RPC_SERVICE, WEB_REQUEST_SERVICE and WEB_SERVICE.
     */
    value?: string;
}
export interface AutotagRuleConditionServiceTypeComparison {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are EQUALS and EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be SERVICE_TYPE
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are BACKGROUND_ACTIVITY, CICS_SERVICE, CUSTOM_SERVICE, DATABASE_SERVICE, ENTERPRISE_SERVICE_BUS_SERVICE, EXTERNAL, IBM_INTEGRATION_BUS_SERVICE, IMS_SERVICE, MESSAGING_SERVICE, QUEUE_LISTENER_SERVICE, RMI_SERVICE, RPC_SERVICE, WEB_REQUEST_SERVICE and WEB_SERVICE.
     */
    value?: string;
}
export interface AutotagRuleConditionSimpleHostTechComparison {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are EQUALS and EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be SIMPLE_HOST_TECH
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value?: outputs.AutotagRuleConditionSimpleHostTechComparisonValue;
}
export interface AutotagRuleConditionSimpleHostTechComparisonValue {
    /**
     * Predefined technology, if technology is not predefined, then the verbatim type must be set. Possible values are APPARMOR, BOSH, BOSHBPM, CLOUDFOUNDRY, CONTAINERD, CRIO, DIEGO_CELL, DOCKER, GARDEN, GRSECURITY, KUBERNETES, OPENSHIFT, OPENSTACK_COMPUTE, OPENSTACK_CONTROLLER and SELINUX
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * Non-predefined technology, use for custom technologies
     */
    verbatimType?: string;
}
export interface AutotagRuleConditionSimpleTechComparison {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are EQUALS and EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be SIMPLE_TECH
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value?: outputs.AutotagRuleConditionSimpleTechComparisonValue;
}
export interface AutotagRuleConditionSimpleTechComparisonValue {
    /**
     * Predefined technology, if technology is not predefined, then the verbatim type must be set.
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * Non-predefined technology, use for custom technologies
     */
    verbatimType?: string;
}
export interface AutotagRuleConditionString {
    /**
     * The comparison is case-sensitive (`true`) or insensitive (`false`)
     */
    caseSensitive?: boolean;
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are BEGINS_WITH, CONTAINS, ENDS_WITH, EQUALS, EXISTS and REGEX_MATCHES. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value?: string;
}
export interface AutotagRuleConditionStringComparison {
    /**
     * The comparison is case-sensitive (`true`) or insensitive (`false`)
     */
    caseSensitive?: boolean;
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are BEGINS_WITH, CONTAINS, ENDS_WITH, EQUALS, EXISTS and REGEX_MATCHES. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be STRING
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value?: string;
}
export interface AutotagRuleConditionStringConditionKey {
    /**
     * The attribute to be used for comparision
     */
    attribute: string;
    /**
     * The key of the attribute, which need dynamic keys. Not applicable otherwise, as the attibute itself acts as a key. Possible values are
     *    - `AMAZON_ECR_IMAGE_ACCOUNT_ID`
     *    - `AMAZON_ECR_IMAGE_REGION`
     *    - `AMAZON_LAMBDA_FUNCTION_NAME`
     *    - `AMAZON_REGION`
     *    - `APACHE_CONFIG_PATH`
     *    - `APACHE_SPARK_MASTER_IP_ADDRESS`
     *    - `ASP_DOT_NET_CORE_APPLICATION_PATH`
     *    - `AWS_ECS_CLUSTER`
     *    - `AWS_ECS_CONTAINERNAME`
     *    - `AWS_ECS_FAMILY`
     *    - `AWS_ECS_REVISION`
     *    - `CASSANDRA_CLUSTER_NAME`
     *    - `CATALINA_BASE`
     *    - `CATALINA_HOME`
     *    - `CLOUD_FOUNDRY_APP_ID`
     *    - `CLOUD_FOUNDRY_APP_NAME`
     *    - `CLOUD_FOUNDRY_INSTANCE_INDEX`
     *    - `CLOUD_FOUNDRY_SPACE_ID`
     *    - `CLOUD_FOUNDRY_SPACE_NAME`
     *    - `COLDFUSION_JVM_CONFIG_FILE`
     *    - `COLDFUSION_SERVICE_NAME`
     *    - `COMMAND_LINE_ARGS`
     *    - `DOTNET_COMMAND`
     *    - `DOTNET_COMMAND_PATH`
     *    - `DYNATRACE_CLUSTER_ID`
     *    - `DYNATRACE_NODE_ID`
     *    - `ELASTICSEARCH_CLUSTER_NAME`
     *    - `ELASTICSEARCH_NODE_NAME`
     *    - `EQUINOX_CONFIG_PATH`
     *    - `EXE_NAME`
     *    - `EXE_PATH`
     *    - `GLASS_FISH_DOMAIN_NAME`
     *    - `GLASS_FISH_INSTANCE_NAME`
     *    - `GOOGLE_APP_ENGINE_INSTANCE`
     *    - `GOOGLE_APP_ENGINE_SERVICE`
     *    - `GOOGLE_CLOUD_PROJECT`
     *    - `HYBRIS_BIN_DIRECTORY`
     *    - `HYBRIS_CONFIG_DIRECTORY`
     *    - `HYBRIS_DATA_DIRECTORY`
     *    - `IBM_CICS_REGION`
     *    - `IBM_CTG_NAME`
     *    - `IBM_IMS_CONNECT_REGION`
     *    - `IBM_IMS_CONTROL_REGION`
     *    - `IBM_IMS_MESSAGE_PROCESSING_REGION`
     *    - `IBM_IMS_SOAP_GW_NAME`
     *    - `IBM_INTEGRATION_NODE_NAME`
     *    - `IBM_INTEGRATION_SERVER_NAME`
     *    - `IIS_APP_POOL`
     *    - `IIS_ROLE_NAME`
     *    - `JAVA_JAR_FILE`
     *    - `JAVA_JAR_PATH`
     *    - `JAVA_MAIN_CLASS`
     *    - `JAVA_MAIN_MODULE`
     *    - `JBOSS_HOME`
     *    - `JBOSS_MODE`
     *    - `JBOSS_SERVER_NAME`
     *    - `KUBERNETES_BASE_POD_NAME`
     *    - `KUBERNETES_CONTAINER_NAME`
     *    - `KUBERNETES_FULL_POD_NAME`
     *    - `KUBERNETES_NAMESPACE`
     *    - `KUBERNETES_POD_UID`
     *    - `MSSQL_INSTANCE_NAME`
     *    - `NODE_JS_APP_BASE_DIRECTORY`
     *    - `NODE_JS_APP_NAME`
     *    - `NODE_JS_SCRIPT_NAME`
     *    - `ORACLE_SID`
     *    - `PG_ID_CALC_INPUT_KEY_LINKAGE`
     *    - `PHP_SCRIPT_PATH`
     *    - `PHP_WORKING_DIRECTORY`
     *    - `RUBY_APP_ROOT_PATH`
     *    - `RUBY_SCRIPT_PATH`
     *    - `RULE_RESULT`
     *    - `SOFTWAREAG_INSTALL_ROOT`
     *    - `SOFTWAREAG_PRODUCTPROPNAME`
     *    - `SPRINGBOOT_APP_NAME`
     *    - `SPRINGBOOT_PROFILE_NAME`
     *    - `SPRINGBOOT_STARTUP_CLASS`
     *    - `TIBCO_BUSINESSWORKS_CE_APP_NAME`
     *    - `TIBCO_BUSINESSWORKS_CE_VERSION`
     *    - `TIBCO_BUSINESS_WORKS_APP_NODE_NAME`
     *    - `TIBCO_BUSINESS_WORKS_APP_SPACE_NAME`
     *    - `TIBCO_BUSINESS_WORKS_DOMAIN_NAME`
     *    - `TIBCO_BUSINESS_WORKS_ENGINE_PROPERTY_FILE`
     *    - `TIBCO_BUSINESS_WORKS_ENGINE_PROPERTY_FILE_PATH`
     *    - `TIBCO_BUSINESS_WORKS_HOME`
     *    - `VARNISH_INSTANCE_NAME`
     *    - `WEB_LOGIC_CLUSTER_NAME`
     *    - `WEB_LOGIC_DOMAIN_NAME`
     *    - `WEB_LOGIC_HOME`
     *    - `WEB_LOGIC_NAME`
     *    - `WEB_SPHERE_CELL_NAME`
     *    - `WEB_SPHERE_CLUSTER_NAME`
     *    - `WEB_SPHERE_NODE_NAME and WEB_SPHERE_SERVER_NAME`
     */
    dynamicKey: string;
    /**
     * if specified, needs to be `STRING`
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
}
export interface AutotagRuleConditionStringKey {
    /**
     * The attribute to be used for comparision
     */
    attribute: string;
    /**
     * The key of the attribute, which need dynamic keys. Not applicable otherwise, as the attibute itself acts as a key. Possible values are
     *    - `AMAZON_ECR_IMAGE_ACCOUNT_ID`
     *    - `AMAZON_ECR_IMAGE_REGION`
     *    - `AMAZON_LAMBDA_FUNCTION_NAME`
     *    - `AMAZON_REGION`
     *    - `APACHE_CONFIG_PATH`
     *    - `APACHE_SPARK_MASTER_IP_ADDRESS`
     *    - `ASP_DOT_NET_CORE_APPLICATION_PATH`
     *    - `AWS_ECS_CLUSTER`
     *    - `AWS_ECS_CONTAINERNAME`
     *    - `AWS_ECS_FAMILY`
     *    - `AWS_ECS_REVISION`
     *    - `CASSANDRA_CLUSTER_NAME`
     *    - `CATALINA_BASE`
     *    - `CATALINA_HOME`
     *    - `CLOUD_FOUNDRY_APP_ID`
     *    - `CLOUD_FOUNDRY_APP_NAME`
     *    - `CLOUD_FOUNDRY_INSTANCE_INDEX`
     *    - `CLOUD_FOUNDRY_SPACE_ID`
     *    - `CLOUD_FOUNDRY_SPACE_NAME`
     *    - `COLDFUSION_JVM_CONFIG_FILE`
     *    - `COLDFUSION_SERVICE_NAME`
     *    - `COMMAND_LINE_ARGS`
     *    - `DOTNET_COMMAND`
     *    - `DOTNET_COMMAND_PATH`
     *    - `DYNATRACE_CLUSTER_ID`
     *    - `DYNATRACE_NODE_ID`
     *    - `ELASTICSEARCH_CLUSTER_NAME`
     *    - `ELASTICSEARCH_NODE_NAME`
     *    - `EQUINOX_CONFIG_PATH`
     *    - `EXE_NAME`
     *    - `EXE_PATH`
     *    - `GLASS_FISH_DOMAIN_NAME`
     *    - `GLASS_FISH_INSTANCE_NAME`
     *    - `GOOGLE_APP_ENGINE_INSTANCE`
     *    - `GOOGLE_APP_ENGINE_SERVICE`
     *    - `GOOGLE_CLOUD_PROJECT`
     *    - `HYBRIS_BIN_DIRECTORY`
     *    - `HYBRIS_CONFIG_DIRECTORY`
     *    - `HYBRIS_DATA_DIRECTORY`
     *    - `IBM_CICS_REGION`
     *    - `IBM_CTG_NAME`
     *    - `IBM_IMS_CONNECT_REGION`
     *    - `IBM_IMS_CONTROL_REGION`
     *    - `IBM_IMS_MESSAGE_PROCESSING_REGION`
     *    - `IBM_IMS_SOAP_GW_NAME`
     *    - `IBM_INTEGRATION_NODE_NAME`
     *    - `IBM_INTEGRATION_SERVER_NAME`
     *    - `IIS_APP_POOL`
     *    - `IIS_ROLE_NAME`
     *    - `JAVA_JAR_FILE`
     *    - `JAVA_JAR_PATH`
     *    - `JAVA_MAIN_CLASS`
     *    - `JAVA_MAIN_MODULE`
     *    - `JBOSS_HOME`
     *    - `JBOSS_MODE`
     *    - `JBOSS_SERVER_NAME`
     *    - `KUBERNETES_BASE_POD_NAME`
     *    - `KUBERNETES_CONTAINER_NAME`
     *    - `KUBERNETES_FULL_POD_NAME`
     *    - `KUBERNETES_NAMESPACE`
     *    - `KUBERNETES_POD_UID`
     *    - `MSSQL_INSTANCE_NAME`
     *    - `NODE_JS_APP_BASE_DIRECTORY`
     *    - `NODE_JS_APP_NAME`
     *    - `NODE_JS_SCRIPT_NAME`
     *    - `ORACLE_SID`
     *    - `PG_ID_CALC_INPUT_KEY_LINKAGE`
     *    - `PHP_SCRIPT_PATH`
     *    - `PHP_WORKING_DIRECTORY`
     *    - `RUBY_APP_ROOT_PATH`
     *    - `RUBY_SCRIPT_PATH`
     *    - `RULE_RESULT`
     *    - `SOFTWAREAG_INSTALL_ROOT`
     *    - `SOFTWAREAG_PRODUCTPROPNAME`
     *    - `SPRINGBOOT_APP_NAME`
     *    - `SPRINGBOOT_PROFILE_NAME`
     *    - `SPRINGBOOT_STARTUP_CLASS`
     *    - `TIBCO_BUSINESSWORKS_CE_APP_NAME`
     *    - `TIBCO_BUSINESSWORKS_CE_VERSION`
     *    - `TIBCO_BUSINESS_WORKS_APP_NODE_NAME`
     *    - `TIBCO_BUSINESS_WORKS_APP_SPACE_NAME`
     *    - `TIBCO_BUSINESS_WORKS_DOMAIN_NAME`
     *    - `TIBCO_BUSINESS_WORKS_ENGINE_PROPERTY_FILE`
     *    - `TIBCO_BUSINESS_WORKS_ENGINE_PROPERTY_FILE_PATH`
     *    - `TIBCO_BUSINESS_WORKS_HOME`
     *    - `VARNISH_INSTANCE_NAME`
     *    - `WEB_LOGIC_CLUSTER_NAME`
     *    - `WEB_LOGIC_DOMAIN_NAME`
     *    - `WEB_LOGIC_HOME`
     *    - `WEB_LOGIC_NAME`
     *    - `WEB_SPHERE_CELL_NAME`
     *    - `WEB_SPHERE_CLUSTER_NAME`
     *    - `WEB_SPHERE_NODE_NAME and WEB_SPHERE_SERVER_NAME`
     */
    dynamicKey: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
}
export interface AutotagRuleConditionSyntheticEngine {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are  EQUALS and EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are CLASSIC and CUSTOM
     */
    value?: string;
}
export interface AutotagRuleConditionSyntheticEngineTypeComparison {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are  EQUALS and EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be SYNTHETIC_ENGINE_TYPE
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are CLASSIC and CUSTOM
     */
    value?: string;
}
export interface AutotagRuleConditionTag {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are EQUALS and TAG_KEY_EQUALS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * Tag of a Dynatrace entity
     */
    value?: outputs.AutotagRuleConditionTagValue;
}
export interface AutotagRuleConditionTagComparison {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are EQUALS and TAG_KEY_EQUALS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be TAG
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * Tag of a Dynatrace entity
     */
    value?: outputs.AutotagRuleConditionTagComparisonValue;
}
export interface AutotagRuleConditionTagComparisonValue {
    /**
     * The origin of the tag, such as AWS or Cloud Foundry. Possible values are AWS, AWS_GENERIC, AZURE, CLOUD_FOUNDRY, CONTEXTLESS, ENVIRONMENT, GOOGLE_CLOUD and KUBERNETES. Custom tags use the `CONTEXTLESS` value
     */
    context: string;
    /**
     * The key of the tag. Custom tags have the tag value here
     */
    key: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value of the tag. Not applicable to custom tags
     */
    value?: string;
}
export interface AutotagRuleConditionTagValue {
    /**
     * The origin of the tag, such as AWS or Cloud Foundry. Possible values are AWS, AWS_GENERIC, AZURE, CLOUD_FOUNDRY, CONTEXTLESS, ENVIRONMENT, GOOGLE_CLOUD and KUBERNETES. Custom tags use the `CONTEXTLESS` value
     */
    context: string;
    /**
     * The key of the tag. Custom tags have the tag value here
     */
    key: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value of the tag. Not applicable to custom tags
     */
    value?: string;
}
export interface AutotagRuleConditionTech {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are EQUALS and EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value?: outputs.AutotagRuleConditionTechValue;
}
export interface AutotagRuleConditionTechValue {
    /**
     * Predefined technology, if technology is not predefined, then the verbatim type must be set.
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * Non-predefined technology, use for custom technologies
     */
    verbatimType?: string;
}
export interface AutotagRulesRules {
    rules: outputs.AutotagRulesRulesRule[];
}
export interface AutotagRulesRulesRule {
    /**
     * no documentation available
     */
    attributeRule?: outputs.AutotagRulesRulesRuleAttributeRule;
    /**
     * This setting is enabled (`true`) or disabled (`false`)
     */
    enabled: boolean;
    /**
     * The documentation of the entity selector can be found [here](https://dt-url.net/apientityselector).
     */
    entitySelector?: string;
    /**
     * Possible Values: `ME`, `SELECTOR`
     */
    type: string;
    /**
     * Optional tag value
     */
    valueFormat?: string;
    /**
     * Possible Values: `Leave text as-is`, `To lower case`, `To upper case`
     */
    valueNormalization: string;
}
export interface AutotagRulesRulesRuleAttributeRule {
    /**
     * Apply to process groups connected to matching Azure entities
     */
    azureToPgpropagation?: boolean;
    /**
     * Apply to services provided by matching Azure entities
     */
    azureToServicePropagation?: boolean;
    /**
     * no documentation available
     */
    conditions: outputs.AutotagRulesRulesRuleAttributeRuleConditions;
    /**
     * Possible Values: `APPLICATION`, `AWS_APPLICATION_LOAD_BALANCER`, `AWS_CLASSIC_LOAD_BALANCER`, `AWS_NETWORK_LOAD_BALANCER`, `AWS_RELATIONAL_DATABASE_SERVICE`, `AZURE`, `CUSTOM_APPLICATION`, `CUSTOM_DEVICE`, `DCRUM_APPLICATION`, `ESXI_HOST`, `EXTERNAL_SYNTHETIC_TEST`, `HOST`, `HTTP_CHECK`, `MOBILE_APPLICATION`, `PROCESS_GROUP`, `SERVICE`, `SYNTHETIC_TEST`
     */
    entityType: string;
    /**
     * Apply to processes running on matching hosts
     */
    hostToPgpropagation?: boolean;
    /**
     * Apply to underlying hosts of matching process groups
     */
    pgToHostPropagation?: boolean;
    /**
     * Apply to all services provided by the process groups
     */
    pgToServicePropagation?: boolean;
    /**
     * Apply to underlying hosts of matching services
     */
    serviceToHostPropagation?: boolean;
    /**
     * Apply to underlying process groups of matching services
     */
    serviceToPgpropagation?: boolean;
}
export interface AutotagRulesRulesRuleAttributeRuleConditions {
    conditions: outputs.AutotagRulesRulesRuleAttributeRuleConditionsCondition[];
}
export interface AutotagRulesRulesRuleAttributeRuleConditionsCondition {
    /**
     * Case sensitive
     */
    caseSensitive?: boolean;
    /**
     * Dynamic key
     */
    dynamicKey?: string;
    /**
     * Key source
     */
    dynamicKeySource?: string;
    /**
     * Value
     */
    entityId?: string;
    /**
     * Value
     */
    enumValue?: string;
    /**
     * Value
     */
    integerValue?: number;
    /**
     * Possible Values: `APPMON_SERVER_NAME`, `APPMON_SYSTEM_PROFILE_NAME`, `AWS_ACCOUNT_ID`, `AWS_ACCOUNT_NAME`, `AWS_APPLICATION_LOAD_BALANCER_NAME`, `AWS_APPLICATION_LOAD_BALANCER_TAGS`, `AWS_AUTO_SCALING_GROUP_NAME`, `AWS_AUTO_SCALING_GROUP_TAGS`, `AWS_AVAILABILITY_ZONE_NAME`, `AWS_CLASSIC_LOAD_BALANCER_FRONTEND_PORTS`, `AWS_CLASSIC_LOAD_BALANCER_NAME`, `AWS_CLASSIC_LOAD_BALANCER_TAGS`, `AWS_NETWORK_LOAD_BALANCER_NAME`, `AWS_NETWORK_LOAD_BALANCER_TAGS`, `AWS_RELATIONAL_DATABASE_SERVICE_DB_NAME`, `AWS_RELATIONAL_DATABASE_SERVICE_ENDPOINT`, `AWS_RELATIONAL_DATABASE_SERVICE_ENGINE`, `AWS_RELATIONAL_DATABASE_SERVICE_INSTANCE_CLASS`, `AWS_RELATIONAL_DATABASE_SERVICE_NAME`, `AWS_RELATIONAL_DATABASE_SERVICE_PORT`, `AWS_RELATIONAL_DATABASE_SERVICE_TAGS`, `AZURE_ENTITY_NAME`, `AZURE_ENTITY_TAGS`, `AZURE_MGMT_GROUP_NAME`, `AZURE_MGMT_GROUP_UUID`, `AZURE_REGION_NAME`, `AZURE_SCALE_SET_NAME`, `AZURE_SUBSCRIPTION_NAME`, `AZURE_SUBSCRIPTION_UUID`, `AZURE_TENANT_NAME`, `AZURE_TENANT_UUID`, `AZURE_VM_NAME`, `BROWSER_MONITOR_NAME`, `BROWSER_MONITOR_TAGS`, `CLOUD_APPLICATION_LABELS`, `CLOUD_APPLICATION_NAME`, `CLOUD_APPLICATION_NAMESPACE_LABELS`, `CLOUD_APPLICATION_NAMESPACE_NAME`, `CLOUD_FOUNDRY_FOUNDATION_NAME`, `CLOUD_FOUNDRY_ORG_NAME`, `CUSTOM_APPLICATION_NAME`, `CUSTOM_APPLICATION_PLATFORM`, `CUSTOM_APPLICATION_TAGS`, `CUSTOM_APPLICATION_TYPE`, `CUSTOM_DEVICE_DNS_ADDRESS`, `CUSTOM_DEVICE_GROUP_NAME`, `CUSTOM_DEVICE_GROUP_TAGS`, `CUSTOM_DEVICE_IP_ADDRESS`, `CUSTOM_DEVICE_METADATA`, `CUSTOM_DEVICE_NAME`, `CUSTOM_DEVICE_PORT`, `CUSTOM_DEVICE_TAGS`, `CUSTOM_DEVICE_TECHNOLOGY`, `DATA_CENTER_SERVICE_DECODER_TYPE`, `DATA_CENTER_SERVICE_IP_ADDRESS`, `DATA_CENTER_SERVICE_METADATA`, `DATA_CENTER_SERVICE_NAME`, `DATA_CENTER_SERVICE_PORT`, `DATA_CENTER_SERVICE_TAGS`, `DOCKER_CONTAINER_NAME`, `DOCKER_FULL_IMAGE_NAME`, `DOCKER_IMAGE_VERSION`, `EC2_INSTANCE_AMI_ID`, `EC2_INSTANCE_AWS_INSTANCE_TYPE`, `EC2_INSTANCE_AWS_SECURITY_GROUP`, `EC2_INSTANCE_BEANSTALK_ENV_NAME`, `EC2_INSTANCE_ID`, `EC2_INSTANCE_NAME`, `EC2_INSTANCE_PRIVATE_HOST_NAME`, `EC2_INSTANCE_PUBLIC_HOST_NAME`, `EC2_INSTANCE_TAGS`, `ENTERPRISE_APPLICATION_DECODER_TYPE`, `ENTERPRISE_APPLICATION_IP_ADDRESS`, `ENTERPRISE_APPLICATION_METADATA`, `ENTERPRISE_APPLICATION_NAME`, `ENTERPRISE_APPLICATION_PORT`, `ENTERPRISE_APPLICATION_TAGS`, `ESXI_HOST_CLUSTER_NAME`, `ESXI_HOST_HARDWARE_MODEL`, `ESXI_HOST_HARDWARE_VENDOR`, `ESXI_HOST_NAME`, `ESXI_HOST_PRODUCT_NAME`, `ESXI_HOST_PRODUCT_VERSION`, `ESXI_HOST_TAGS`, `EXTERNAL_MONITOR_ENGINE_DESCRIPTION`, `EXTERNAL_MONITOR_ENGINE_NAME`, `EXTERNAL_MONITOR_ENGINE_TYPE`, `EXTERNAL_MONITOR_NAME`, `EXTERNAL_MONITOR_TAGS`, `GEOLOCATION_SITE_NAME`, `GOOGLE_CLOUD_PLATFORM_ZONE_NAME`, `GOOGLE_COMPUTE_INSTANCE_ID`, `GOOGLE_COMPUTE_INSTANCE_MACHINE_TYPE`, `GOOGLE_COMPUTE_INSTANCE_NAME`, `GOOGLE_COMPUTE_INSTANCE_PROJECT`, `GOOGLE_COMPUTE_INSTANCE_PROJECT_ID`, `GOOGLE_COMPUTE_INSTANCE_PUBLIC_IP_ADDRESSES`, `HOST_AIX_LOGICAL_CPU_COUNT`, `HOST_AIX_SIMULTANEOUS_THREADS`, `HOST_AIX_VIRTUAL_CPU_COUNT`, `HOST_ARCHITECTURE`, `HOST_AWS_NAME_TAG`, `HOST_AZURE_COMPUTE_MODE`, `HOST_AZURE_SKU`, `HOST_AZURE_WEB_APPLICATION_HOST_NAMES`, `HOST_AZURE_WEB_APPLICATION_SITE_NAMES`, `HOST_BITNESS`, `HOST_BOSH_AVAILABILITY_ZONE`, `HOST_BOSH_DEPLOYMENT_ID`, `HOST_BOSH_INSTANCE_ID`, `HOST_BOSH_INSTANCE_NAME`, `HOST_BOSH_NAME`, `HOST_BOSH_STEMCELL_VERSION`, `HOST_CLOUD_TYPE`, `HOST_CPU_CORES`, `HOST_CUSTOM_METADATA`, `HOST_DETECTED_NAME`, `HOST_GROUP_ID`, `HOST_GROUP_NAME`, `HOST_HYPERVISOR_TYPE`, `HOST_IP_ADDRESS`, `HOST_KUBERNETES_LABELS`, `HOST_LOGICAL_CPU_CORES`, `HOST_NAME`, `HOST_ONEAGENT_CUSTOM_HOST_NAME`, `HOST_OS_TYPE`, `HOST_OS_VERSION`, `HOST_PAAS_MEMORY_LIMIT`, `HOST_PAAS_TYPE`, `HOST_TAGS`, `HOST_TECHNOLOGY`, `HTTP_MONITOR_NAME`, `HTTP_MONITOR_TAGS`, `KUBERNETES_CLUSTER_NAME`, `KUBERNETES_NODE_NAME`, `KUBERNETES_SERVICE_NAME`, `MOBILE_APPLICATION_NAME`, `MOBILE_APPLICATION_PLATFORM`, `MOBILE_APPLICATION_TAGS`, `NAME_OF_COMPUTE_NODE`, `OPENSTACK_ACCOUNT_NAME`, `OPENSTACK_ACCOUNT_PROJECT_NAME`, `OPENSTACK_AVAILABILITY_ZONE_NAME`, `OPENSTACK_PROJECT_NAME`, `OPENSTACK_REGION_NAME`, `OPENSTACK_VM_INSTANCE_TYPE`, `OPENSTACK_VM_NAME`, `OPENSTACK_VM_SECURITY_GROUP`, `PROCESS_GROUP_AZURE_HOST_NAME`, `PROCESS_GROUP_AZURE_SITE_NAME`, `PROCESS_GROUP_CUSTOM_METADATA`, `PROCESS_GROUP_DETECTED_NAME`, `PROCESS_GROUP_ID`, `PROCESS_GROUP_LISTEN_PORT`, `PROCESS_GROUP_NAME`, `PROCESS_GROUP_PREDEFINED_METADATA`, `PROCESS_GROUP_TAGS`, `PROCESS_GROUP_TECHNOLOGY`, `PROCESS_GROUP_TECHNOLOGY_EDITION`, `PROCESS_GROUP_TECHNOLOGY_VERSION`, `QUEUE_NAME`, `QUEUE_TECHNOLOGY`, `QUEUE_VENDOR`, `SERVICE_AKKA_ACTOR_SYSTEM`, `SERVICE_CTG_SERVICE_NAME`, `SERVICE_DATABASE_HOST_NAME`, `SERVICE_DATABASE_NAME`, `SERVICE_DATABASE_TOPOLOGY`, `SERVICE_DATABASE_VENDOR`, `SERVICE_DETECTED_NAME`, `SERVICE_ESB_APPLICATION_NAME`, `SERVICE_IBM_CTG_GATEWAY_URL`, `SERVICE_MESSAGING_LISTENER_CLASS_NAME`, `SERVICE_NAME`, `SERVICE_PORT`, `SERVICE_PUBLIC_DOMAIN_NAME`, `SERVICE_REMOTE_ENDPOINT`, `SERVICE_REMOTE_SERVICE_NAME`, `SERVICE_TAGS`, `SERVICE_TECHNOLOGY`, `SERVICE_TECHNOLOGY_EDITION`, `SERVICE_TECHNOLOGY_VERSION`, `SERVICE_TOPOLOGY`, `SERVICE_TYPE`, `SERVICE_WEB_APPLICATION_ID`, `SERVICE_WEB_CONTEXT_ROOT`, `SERVICE_WEB_SERVER_ENDPOINT`, `SERVICE_WEB_SERVER_NAME`, `SERVICE_WEB_SERVICE_NAME`, `SERVICE_WEB_SERVICE_NAMESPACE`, `VMWARE_DATACENTER_NAME`, `VMWARE_VM_NAME`, `WEB_APPLICATION_NAME`, `WEB_APPLICATION_NAME_PATTERN`, `WEB_APPLICATION_TAGS`, `WEB_APPLICATION_TYPE`
     */
    key: string;
    /**
     * Possible Values: `BEGINS_WITH`, `CONTAINS`, `ENDS_WITH`, `EQUALS`, `EXISTS`, `GREATER_THAN`, `GREATER_THAN_OR_EQUAL`, `IS_IP_IN_RANGE`, `LOWER_THAN`, `LOWER_THAN_OR_EQUAL`, `NOT_BEGINS_WITH`, `NOT_CONTAINS`, `NOT_ENDS_WITH`, `NOT_EQUALS`, `NOT_EXISTS`, `NOT_GREATER_THAN`, `NOT_GREATER_THAN_OR_EQUAL`, `NOT_IS_IP_IN_RANGE`, `NOT_LOWER_THAN`, `NOT_LOWER_THAN_OR_EQUAL`, `NOT_REGEX_MATCHES`, `NOT_TAG_KEY_EQUALS`, `REGEX_MATCHES`, `TAG_KEY_EQUALS`
     */
    operator: string;
    /**
     * Value
     */
    stringValue?: string;
    /**
     * Format: `[CONTEXT]tagKey:tagValue`
     */
    tag?: string;
}
export interface AutotagV2Rules {
    rules: outputs.AutotagV2RulesRule[];
}
export interface AutotagV2RulesRule {
    /**
     * no documentation available
     */
    attributeRule?: outputs.AutotagV2RulesRuleAttributeRule;
    /**
     * This setting is enabled (`true`) or disabled (`false`)
     */
    enabled: boolean;
    /**
     * The documentation of the entity selector can be found [here](https://dt-url.net/apientityselector).
     */
    entitySelector?: string;
    /**
     * Possible Values: `ME`, `SELECTOR`
     */
    type: string;
    /**
     * Optional tag value
     */
    valueFormat?: string;
    /**
     * Possible Values: `Leave text as-is`, `To lower case`, `To upper case`
     */
    valueNormalization: string;
}
export interface AutotagV2RulesRuleAttributeRule {
    /**
     * Apply to process groups connected to matching Azure entities
     */
    azureToPgpropagation?: boolean;
    /**
     * Apply to services provided by matching Azure entities
     */
    azureToServicePropagation?: boolean;
    /**
     * no documentation available
     */
    conditions: outputs.AutotagV2RulesRuleAttributeRuleConditions;
    /**
     * Possible Values: `APPLICATION`, `AWS_APPLICATION_LOAD_BALANCER`, `AWS_CLASSIC_LOAD_BALANCER`, `AWS_NETWORK_LOAD_BALANCER`, `AWS_RELATIONAL_DATABASE_SERVICE`, `AZURE`, `CUSTOM_APPLICATION`, `CUSTOM_DEVICE`, `DCRUM_APPLICATION`, `ESXI_HOST`, `EXTERNAL_SYNTHETIC_TEST`, `HOST`, `HTTP_CHECK`, `MOBILE_APPLICATION`, `PROCESS_GROUP`, `SERVICE`, `SYNTHETIC_TEST`
     */
    entityType: string;
    /**
     * Apply to processes running on matching hosts
     */
    hostToPgpropagation?: boolean;
    /**
     * Apply to underlying hosts of matching process groups
     */
    pgToHostPropagation?: boolean;
    /**
     * Apply to all services provided by the process groups
     */
    pgToServicePropagation?: boolean;
    /**
     * Apply to underlying hosts of matching services
     */
    serviceToHostPropagation?: boolean;
    /**
     * Apply to underlying process groups of matching services
     */
    serviceToPgpropagation?: boolean;
}
export interface AutotagV2RulesRuleAttributeRuleConditions {
    conditions: outputs.AutotagV2RulesRuleAttributeRuleConditionsCondition[];
}
export interface AutotagV2RulesRuleAttributeRuleConditionsCondition {
    /**
     * Case sensitive
     */
    caseSensitive?: boolean;
    /**
     * Dynamic key
     */
    dynamicKey?: string;
    /**
     * Key source
     */
    dynamicKeySource?: string;
    /**
     * Value
     */
    entityId?: string;
    /**
     * Value
     */
    enumValue?: string;
    /**
     * Value
     */
    integerValue?: number;
    /**
     * Possible Values: `APPMON_SERVER_NAME`, `APPMON_SYSTEM_PROFILE_NAME`, `AWS_ACCOUNT_ID`, `AWS_ACCOUNT_NAME`, `AWS_APPLICATION_LOAD_BALANCER_NAME`, `AWS_APPLICATION_LOAD_BALANCER_TAGS`, `AWS_AUTO_SCALING_GROUP_NAME`, `AWS_AUTO_SCALING_GROUP_TAGS`, `AWS_AVAILABILITY_ZONE_NAME`, `AWS_CLASSIC_LOAD_BALANCER_FRONTEND_PORTS`, `AWS_CLASSIC_LOAD_BALANCER_NAME`, `AWS_CLASSIC_LOAD_BALANCER_TAGS`, `AWS_NETWORK_LOAD_BALANCER_NAME`, `AWS_NETWORK_LOAD_BALANCER_TAGS`, `AWS_RELATIONAL_DATABASE_SERVICE_DB_NAME`, `AWS_RELATIONAL_DATABASE_SERVICE_ENDPOINT`, `AWS_RELATIONAL_DATABASE_SERVICE_ENGINE`, `AWS_RELATIONAL_DATABASE_SERVICE_INSTANCE_CLASS`, `AWS_RELATIONAL_DATABASE_SERVICE_NAME`, `AWS_RELATIONAL_DATABASE_SERVICE_PORT`, `AWS_RELATIONAL_DATABASE_SERVICE_TAGS`, `AZURE_ENTITY_NAME`, `AZURE_ENTITY_TAGS`, `AZURE_MGMT_GROUP_NAME`, `AZURE_MGMT_GROUP_UUID`, `AZURE_REGION_NAME`, `AZURE_SCALE_SET_NAME`, `AZURE_SUBSCRIPTION_NAME`, `AZURE_SUBSCRIPTION_UUID`, `AZURE_TENANT_NAME`, `AZURE_TENANT_UUID`, `AZURE_VM_NAME`, `BROWSER_MONITOR_NAME`, `BROWSER_MONITOR_TAGS`, `CLOUD_APPLICATION_LABELS`, `CLOUD_APPLICATION_NAME`, `CLOUD_APPLICATION_NAMESPACE_LABELS`, `CLOUD_APPLICATION_NAMESPACE_NAME`, `CLOUD_FOUNDRY_FOUNDATION_NAME`, `CLOUD_FOUNDRY_ORG_NAME`, `CUSTOM_APPLICATION_NAME`, `CUSTOM_APPLICATION_PLATFORM`, `CUSTOM_APPLICATION_TAGS`, `CUSTOM_APPLICATION_TYPE`, `CUSTOM_DEVICE_DNS_ADDRESS`, `CUSTOM_DEVICE_GROUP_NAME`, `CUSTOM_DEVICE_GROUP_TAGS`, `CUSTOM_DEVICE_IP_ADDRESS`, `CUSTOM_DEVICE_METADATA`, `CUSTOM_DEVICE_NAME`, `CUSTOM_DEVICE_PORT`, `CUSTOM_DEVICE_TAGS`, `CUSTOM_DEVICE_TECHNOLOGY`, `DATA_CENTER_SERVICE_DECODER_TYPE`, `DATA_CENTER_SERVICE_IP_ADDRESS`, `DATA_CENTER_SERVICE_METADATA`, `DATA_CENTER_SERVICE_NAME`, `DATA_CENTER_SERVICE_PORT`, `DATA_CENTER_SERVICE_TAGS`, `DOCKER_CONTAINER_NAME`, `DOCKER_FULL_IMAGE_NAME`, `DOCKER_IMAGE_VERSION`, `EC2_INSTANCE_AMI_ID`, `EC2_INSTANCE_AWS_INSTANCE_TYPE`, `EC2_INSTANCE_AWS_SECURITY_GROUP`, `EC2_INSTANCE_BEANSTALK_ENV_NAME`, `EC2_INSTANCE_ID`, `EC2_INSTANCE_NAME`, `EC2_INSTANCE_PRIVATE_HOST_NAME`, `EC2_INSTANCE_PUBLIC_HOST_NAME`, `EC2_INSTANCE_TAGS`, `ENTERPRISE_APPLICATION_DECODER_TYPE`, `ENTERPRISE_APPLICATION_IP_ADDRESS`, `ENTERPRISE_APPLICATION_METADATA`, `ENTERPRISE_APPLICATION_NAME`, `ENTERPRISE_APPLICATION_PORT`, `ENTERPRISE_APPLICATION_TAGS`, `ESXI_HOST_CLUSTER_NAME`, `ESXI_HOST_HARDWARE_MODEL`, `ESXI_HOST_HARDWARE_VENDOR`, `ESXI_HOST_NAME`, `ESXI_HOST_PRODUCT_NAME`, `ESXI_HOST_PRODUCT_VERSION`, `ESXI_HOST_TAGS`, `EXTERNAL_MONITOR_ENGINE_DESCRIPTION`, `EXTERNAL_MONITOR_ENGINE_NAME`, `EXTERNAL_MONITOR_ENGINE_TYPE`, `EXTERNAL_MONITOR_NAME`, `EXTERNAL_MONITOR_TAGS`, `GEOLOCATION_SITE_NAME`, `GOOGLE_CLOUD_PLATFORM_ZONE_NAME`, `GOOGLE_COMPUTE_INSTANCE_ID`, `GOOGLE_COMPUTE_INSTANCE_MACHINE_TYPE`, `GOOGLE_COMPUTE_INSTANCE_NAME`, `GOOGLE_COMPUTE_INSTANCE_PROJECT`, `GOOGLE_COMPUTE_INSTANCE_PROJECT_ID`, `GOOGLE_COMPUTE_INSTANCE_PUBLIC_IP_ADDRESSES`, `HOST_AIX_LOGICAL_CPU_COUNT`, `HOST_AIX_SIMULTANEOUS_THREADS`, `HOST_AIX_VIRTUAL_CPU_COUNT`, `HOST_ARCHITECTURE`, `HOST_AWS_NAME_TAG`, `HOST_AZURE_COMPUTE_MODE`, `HOST_AZURE_SKU`, `HOST_AZURE_WEB_APPLICATION_HOST_NAMES`, `HOST_AZURE_WEB_APPLICATION_SITE_NAMES`, `HOST_BITNESS`, `HOST_BOSH_AVAILABILITY_ZONE`, `HOST_BOSH_DEPLOYMENT_ID`, `HOST_BOSH_INSTANCE_ID`, `HOST_BOSH_INSTANCE_NAME`, `HOST_BOSH_NAME`, `HOST_BOSH_STEMCELL_VERSION`, `HOST_CLOUD_TYPE`, `HOST_CPU_CORES`, `HOST_CUSTOM_METADATA`, `HOST_DETECTED_NAME`, `HOST_GROUP_ID`, `HOST_GROUP_NAME`, `HOST_HYPERVISOR_TYPE`, `HOST_IP_ADDRESS`, `HOST_KUBERNETES_LABELS`, `HOST_LOGICAL_CPU_CORES`, `HOST_NAME`, `HOST_ONEAGENT_CUSTOM_HOST_NAME`, `HOST_OS_TYPE`, `HOST_OS_VERSION`, `HOST_PAAS_MEMORY_LIMIT`, `HOST_PAAS_TYPE`, `HOST_TAGS`, `HOST_TECHNOLOGY`, `HTTP_MONITOR_NAME`, `HTTP_MONITOR_TAGS`, `KUBERNETES_CLUSTER_NAME`, `KUBERNETES_NODE_NAME`, `KUBERNETES_SERVICE_NAME`, `MOBILE_APPLICATION_NAME`, `MOBILE_APPLICATION_PLATFORM`, `MOBILE_APPLICATION_TAGS`, `NAME_OF_COMPUTE_NODE`, `OPENSTACK_ACCOUNT_NAME`, `OPENSTACK_ACCOUNT_PROJECT_NAME`, `OPENSTACK_AVAILABILITY_ZONE_NAME`, `OPENSTACK_PROJECT_NAME`, `OPENSTACK_REGION_NAME`, `OPENSTACK_VM_INSTANCE_TYPE`, `OPENSTACK_VM_NAME`, `OPENSTACK_VM_SECURITY_GROUP`, `PROCESS_GROUP_AZURE_HOST_NAME`, `PROCESS_GROUP_AZURE_SITE_NAME`, `PROCESS_GROUP_CUSTOM_METADATA`, `PROCESS_GROUP_DETECTED_NAME`, `PROCESS_GROUP_ID`, `PROCESS_GROUP_LISTEN_PORT`, `PROCESS_GROUP_NAME`, `PROCESS_GROUP_PREDEFINED_METADATA`, `PROCESS_GROUP_TAGS`, `PROCESS_GROUP_TECHNOLOGY`, `PROCESS_GROUP_TECHNOLOGY_EDITION`, `PROCESS_GROUP_TECHNOLOGY_VERSION`, `QUEUE_NAME`, `QUEUE_TECHNOLOGY`, `QUEUE_VENDOR`, `SERVICE_AKKA_ACTOR_SYSTEM`, `SERVICE_CTG_SERVICE_NAME`, `SERVICE_DATABASE_HOST_NAME`, `SERVICE_DATABASE_NAME`, `SERVICE_DATABASE_TOPOLOGY`, `SERVICE_DATABASE_VENDOR`, `SERVICE_DETECTED_NAME`, `SERVICE_ESB_APPLICATION_NAME`, `SERVICE_IBM_CTG_GATEWAY_URL`, `SERVICE_MESSAGING_LISTENER_CLASS_NAME`, `SERVICE_NAME`, `SERVICE_PORT`, `SERVICE_PUBLIC_DOMAIN_NAME`, `SERVICE_REMOTE_ENDPOINT`, `SERVICE_REMOTE_SERVICE_NAME`, `SERVICE_TAGS`, `SERVICE_TECHNOLOGY`, `SERVICE_TECHNOLOGY_EDITION`, `SERVICE_TECHNOLOGY_VERSION`, `SERVICE_TOPOLOGY`, `SERVICE_TYPE`, `SERVICE_WEB_APPLICATION_ID`, `SERVICE_WEB_CONTEXT_ROOT`, `SERVICE_WEB_SERVER_ENDPOINT`, `SERVICE_WEB_SERVER_NAME`, `SERVICE_WEB_SERVICE_NAME`, `SERVICE_WEB_SERVICE_NAMESPACE`, `VMWARE_DATACENTER_NAME`, `VMWARE_VM_NAME`, `WEB_APPLICATION_NAME`, `WEB_APPLICATION_NAME_PATTERN`, `WEB_APPLICATION_TAGS`, `WEB_APPLICATION_TYPE`
     */
    key: string;
    /**
     * Possible Values: `BEGINS_WITH`, `CONTAINS`, `ENDS_WITH`, `EQUALS`, `EXISTS`, `GREATER_THAN`, `GREATER_THAN_OR_EQUAL`, `IS_IP_IN_RANGE`, `LOWER_THAN`, `LOWER_THAN_OR_EQUAL`, `NOT_BEGINS_WITH`, `NOT_CONTAINS`, `NOT_ENDS_WITH`, `NOT_EQUALS`, `NOT_EXISTS`, `NOT_GREATER_THAN`, `NOT_GREATER_THAN_OR_EQUAL`, `NOT_IS_IP_IN_RANGE`, `NOT_LOWER_THAN`, `NOT_LOWER_THAN_OR_EQUAL`, `NOT_REGEX_MATCHES`, `NOT_TAG_KEY_EQUALS`, `REGEX_MATCHES`, `TAG_KEY_EQUALS`
     */
    operator: string;
    /**
     * Value
     */
    stringValue?: string;
    /**
     * Format: `[CONTEXT]tagKey:tagValue`
     */
    tag?: string;
}
export interface AwsAnomaliesEc2CandidateHighCpuDetection {
    /**
     * Alert if the condition is met in 3 out of 5 samples
     */
    customThresholds?: outputs.AwsAnomaliesEc2CandidateHighCpuDetectionCustomThresholds;
    /**
     * Possible Values: `Auto`, `Custom`
     */
    detectionMode?: string;
    /**
     * This setting is enabled (`true`) or disabled (`false`)
     */
    enabled: boolean;
}
export interface AwsAnomaliesEc2CandidateHighCpuDetectionCustomThresholds {
    /**
     * CPU usage is higher than
     */
    cpuUsage: number;
}
export interface AwsAnomaliesElbHighConnectionErrorsDetection {
    /**
     * Alert if the condition is met in 3 out of 5 samples
     */
    customThresholds?: outputs.AwsAnomaliesElbHighConnectionErrorsDetectionCustomThresholds;
    /**
     * Possible Values: `Auto`, `Custom`
     */
    detectionMode?: string;
    /**
     * This setting is enabled (`true`) or disabled (`false`)
     */
    enabled: boolean;
}
export interface AwsAnomaliesElbHighConnectionErrorsDetectionCustomThresholds {
    /**
     * Number of backend connection errors is higher than
     */
    connectionErrorsPerMinute: number;
}
export interface AwsAnomaliesLambdaHighErrorRateDetection {
    /**
     * Alert if the condition is met in 3 out of 5 samples
     */
    customThresholds?: outputs.AwsAnomaliesLambdaHighErrorRateDetectionCustomThresholds;
    /**
     * Possible Values: `Auto`, `Custom`
     */
    detectionMode?: string;
    /**
     * This setting is enabled (`true`) or disabled (`false`)
     */
    enabled: boolean;
}
export interface AwsAnomaliesLambdaHighErrorRateDetectionCustomThresholds {
    /**
     * Failed invocations rate is higher than
     */
    failedInvocationsRate: number;
}
export interface AwsAnomaliesRdsHighCpuDetection {
    /**
     * Alert if the condition is met in 3 out of 5 samples
     */
    customThresholds?: outputs.AwsAnomaliesRdsHighCpuDetectionCustomThresholds;
    /**
     * Possible Values: `Auto`, `Custom`
     */
    detectionMode?: string;
    /**
     * This setting is enabled (`true`) or disabled (`false`)
     */
    enabled: boolean;
}
export interface AwsAnomaliesRdsHighCpuDetectionCustomThresholds {
    /**
     * CPU usage is higher than
     */
    cpuUsage: number;
}
export interface AwsAnomaliesRdsHighMemoryDetection {
    /**
     * Alert if **both** conditions is met in 3 out of 5 samples
     */
    customThresholds?: outputs.AwsAnomaliesRdsHighMemoryDetectionCustomThresholds;
    /**
     * Possible Values: `Auto`, `Custom`
     */
    detectionMode?: string;
    /**
     * This setting is enabled (`true`) or disabled (`false`)
     */
    enabled: boolean;
}
export interface AwsAnomaliesRdsHighMemoryDetectionCustomThresholds {
    /**
     * Freeable memory is lower than
     */
    freeMemory: number;
    /**
     * Swap usage is higher than
     */
    swapUsage: number;
}
export interface AwsAnomaliesRdsHighWriteReadLatencyDetection {
    /**
     * Alert if the condition is met in 3 out of 5 samples
     */
    customThresholds?: outputs.AwsAnomaliesRdsHighWriteReadLatencyDetectionCustomThresholds;
    /**
     * Possible Values: `Auto`, `Custom`
     */
    detectionMode?: string;
    /**
     * This setting is enabled (`true`) or disabled (`false`)
     */
    enabled: boolean;
}
export interface AwsAnomaliesRdsHighWriteReadLatencyDetectionCustomThresholds {
    /**
     * Read/write latency is higher than
     */
    readWriteLatency: number;
}
export interface AwsAnomaliesRdsLowStorageDetection {
    /**
     * Alert if the condition is met in 3 out of 5 samples
     */
    customThresholds?: outputs.AwsAnomaliesRdsLowStorageDetectionCustomThresholds;
    /**
     * Possible Values: `Auto`, `Custom`
     */
    detectionMode?: string;
    /**
     * This setting is enabled (`true`) or disabled (`false`)
     */
    enabled: boolean;
}
export interface AwsAnomaliesRdsLowStorageDetectionCustomThresholds {
    /**
     * Free storage space divided by allocated storage is lower than
     */
    freeStoragePercentage: number;
}
export interface AwsAnomaliesRdsRestartsSequenceDetection {
    /**
     * Alert if the condition is met in 2 out of 20 samples
     */
    customThresholds?: outputs.AwsAnomaliesRdsRestartsSequenceDetectionCustomThresholds;
    /**
     * Possible Values: `Auto`, `Custom`
     */
    detectionMode?: string;
    /**
     * This setting is enabled (`true`) or disabled (`false`)
     */
    enabled: boolean;
}
export interface AwsAnomaliesRdsRestartsSequenceDetectionCustomThresholds {
    /**
     * Number of restarts per minute is equal or higher than
     */
    restartsPerMinute: number;
}
export interface AwsCredentialsAuthenticationData {
    /**
     * the access key
     */
    accessKey?: string;
    /**
     * the ID of the Amazon account
     */
    accountId?: string;
    /**
     * (Read only) the external ID token for setting an IAM role. You can obtain it with the `GET /aws/iamExternalId` request
     */
    externalId: string;
    /**
     * the IAM role to be used by Dynatrace to get monitoring data
     */
    iamRole?: string;
    /**
     * the secret access key
     */
    secretKey?: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
}
export interface AwsCredentialsSupportingServicesToMonitor {
    /**
     * a list of metrics to be monitored for this service
     */
    monitoredMetrics?: outputs.AwsCredentialsSupportingServicesToMonitorMonitoredMetric[];
    /**
     * the name of the supporting service
     */
    name?: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
}
export interface AwsCredentialsSupportingServicesToMonitorMonitoredMetric {
    /**
     * a list of metric's dimensions names
     */
    dimensions?: string[];
    /**
     * the name of the metric of the supporting service
     */
    name?: string;
    /**
     * the statistic (aggregation) to be used for the metric. AVG*MIN*MAX value is 3 statistics at once: AVERAGE, MINIMUM and MAXIMUM
     */
    statistic?: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
}
export interface AwsCredentialsTagsToMonitor {
    /**
     * the key of the AWS tag.
     */
    name?: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * the value of the AWS tag
     */
    value?: string;
}
export interface AwsServiceMetric {
    /**
     * a list of metric's dimensions names
     */
    dimensions?: string[];
    /**
     * the name of the metric of the supporting service
     */
    name: string;
    /**
     * Possible values are `AVERAGE`, `AVG_MIN_MAX`, `MAXIMUM`, `MINIMUM`, `SAMPLE_COUNT` and `SUM`
     */
    statistic?: string;
}
export interface AzureCredentialsMonitorOnlyExcludingTagPair {
    /**
     * The name of the tag.
     */
    name?: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value of the tag.   If set to `null`, then resources with any value of the tag are monitored.
     */
    value?: string;
}
export interface AzureCredentialsMonitorOnlyTagPair {
    /**
     * The name of the tag.
     */
    name?: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value of the tag.   If set to `null`, then resources with any value of the tag are monitored.
     */
    value?: string;
}
export interface AzureCredentialsSupportingService {
    /**
     * A list of Azure tags to be monitored.  You can specify up to 10 tags. A resource tagged with *any* of the specified tags is monitored.  Only applicable when the **monitorOnlyTaggedEntities** parameter is set to `true`
     */
    monitoredMetrics?: outputs.AzureCredentialsSupportingServiceMonitoredMetric[];
    /**
     * The name of the supporting service.
     */
    name?: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
}
export interface AzureCredentialsSupportingServiceMonitoredMetric {
    /**
     * a list of metric's dimensions names
     */
    dimensions?: string[];
    /**
     * the name of the metric of the supporting service
     */
    name?: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
}
export interface AzureServiceMetric {
    /**
     * a list of metric's dimensions names
     */
    dimensions?: string[];
    /**
     * the name of the metric of the supporting service
     */
    name: string;
}
export interface BrowserMonitorAnomalyDetection {
    /**
     * Thresholds for loading times
     */
    loadingTimeThresholds?: outputs.BrowserMonitorAnomalyDetectionLoadingTimeThreshold[];
    /**
     * Outage handling configuration
     */
    outageHandlings?: outputs.BrowserMonitorAnomalyDetectionOutageHandling[];
}
export interface BrowserMonitorAnomalyDetectionLoadingTimeThreshold {
    /**
     * Performance threshold is enabled (`true`) or disabled (`false`)
     */
    enabled?: boolean;
    /**
     * The list of performance threshold rules
     */
    thresholds?: outputs.BrowserMonitorAnomalyDetectionLoadingTimeThresholdThreshold[];
}
export interface BrowserMonitorAnomalyDetectionLoadingTimeThresholdThreshold {
    /**
     * The list of performance threshold rules
     */
    thresholds: outputs.BrowserMonitorAnomalyDetectionLoadingTimeThresholdThresholdThreshold[];
}
export interface BrowserMonitorAnomalyDetectionLoadingTimeThresholdThresholdThreshold {
    /**
     * Specify the event to which an ACTION threshold applies
     */
    eventIndex?: number;
    /**
     * Specify the request to which an ACTION threshold applies
     */
    requestIndex?: number;
    /**
     * The type of the threshold: `TOTAL` (total loading time) or `ACTION` (action loading time)
     */
    type?: string;
    /**
     * Notify if monitor takes longer than *X* milliseconds to load
     */
    valueMs: number;
}
export interface BrowserMonitorAnomalyDetectionOutageHandling {
    /**
     * (Field has overlap with `dynatrace.BrowserMonitorOutage` and `dynatrace.HttpMonitorOutage`) When enabled (`true`), generate a problem and send an alert when the monitor is unavailable at all configured locations
     */
    globalOutage?: boolean;
    /**
     * (Field has overlap with `dynatrace.BrowserMonitorOutage` and `dynatrace.HttpMonitorOutage`) Global outage handling configuration.
     */
    globalOutagePolicies?: outputs.BrowserMonitorAnomalyDetectionOutageHandlingGlobalOutagePolicy[];
    /**
     * (Field has overlap with `dynatrace.BrowserMonitorOutage` and `dynatrace.HttpMonitorOutage`) When enabled (`true`), generate a problem and send an alert when the monitor is unavailable for one or more consecutive runs at any location
     */
    localOutage?: boolean;
    /**
     * (Field has overlap with `dynatrace.BrowserMonitorOutage` and `dynatrace.HttpMonitorOutage`) Local outage handling configuration.
     *
     *  Alert if **affectedLocations** of locations are unable to access the web application **consecutiveRuns** times consecutively
     */
    localOutagePolicies?: outputs.BrowserMonitorAnomalyDetectionOutageHandlingLocalOutagePolicy[];
    /**
     * (Field has overlap with `dynatrace.BrowserMonitorOutage` and `dynatrace.HttpMonitorOutage`) Schedule retry if browser monitor execution results in a fail. For HTTP monitors this property is ignored
     */
    retryOnError?: boolean;
}
export interface BrowserMonitorAnomalyDetectionOutageHandlingGlobalOutagePolicy {
    /**
     * The number of consecutive fails to trigger an alert
     */
    consecutiveRuns: number;
}
export interface BrowserMonitorAnomalyDetectionOutageHandlingLocalOutagePolicy {
    /**
     * The number of affected locations to trigger an alert
     */
    affectedLocations: number;
    /**
     * The number of consecutive fails to trigger an alert
     */
    consecutiveRuns: number;
}
export interface BrowserMonitorKeyPerformanceMetrics {
    /**
     * Defines the key performance metric for load actions. Supported values are `VISUALLY_COMPLETE`, `SPEED_INDEX`, `USER_ACTION_DURATION`, `TIME_TO_FIRST_BYTE`, `HTML_DOWNLOADED`, `DOM_INTERACTIVE`, `LOAD_EVENT_START` and `LOAD_EVENT_END`.
     */
    loadActionKpm: string;
    /**
     * Defines the key performance metric for XHR actions. Supported values are `VISUALLY_COMPLETE`, `USER_ACTION_DURATION`, `TIME_TO_FIRST_BYTE` and `RESPONSE_END`.
     */
    xhrActionKpm: string;
}
export interface BrowserMonitorPerformanceThresholds {
    thresholds: outputs.BrowserMonitorPerformanceThresholdsThreshold[];
}
export interface BrowserMonitorPerformanceThresholdsThreshold {
    /**
     * Synthetic event
     */
    event: string;
    /**
     * Threshold (in seconds)
     */
    threshold: number;
}
export interface BrowserMonitorScript {
    /**
     * The setup of the monitor
     */
    configuration?: outputs.BrowserMonitorScriptConfiguration;
    /**
     * Steps of the clickpath—the first step must always be of the `navigate` type
     */
    events?: outputs.BrowserMonitorScriptEvents;
    /**
     * The type of monitor. Possible values are `clickpath` for clickpath monitors and `availability` for single-URL browser monitors. These monitors are only allowed to have one event of the `navigate` type
     */
    type: string;
}
export interface BrowserMonitorScriptConfiguration {
    /**
     * The emulated device of the monitor—holds either the parameters of the custom device or the name and orientation of the preconfigured device.
     */
    bandwidth?: outputs.BrowserMonitorScriptConfigurationBandwidth;
    /**
     * Block these URLs
     */
    blocks?: string[];
    /**
     * Bypass Content Security Policy of monitored pages
     */
    bypassCsp?: boolean;
    /**
     * These cookies are added before execution of the first step
     */
    cookies?: outputs.BrowserMonitorScriptConfigurationCookies;
    /**
     * The emulated device of the monitor—holds either the parameters of the custom device or the name and orientation of the preconfigured device.
     *
     * If not set, then the Desktop preconfigured device is used
     */
    device?: outputs.BrowserMonitorScriptConfigurationDevice;
    /**
     * No documentation available
     */
    disableWebSecurity?: boolean;
    /**
     * The list of HTTP headers to be sent with requests of the monitor
     */
    headers?: outputs.BrowserMonitorScriptConfigurationHeaders;
    /**
     * Ignore specific status codes
     */
    ignoredErrorCodes?: outputs.BrowserMonitorScriptConfigurationIgnoredErrorCodes;
    /**
     * Custom JavaScript Agent settings
     */
    javascriptSetttings?: outputs.BrowserMonitorScriptConfigurationJavascriptSetttings;
    /**
     * Capture performance metrics for pages loaded in frames
     */
    monitorFrames?: boolean;
    /**
     * The user agent of the request
     */
    userAgent?: string;
}
export interface BrowserMonitorScriptConfigurationBandwidth {
    /**
     * The download speed of the network, in bytes per second
     */
    download?: number;
    /**
     * The latency of the network, in milliseconds
     */
    latency?: number;
    /**
     * The type of the preconfigured network—when editing in the browser, press `Crtl+Spacebar` to see the list of available networks
     */
    networkType?: string;
    /**
     * The upload speed of the network, in bytes per second
     */
    upload?: number;
}
export interface BrowserMonitorScriptConfigurationCookies {
    /**
     * A request cookie
     */
    cookies: outputs.BrowserMonitorScriptConfigurationCookiesCookie[];
}
export interface BrowserMonitorScriptConfigurationCookiesCookie {
    /**
     * The domain of the cookie.
     */
    domain: string;
    /**
     * The name of the cookie. The following cookie names are now allowed: `dtCookie`, `dtLatC`, `dtPC`, `rxVisitor`, `rxlatency`, `rxpc`, `rxsession` and `rxvt`
     */
    name: string;
    /**
     * The path of the cookie.
     */
    path?: string;
    /**
     * The value of the cookie. The following symbols are not allowed: `;`, `,`, `\` and `"`.
     */
    value: string;
}
export interface BrowserMonitorScriptConfigurationDevice {
    /**
     * The height of the screen in pixels.
     * The maximum allowed width is `1080`.
     */
    height?: number;
    /**
     * The flag of the mobile device.
     * Set to `true` for mobile devices or `false` for a desktop or laptop.
     */
    mobile?: boolean;
    /**
     * The name of the preconfigured device—when editing in the browser, press `Crtl+Spacebar` to see the list of available devices
     */
    name?: string;
    /**
     * The orientation of the device. Possible values are `portrait` or `landscape`. Desktop and laptop devices are not allowed to use the `portrait` orientation
     */
    orientation?: string;
    /**
     * The pixel ratio of the device.
     */
    scaleFactor?: number;
    /**
     * The flag of the touchscreen.
     * Set to `true` if the device uses touchscreen. In that case, use can set interaction event as `tap`.
     */
    touchEnabled?: boolean;
    /**
     * The width of the screen in pixels.
     * The maximum allowed width is `1920`.
     */
    width?: number;
}
export interface BrowserMonitorScriptConfigurationHeaders {
    /**
     * contains an HTTP header of the request
     */
    headers: outputs.BrowserMonitorScriptConfigurationHeadersHeader[];
    /**
     * Restrict applying headers to a set of URLs
     */
    restrictions?: string[];
}
export interface BrowserMonitorScriptConfigurationHeadersHeader {
    /**
     * The key of the header
     */
    name: string;
    /**
     * The value of the header
     */
    value: string;
}
export interface BrowserMonitorScriptConfigurationIgnoredErrorCodes {
    /**
     * Only apply to document request matching this regex
     */
    matchingDocumentRequests?: string;
    /**
     * You can use exact number, range or status class mask. Multiple values can be separated by comma, i.e. 404, 405-410, 5xx
     */
    statusCodes: string;
}
export interface BrowserMonitorScriptConfigurationJavascriptSetttings {
    /**
     * Additional Javascript Agent Properties
     */
    customProperties?: string;
    /**
     * Capture fetch() requests
     */
    fetchRequests?: boolean;
    /**
     * JavaScript error report
     */
    javascriptErrors?: boolean;
    /**
     * Timed action support
     */
    timedActions?: boolean;
    /**
     * Custom JavaScript Agent settings
     */
    timeoutSettings?: outputs.BrowserMonitorScriptConfigurationJavascriptSetttingsTimeoutSettings;
    /**
     * Parameters for Visually complete and Speed index calculation
     */
    visuallyCompleteOptions?: outputs.BrowserMonitorScriptConfigurationJavascriptSetttingsVisuallyCompleteOptions;
    /**
     * Capture XMLHttpRequests (XHR)
     */
    xmlHttpRequests?: boolean;
}
export interface BrowserMonitorScriptConfigurationJavascriptSetttingsTimeoutSettings {
    /**
     * Track up to n cascading setTimeout calls
     */
    actionLimit: number;
    /**
     * Limit cascading timeouts cumulatively to n ms
     */
    totalTimeout: number;
}
export interface BrowserMonitorScriptConfigurationJavascriptSetttingsVisuallyCompleteOptions {
    /**
     * Query CSS selectors to specify mutation nodes (elements that change) to ignore in Visually complete and Speed index calculation
     */
    excludedElements?: string[];
    /**
     * Parameters for Visually complete and Speed index calculation
     */
    excludedUrls?: string[];
    /**
     * Use this setting to define the minimum visible area per element (in pixels) for an element to be counted towards Visually complete and Speed index
     */
    imageSizeThreshold: number;
    /**
     * The time the Visually complete module waits for inactivity and no further mutations on the page after the load action
     */
    inactivityTimeout: number;
    /**
     * The time the Visually complete module waits after an XHR or custom action closes to start the calculation
     */
    mutationTimeout: number;
}
export interface BrowserMonitorScriptEvents {
    /**
     * An event
     */
    events?: outputs.BrowserMonitorScriptEventsEvent[];
}
export interface BrowserMonitorScriptEventsEvent {
    /**
     * Properties specified for a click event
     */
    click?: outputs.BrowserMonitorScriptEventsEventClick;
    /**
     * Properties specified for a cookie event
     */
    cookie?: outputs.BrowserMonitorScriptEventsEventCookie;
    /**
     * A short description of the event to appear in the UI
     */
    description: string;
    /**
     * Properties specified for a javascript event
     */
    javascript?: outputs.BrowserMonitorScriptEventsEventJavascript;
    /**
     * Properties specified for a key strokes event
     */
    keystrokes?: outputs.BrowserMonitorScriptEventsEventKeystrokes;
    /**
     * Properties specified for a navigation event
     */
    navigate?: outputs.BrowserMonitorScriptEventsEventNavigate;
    /**
     * Properties specified for a key strokes event.
     */
    select?: outputs.BrowserMonitorScriptEventsEventSelect;
    /**
     * Properties specified for a tap event
     */
    tap?: outputs.BrowserMonitorScriptEventsEventTap;
}
export interface BrowserMonitorScriptEventsEventClick {
    /**
     * the mouse button to be used for the click
     */
    button: number;
    /**
     * The tab on which the page should open
     */
    target?: outputs.BrowserMonitorScriptEventsEventClickTarget;
    /**
     * The validation rules for the event—helps you verify that your browser monitor loads the expected page content or page element
     */
    validate?: outputs.BrowserMonitorScriptEventsEventClickValidate;
    /**
     * The wait condition for the event—defines how long Dynatrace should wait before the next action is executed
     */
    wait?: outputs.BrowserMonitorScriptEventsEventClickWait;
}
export interface BrowserMonitorScriptEventsEventClickTarget {
    /**
     * The list of locators identifying the desired element
     */
    locators?: outputs.BrowserMonitorScriptEventsEventClickTargetLocator[];
    /**
     * The tab of the target
     */
    window?: string;
}
export interface BrowserMonitorScriptEventsEventClickTargetLocator {
    /**
     * A locator dentifyies the desired element
     */
    locators: outputs.BrowserMonitorScriptEventsEventClickTargetLocatorLocator[];
}
export interface BrowserMonitorScriptEventsEventClickTargetLocatorLocator {
    /**
     * Defines where to look for an element. `css` (CSS Selector) or `dom` (Javascript code)
     */
    type: string;
    /**
     * The name of the element to be found
     */
    value: string;
}
export interface BrowserMonitorScriptEventsEventClickValidate {
    /**
     * The element to wait for. Required for the `validation` type, not applicable otherwise.
     */
    validations: outputs.BrowserMonitorScriptEventsEventClickValidateValidation[];
}
export interface BrowserMonitorScriptEventsEventClickValidateValidation {
    /**
     * The condition of the validation. `false` means the validation succeeds if the specified content/element is found. `true` means the validation fails if the specified content/element is found
     */
    failIfFound?: boolean;
    /**
     * The content to look for on the page.
     * Regular expressions are allowed. In that case set `isRegex` as `true`. Required for `contentMatch`, optional for `elementMatch`.
     */
    match?: string;
    /**
     * Defines whether `match` is plain text (`false`) or a regular expression (`true`)
     */
    regex?: boolean;
    /**
     * The elemnt to look for on the page
     */
    target?: outputs.BrowserMonitorScriptEventsEventClickValidateValidationTarget;
    /**
     * The goal of the validation. `contentMatch` (check page for the specific content. Not allowed for validation inside of wait condition), `elementMatch` (check page for the specific element).
     */
    type: string;
}
export interface BrowserMonitorScriptEventsEventClickValidateValidationTarget {
    /**
     * The list of locators identifying the desired element
     */
    locators?: outputs.BrowserMonitorScriptEventsEventClickValidateValidationTargetLocator[];
    /**
     * The tab of the target
     */
    window?: string;
}
export interface BrowserMonitorScriptEventsEventClickValidateValidationTargetLocator {
    /**
     * A locator dentifyies the desired element
     */
    locators: outputs.BrowserMonitorScriptEventsEventClickValidateValidationTargetLocatorLocator[];
}
export interface BrowserMonitorScriptEventsEventClickValidateValidationTargetLocatorLocator {
    /**
     * Defines where to look for an element. `css` (CSS Selector) or `dom` (Javascript code)
     */
    type: string;
    /**
     * The name of the element to be found
     */
    value: string;
}
export interface BrowserMonitorScriptEventsEventClickWait {
    /**
     * The time to wait, in millisencods. The maximum allowed value is `60000`. Required for the type `time`, not applicable otherwise.
     */
    milliseconds?: number;
    /**
     * he maximum amount of time to wait for a certain element to appear, in milliseconds—if exceeded, the action is marked as failed.
     * The maximum allowed value is 60000. Required for the type `validation`, not applicable otherwise..
     */
    timeout?: number;
    /**
     * The elements to wait for. Required for the `validation` type, not applicable otherwise.
     */
    validation?: outputs.BrowserMonitorScriptEventsEventClickWaitValidation;
    /**
     * The time to wait before the next event is triggered. Possible values are `pageComplete` (wait for the page to load completely), `network` (wait for background network activity to complete), `nextAction` (wait for the next action), `time` (wait for a specified periodof time) and `validation` (wait for a specific element to appear)
     */
    waitFor: string;
}
export interface BrowserMonitorScriptEventsEventClickWaitValidation {
    /**
     * The condition of the validation. `false` means the validation succeeds if the specified content/element is found. `true` means the validation fails if the specified content/element is found
     */
    failIfFound?: boolean;
    /**
     * The content to look for on the page.
     * Regular expressions are allowed. In that case set `isRegex` as `true`. Required for `contentMatch`, optional for `elementMatch`.
     */
    match?: string;
    /**
     * Defines whether `match` is plain text (`false`) or a regular expression (`true`)
     */
    regex?: boolean;
    /**
     * The elemnt to look for on the page
     */
    target?: outputs.BrowserMonitorScriptEventsEventClickWaitValidationTarget;
    /**
     * The goal of the validation. `contentMatch` (check page for the specific content. Not allowed for validation inside of wait condition), `elementMatch` (check page for the specific element).
     */
    type: string;
}
export interface BrowserMonitorScriptEventsEventClickWaitValidationTarget {
    /**
     * The list of locators identifying the desired element
     */
    locators?: outputs.BrowserMonitorScriptEventsEventClickWaitValidationTargetLocator[];
    /**
     * The tab of the target
     */
    window?: string;
}
export interface BrowserMonitorScriptEventsEventClickWaitValidationTargetLocator {
    /**
     * A locator dentifyies the desired element
     */
    locators: outputs.BrowserMonitorScriptEventsEventClickWaitValidationTargetLocatorLocator[];
}
export interface BrowserMonitorScriptEventsEventClickWaitValidationTargetLocatorLocator {
    /**
     * Defines where to look for an element. `css` (CSS Selector) or `dom` (Javascript code)
     */
    type: string;
    /**
     * The name of the element to be found
     */
    value: string;
}
export interface BrowserMonitorScriptEventsEventCookie {
    /**
     * Every cookie must be unique within the list. However, you can use the same cookie again in other event
     */
    cookies: outputs.BrowserMonitorScriptEventsEventCookieCookies;
}
export interface BrowserMonitorScriptEventsEventCookieCookies {
    /**
     * A request cookie
     */
    cookies: outputs.BrowserMonitorScriptEventsEventCookieCookiesCookie[];
}
export interface BrowserMonitorScriptEventsEventCookieCookiesCookie {
    /**
     * The domain of the cookie.
     */
    domain: string;
    /**
     * The name of the cookie. The following cookie names are now allowed: `dtCookie`, `dtLatC`, `dtPC`, `rxVisitor`, `rxlatency`, `rxpc`, `rxsession` and `rxvt`
     */
    name: string;
    /**
     * The path of the cookie.
     */
    path?: string;
    /**
     * The value of the cookie. The following symbols are not allowed: `;`, `,`, `\` and `"`.
     */
    value: string;
}
export interface BrowserMonitorScriptEventsEventJavascript {
    /**
     * The JavaScript code to be executed in this event
     */
    code: string;
    /**
     * The tab on which the page should open
     */
    target?: outputs.BrowserMonitorScriptEventsEventJavascriptTarget;
    /**
     * The wait condition for the event—defines how long Dynatrace should wait before the next action is executed
     */
    wait?: outputs.BrowserMonitorScriptEventsEventJavascriptWait;
}
export interface BrowserMonitorScriptEventsEventJavascriptTarget {
    /**
     * The list of locators identifying the desired element
     */
    locators?: outputs.BrowserMonitorScriptEventsEventJavascriptTargetLocator[];
    /**
     * The tab of the target
     */
    window?: string;
}
export interface BrowserMonitorScriptEventsEventJavascriptTargetLocator {
    /**
     * A locator dentifyies the desired element
     */
    locators: outputs.BrowserMonitorScriptEventsEventJavascriptTargetLocatorLocator[];
}
export interface BrowserMonitorScriptEventsEventJavascriptTargetLocatorLocator {
    /**
     * Defines where to look for an element. `css` (CSS Selector) or `dom` (Javascript code)
     */
    type: string;
    /**
     * The name of the element to be found
     */
    value: string;
}
export interface BrowserMonitorScriptEventsEventJavascriptWait {
    /**
     * The time to wait, in millisencods. The maximum allowed value is `60000`. Required for the type `time`, not applicable otherwise.
     */
    milliseconds?: number;
    /**
     * he maximum amount of time to wait for a certain element to appear, in milliseconds—if exceeded, the action is marked as failed.
     * The maximum allowed value is 60000. Required for the type `validation`, not applicable otherwise..
     */
    timeout?: number;
    /**
     * The elements to wait for. Required for the `validation` type, not applicable otherwise.
     */
    validation?: outputs.BrowserMonitorScriptEventsEventJavascriptWaitValidation;
    /**
     * The time to wait before the next event is triggered. Possible values are `pageComplete` (wait for the page to load completely), `network` (wait for background network activity to complete), `nextAction` (wait for the next action), `time` (wait for a specified periodof time) and `validation` (wait for a specific element to appear)
     */
    waitFor: string;
}
export interface BrowserMonitorScriptEventsEventJavascriptWaitValidation {
    /**
     * The condition of the validation. `false` means the validation succeeds if the specified content/element is found. `true` means the validation fails if the specified content/element is found
     */
    failIfFound?: boolean;
    /**
     * The content to look for on the page.
     * Regular expressions are allowed. In that case set `isRegex` as `true`. Required for `contentMatch`, optional for `elementMatch`.
     */
    match?: string;
    /**
     * Defines whether `match` is plain text (`false`) or a regular expression (`true`)
     */
    regex?: boolean;
    /**
     * The elemnt to look for on the page
     */
    target?: outputs.BrowserMonitorScriptEventsEventJavascriptWaitValidationTarget;
    /**
     * The goal of the validation. `contentMatch` (check page for the specific content. Not allowed for validation inside of wait condition), `elementMatch` (check page for the specific element).
     */
    type: string;
}
export interface BrowserMonitorScriptEventsEventJavascriptWaitValidationTarget {
    /**
     * The list of locators identifying the desired element
     */
    locators?: outputs.BrowserMonitorScriptEventsEventJavascriptWaitValidationTargetLocator[];
    /**
     * The tab of the target
     */
    window?: string;
}
export interface BrowserMonitorScriptEventsEventJavascriptWaitValidationTargetLocator {
    /**
     * A locator dentifyies the desired element
     */
    locators: outputs.BrowserMonitorScriptEventsEventJavascriptWaitValidationTargetLocatorLocator[];
}
export interface BrowserMonitorScriptEventsEventJavascriptWaitValidationTargetLocatorLocator {
    /**
     * Defines where to look for an element. `css` (CSS Selector) or `dom` (Javascript code)
     */
    type: string;
    /**
     * The name of the element to be found
     */
    value: string;
}
export interface BrowserMonitorScriptEventsEventKeystrokes {
    /**
     * Credentials for this event
     */
    credential?: outputs.BrowserMonitorScriptEventsEventKeystrokesCredential;
    /**
     * Indicates whether the `textValue` is encrypted (`true`) or not (`false`). Must not be specified if `credentials` from the vault are being used
     */
    masked?: boolean;
    /**
     * Defines whether to blur the text field when it loses focus.
     * Set to `true` to trigger the blur the `textValue`
     */
    simulateBlurEvent?: boolean;
    /**
     * Simulates pressing the 'Return' key after simulating other keystrokes. For example, to submit a form or trigger a login.
     */
    simulateReturnKey?: boolean;
    /**
     * The tab on which the page should open
     */
    target?: outputs.BrowserMonitorScriptEventsEventKeystrokesTarget;
    /**
     * The text to enter. Must not be specified if `credentials` from the vault are being used
     */
    text?: string;
    /**
     * The validation rules for the event—helps you verify that your browser monitor loads the expected page content or page element
     */
    validate?: outputs.BrowserMonitorScriptEventsEventKeystrokesValidate;
    /**
     * The wait condition for the event—defines how long Dynatrace should wait before the next action is executed
     */
    wait?: outputs.BrowserMonitorScriptEventsEventKeystrokesWait;
}
export interface BrowserMonitorScriptEventsEventKeystrokesCredential {
    /**
     * Either `username` or `password`
     */
    field: string;
    /**
     * The ID of the credential within the Credentials Vault
     */
    vaultId: string;
}
export interface BrowserMonitorScriptEventsEventKeystrokesTarget {
    /**
     * The list of locators identifying the desired element
     */
    locators?: outputs.BrowserMonitorScriptEventsEventKeystrokesTargetLocator[];
    /**
     * The tab of the target
     */
    window?: string;
}
export interface BrowserMonitorScriptEventsEventKeystrokesTargetLocator {
    /**
     * A locator dentifyies the desired element
     */
    locators: outputs.BrowserMonitorScriptEventsEventKeystrokesTargetLocatorLocator[];
}
export interface BrowserMonitorScriptEventsEventKeystrokesTargetLocatorLocator {
    /**
     * Defines where to look for an element. `css` (CSS Selector) or `dom` (Javascript code)
     */
    type: string;
    /**
     * The name of the element to be found
     */
    value: string;
}
export interface BrowserMonitorScriptEventsEventKeystrokesValidate {
    /**
     * The element to wait for. Required for the `validation` type, not applicable otherwise.
     */
    validations: outputs.BrowserMonitorScriptEventsEventKeystrokesValidateValidation[];
}
export interface BrowserMonitorScriptEventsEventKeystrokesValidateValidation {
    /**
     * The condition of the validation. `false` means the validation succeeds if the specified content/element is found. `true` means the validation fails if the specified content/element is found
     */
    failIfFound?: boolean;
    /**
     * The content to look for on the page.
     * Regular expressions are allowed. In that case set `isRegex` as `true`. Required for `contentMatch`, optional for `elementMatch`.
     */
    match?: string;
    /**
     * Defines whether `match` is plain text (`false`) or a regular expression (`true`)
     */
    regex?: boolean;
    /**
     * The elemnt to look for on the page
     */
    target?: outputs.BrowserMonitorScriptEventsEventKeystrokesValidateValidationTarget;
    /**
     * The goal of the validation. `contentMatch` (check page for the specific content. Not allowed for validation inside of wait condition), `elementMatch` (check page for the specific element).
     */
    type: string;
}
export interface BrowserMonitorScriptEventsEventKeystrokesValidateValidationTarget {
    /**
     * The list of locators identifying the desired element
     */
    locators?: outputs.BrowserMonitorScriptEventsEventKeystrokesValidateValidationTargetLocator[];
    /**
     * The tab of the target
     */
    window?: string;
}
export interface BrowserMonitorScriptEventsEventKeystrokesValidateValidationTargetLocator {
    /**
     * A locator dentifyies the desired element
     */
    locators: outputs.BrowserMonitorScriptEventsEventKeystrokesValidateValidationTargetLocatorLocator[];
}
export interface BrowserMonitorScriptEventsEventKeystrokesValidateValidationTargetLocatorLocator {
    /**
     * Defines where to look for an element. `css` (CSS Selector) or `dom` (Javascript code)
     */
    type: string;
    /**
     * The name of the element to be found
     */
    value: string;
}
export interface BrowserMonitorScriptEventsEventKeystrokesWait {
    /**
     * The time to wait, in millisencods. The maximum allowed value is `60000`. Required for the type `time`, not applicable otherwise.
     */
    milliseconds?: number;
    /**
     * he maximum amount of time to wait for a certain element to appear, in milliseconds—if exceeded, the action is marked as failed.
     * The maximum allowed value is 60000. Required for the type `validation`, not applicable otherwise..
     */
    timeout?: number;
    /**
     * The elements to wait for. Required for the `validation` type, not applicable otherwise.
     */
    validation?: outputs.BrowserMonitorScriptEventsEventKeystrokesWaitValidation;
    /**
     * The time to wait before the next event is triggered. Possible values are `pageComplete` (wait for the page to load completely), `network` (wait for background network activity to complete), `nextAction` (wait for the next action), `time` (wait for a specified periodof time) and `validation` (wait for a specific element to appear)
     */
    waitFor: string;
}
export interface BrowserMonitorScriptEventsEventKeystrokesWaitValidation {
    /**
     * The condition of the validation. `false` means the validation succeeds if the specified content/element is found. `true` means the validation fails if the specified content/element is found
     */
    failIfFound?: boolean;
    /**
     * The content to look for on the page.
     * Regular expressions are allowed. In that case set `isRegex` as `true`. Required for `contentMatch`, optional for `elementMatch`.
     */
    match?: string;
    /**
     * Defines whether `match` is plain text (`false`) or a regular expression (`true`)
     */
    regex?: boolean;
    /**
     * The elemnt to look for on the page
     */
    target?: outputs.BrowserMonitorScriptEventsEventKeystrokesWaitValidationTarget;
    /**
     * The goal of the validation. `contentMatch` (check page for the specific content. Not allowed for validation inside of wait condition), `elementMatch` (check page for the specific element).
     */
    type: string;
}
export interface BrowserMonitorScriptEventsEventKeystrokesWaitValidationTarget {
    /**
     * The list of locators identifying the desired element
     */
    locators?: outputs.BrowserMonitorScriptEventsEventKeystrokesWaitValidationTargetLocator[];
    /**
     * The tab of the target
     */
    window?: string;
}
export interface BrowserMonitorScriptEventsEventKeystrokesWaitValidationTargetLocator {
    /**
     * A locator dentifyies the desired element
     */
    locators: outputs.BrowserMonitorScriptEventsEventKeystrokesWaitValidationTargetLocatorLocator[];
}
export interface BrowserMonitorScriptEventsEventKeystrokesWaitValidationTargetLocatorLocator {
    /**
     * Defines where to look for an element. `css` (CSS Selector) or `dom` (Javascript code)
     */
    type: string;
    /**
     * The name of the element to be found
     */
    value: string;
}
export interface BrowserMonitorScriptEventsEventNavigate {
    /**
     * The login credentials to bypass the browser login mask
     */
    authentication?: outputs.BrowserMonitorScriptEventsEventNavigateAuthentication;
    /**
     * The tab on which the page should open
     */
    target?: outputs.BrowserMonitorScriptEventsEventNavigateTarget;
    /**
     * The URL to navigate to
     */
    url: string;
    /**
     * The validation rules for the event—helps you verify that your browser monitor loads the expected page content or page element
     */
    validate?: outputs.BrowserMonitorScriptEventsEventNavigateValidate;
    /**
     * The wait condition for the event—defines how long Dynatrace should wait before the next action is executed
     */
    wait?: outputs.BrowserMonitorScriptEventsEventNavigateWait;
}
export interface BrowserMonitorScriptEventsEventNavigateAuthentication {
    /**
     * A reference to the entry within the credential vault
     */
    creds: string;
    /**
     * The type of authentication
     */
    type: string;
}
export interface BrowserMonitorScriptEventsEventNavigateTarget {
    /**
     * The list of locators identifying the desired element
     */
    locators?: outputs.BrowserMonitorScriptEventsEventNavigateTargetLocator[];
    /**
     * The tab of the target
     */
    window?: string;
}
export interface BrowserMonitorScriptEventsEventNavigateTargetLocator {
    /**
     * A locator dentifyies the desired element
     */
    locators: outputs.BrowserMonitorScriptEventsEventNavigateTargetLocatorLocator[];
}
export interface BrowserMonitorScriptEventsEventNavigateTargetLocatorLocator {
    /**
     * Defines where to look for an element. `css` (CSS Selector) or `dom` (Javascript code)
     */
    type: string;
    /**
     * The name of the element to be found
     */
    value: string;
}
export interface BrowserMonitorScriptEventsEventNavigateValidate {
    /**
     * The element to wait for. Required for the `validation` type, not applicable otherwise.
     */
    validations: outputs.BrowserMonitorScriptEventsEventNavigateValidateValidation[];
}
export interface BrowserMonitorScriptEventsEventNavigateValidateValidation {
    /**
     * The condition of the validation. `false` means the validation succeeds if the specified content/element is found. `true` means the validation fails if the specified content/element is found
     */
    failIfFound?: boolean;
    /**
     * The content to look for on the page.
     * Regular expressions are allowed. In that case set `isRegex` as `true`. Required for `contentMatch`, optional for `elementMatch`.
     */
    match?: string;
    /**
     * Defines whether `match` is plain text (`false`) or a regular expression (`true`)
     */
    regex?: boolean;
    /**
     * The elemnt to look for on the page
     */
    target?: outputs.BrowserMonitorScriptEventsEventNavigateValidateValidationTarget;
    /**
     * The goal of the validation. `contentMatch` (check page for the specific content. Not allowed for validation inside of wait condition), `elementMatch` (check page for the specific element).
     */
    type: string;
}
export interface BrowserMonitorScriptEventsEventNavigateValidateValidationTarget {
    /**
     * The list of locators identifying the desired element
     */
    locators?: outputs.BrowserMonitorScriptEventsEventNavigateValidateValidationTargetLocator[];
    /**
     * The tab of the target
     */
    window?: string;
}
export interface BrowserMonitorScriptEventsEventNavigateValidateValidationTargetLocator {
    /**
     * A locator dentifyies the desired element
     */
    locators: outputs.BrowserMonitorScriptEventsEventNavigateValidateValidationTargetLocatorLocator[];
}
export interface BrowserMonitorScriptEventsEventNavigateValidateValidationTargetLocatorLocator {
    /**
     * Defines where to look for an element. `css` (CSS Selector) or `dom` (Javascript code)
     */
    type: string;
    /**
     * The name of the element to be found
     */
    value: string;
}
export interface BrowserMonitorScriptEventsEventNavigateWait {
    /**
     * The time to wait, in millisencods. The maximum allowed value is `60000`. Required for the type `time`, not applicable otherwise.
     */
    milliseconds?: number;
    /**
     * he maximum amount of time to wait for a certain element to appear, in milliseconds—if exceeded, the action is marked as failed.
     * The maximum allowed value is 60000. Required for the type `validation`, not applicable otherwise..
     */
    timeout?: number;
    /**
     * The elements to wait for. Required for the `validation` type, not applicable otherwise.
     */
    validation?: outputs.BrowserMonitorScriptEventsEventNavigateWaitValidation;
    /**
     * The time to wait before the next event is triggered. Possible values are `pageComplete` (wait for the page to load completely), `network` (wait for background network activity to complete), `nextAction` (wait for the next action), `time` (wait for a specified periodof time) and `validation` (wait for a specific element to appear)
     */
    waitFor: string;
}
export interface BrowserMonitorScriptEventsEventNavigateWaitValidation {
    /**
     * The condition of the validation. `false` means the validation succeeds if the specified content/element is found. `true` means the validation fails if the specified content/element is found
     */
    failIfFound?: boolean;
    /**
     * The content to look for on the page.
     * Regular expressions are allowed. In that case set `isRegex` as `true`. Required for `contentMatch`, optional for `elementMatch`.
     */
    match?: string;
    /**
     * Defines whether `match` is plain text (`false`) or a regular expression (`true`)
     */
    regex?: boolean;
    /**
     * The elemnt to look for on the page
     */
    target?: outputs.BrowserMonitorScriptEventsEventNavigateWaitValidationTarget;
    /**
     * The goal of the validation. `contentMatch` (check page for the specific content. Not allowed for validation inside of wait condition), `elementMatch` (check page for the specific element).
     */
    type: string;
}
export interface BrowserMonitorScriptEventsEventNavigateWaitValidationTarget {
    /**
     * The list of locators identifying the desired element
     */
    locators?: outputs.BrowserMonitorScriptEventsEventNavigateWaitValidationTargetLocator[];
    /**
     * The tab of the target
     */
    window?: string;
}
export interface BrowserMonitorScriptEventsEventNavigateWaitValidationTargetLocator {
    /**
     * A locator dentifyies the desired element
     */
    locators: outputs.BrowserMonitorScriptEventsEventNavigateWaitValidationTargetLocatorLocator[];
}
export interface BrowserMonitorScriptEventsEventNavigateWaitValidationTargetLocatorLocator {
    /**
     * Defines where to look for an element. `css` (CSS Selector) or `dom` (Javascript code)
     */
    type: string;
    /**
     * The name of the element to be found
     */
    value: string;
}
export interface BrowserMonitorScriptEventsEventSelect {
    /**
     * The options to be selected
     */
    selections: outputs.BrowserMonitorScriptEventsEventSelectSelections;
    /**
     * The tab on which the page should open
     */
    target?: outputs.BrowserMonitorScriptEventsEventSelectTarget;
    /**
     * The validation rules for the event—helps you verify that your browser monitor loads the expected page content or page element
     */
    validate?: outputs.BrowserMonitorScriptEventsEventSelectValidate;
    /**
     * The wait condition for the event—defines how long Dynatrace should wait before the next action is executed
     */
    wait?: outputs.BrowserMonitorScriptEventsEventSelectWait;
}
export interface BrowserMonitorScriptEventsEventSelectSelections {
    /**
     * The option to be selected
     */
    options: outputs.BrowserMonitorScriptEventsEventSelectSelectionsOption[];
}
export interface BrowserMonitorScriptEventsEventSelectSelectionsOption {
    /**
     * The index of the option to be selected
     */
    index: number;
    /**
     * The value of the option to be selected
     */
    value: string;
}
export interface BrowserMonitorScriptEventsEventSelectTarget {
    /**
     * The list of locators identifying the desired element
     */
    locators?: outputs.BrowserMonitorScriptEventsEventSelectTargetLocator[];
    /**
     * The tab of the target
     */
    window?: string;
}
export interface BrowserMonitorScriptEventsEventSelectTargetLocator {
    /**
     * A locator dentifyies the desired element
     */
    locators: outputs.BrowserMonitorScriptEventsEventSelectTargetLocatorLocator[];
}
export interface BrowserMonitorScriptEventsEventSelectTargetLocatorLocator {
    /**
     * Defines where to look for an element. `css` (CSS Selector) or `dom` (Javascript code)
     */
    type: string;
    /**
     * The name of the element to be found
     */
    value: string;
}
export interface BrowserMonitorScriptEventsEventSelectValidate {
    /**
     * The element to wait for. Required for the `validation` type, not applicable otherwise.
     */
    validations: outputs.BrowserMonitorScriptEventsEventSelectValidateValidation[];
}
export interface BrowserMonitorScriptEventsEventSelectValidateValidation {
    /**
     * The condition of the validation. `false` means the validation succeeds if the specified content/element is found. `true` means the validation fails if the specified content/element is found
     */
    failIfFound?: boolean;
    /**
     * The content to look for on the page.
     * Regular expressions are allowed. In that case set `isRegex` as `true`. Required for `contentMatch`, optional for `elementMatch`.
     */
    match?: string;
    /**
     * Defines whether `match` is plain text (`false`) or a regular expression (`true`)
     */
    regex?: boolean;
    /**
     * The elemnt to look for on the page
     */
    target?: outputs.BrowserMonitorScriptEventsEventSelectValidateValidationTarget;
    /**
     * The goal of the validation. `contentMatch` (check page for the specific content. Not allowed for validation inside of wait condition), `elementMatch` (check page for the specific element).
     */
    type: string;
}
export interface BrowserMonitorScriptEventsEventSelectValidateValidationTarget {
    /**
     * The list of locators identifying the desired element
     */
    locators?: outputs.BrowserMonitorScriptEventsEventSelectValidateValidationTargetLocator[];
    /**
     * The tab of the target
     */
    window?: string;
}
export interface BrowserMonitorScriptEventsEventSelectValidateValidationTargetLocator {
    /**
     * A locator dentifyies the desired element
     */
    locators: outputs.BrowserMonitorScriptEventsEventSelectValidateValidationTargetLocatorLocator[];
}
export interface BrowserMonitorScriptEventsEventSelectValidateValidationTargetLocatorLocator {
    /**
     * Defines where to look for an element. `css` (CSS Selector) or `dom` (Javascript code)
     */
    type: string;
    /**
     * The name of the element to be found
     */
    value: string;
}
export interface BrowserMonitorScriptEventsEventSelectWait {
    /**
     * The time to wait, in millisencods. The maximum allowed value is `60000`. Required for the type `time`, not applicable otherwise.
     */
    milliseconds?: number;
    /**
     * he maximum amount of time to wait for a certain element to appear, in milliseconds—if exceeded, the action is marked as failed.
     * The maximum allowed value is 60000. Required for the type `validation`, not applicable otherwise..
     */
    timeout?: number;
    /**
     * The elements to wait for. Required for the `validation` type, not applicable otherwise.
     */
    validation?: outputs.BrowserMonitorScriptEventsEventSelectWaitValidation;
    /**
     * The time to wait before the next event is triggered. Possible values are `pageComplete` (wait for the page to load completely), `network` (wait for background network activity to complete), `nextAction` (wait for the next action), `time` (wait for a specified periodof time) and `validation` (wait for a specific element to appear)
     */
    waitFor: string;
}
export interface BrowserMonitorScriptEventsEventSelectWaitValidation {
    /**
     * The condition of the validation. `false` means the validation succeeds if the specified content/element is found. `true` means the validation fails if the specified content/element is found
     */
    failIfFound?: boolean;
    /**
     * The content to look for on the page.
     * Regular expressions are allowed. In that case set `isRegex` as `true`. Required for `contentMatch`, optional for `elementMatch`.
     */
    match?: string;
    /**
     * Defines whether `match` is plain text (`false`) or a regular expression (`true`)
     */
    regex?: boolean;
    /**
     * The elemnt to look for on the page
     */
    target?: outputs.BrowserMonitorScriptEventsEventSelectWaitValidationTarget;
    /**
     * The goal of the validation. `contentMatch` (check page for the specific content. Not allowed for validation inside of wait condition), `elementMatch` (check page for the specific element).
     */
    type: string;
}
export interface BrowserMonitorScriptEventsEventSelectWaitValidationTarget {
    /**
     * The list of locators identifying the desired element
     */
    locators?: outputs.BrowserMonitorScriptEventsEventSelectWaitValidationTargetLocator[];
    /**
     * The tab of the target
     */
    window?: string;
}
export interface BrowserMonitorScriptEventsEventSelectWaitValidationTargetLocator {
    /**
     * A locator dentifyies the desired element
     */
    locators: outputs.BrowserMonitorScriptEventsEventSelectWaitValidationTargetLocatorLocator[];
}
export interface BrowserMonitorScriptEventsEventSelectWaitValidationTargetLocatorLocator {
    /**
     * Defines where to look for an element. `css` (CSS Selector) or `dom` (Javascript code)
     */
    type: string;
    /**
     * The name of the element to be found
     */
    value: string;
}
export interface BrowserMonitorScriptEventsEventTap {
    /**
     * the mouse button to be used for the click
     */
    button: number;
    /**
     * The tab on which the page should open
     */
    target?: outputs.BrowserMonitorScriptEventsEventTapTarget;
    /**
     * The validation rules for the event—helps you verify that your browser monitor loads the expected page content or page element
     */
    validate?: outputs.BrowserMonitorScriptEventsEventTapValidate;
    /**
     * The wait condition for the event—defines how long Dynatrace should wait before the next action is executed
     */
    wait?: outputs.BrowserMonitorScriptEventsEventTapWait;
}
export interface BrowserMonitorScriptEventsEventTapTarget {
    /**
     * The list of locators identifying the desired element
     */
    locators?: outputs.BrowserMonitorScriptEventsEventTapTargetLocator[];
    /**
     * The tab of the target
     */
    window?: string;
}
export interface BrowserMonitorScriptEventsEventTapTargetLocator {
    /**
     * A locator dentifyies the desired element
     */
    locators: outputs.BrowserMonitorScriptEventsEventTapTargetLocatorLocator[];
}
export interface BrowserMonitorScriptEventsEventTapTargetLocatorLocator {
    /**
     * Defines where to look for an element. `css` (CSS Selector) or `dom` (Javascript code)
     */
    type: string;
    /**
     * The name of the element to be found
     */
    value: string;
}
export interface BrowserMonitorScriptEventsEventTapValidate {
    /**
     * The element to wait for. Required for the `validation` type, not applicable otherwise.
     */
    validations: outputs.BrowserMonitorScriptEventsEventTapValidateValidation[];
}
export interface BrowserMonitorScriptEventsEventTapValidateValidation {
    /**
     * The condition of the validation. `false` means the validation succeeds if the specified content/element is found. `true` means the validation fails if the specified content/element is found
     */
    failIfFound?: boolean;
    /**
     * The content to look for on the page.
     * Regular expressions are allowed. In that case set `isRegex` as `true`. Required for `contentMatch`, optional for `elementMatch`.
     */
    match?: string;
    /**
     * Defines whether `match` is plain text (`false`) or a regular expression (`true`)
     */
    regex?: boolean;
    /**
     * The elemnt to look for on the page
     */
    target?: outputs.BrowserMonitorScriptEventsEventTapValidateValidationTarget;
    /**
     * The goal of the validation. `contentMatch` (check page for the specific content. Not allowed for validation inside of wait condition), `elementMatch` (check page for the specific element).
     */
    type: string;
}
export interface BrowserMonitorScriptEventsEventTapValidateValidationTarget {
    /**
     * The list of locators identifying the desired element
     */
    locators?: outputs.BrowserMonitorScriptEventsEventTapValidateValidationTargetLocator[];
    /**
     * The tab of the target
     */
    window?: string;
}
export interface BrowserMonitorScriptEventsEventTapValidateValidationTargetLocator {
    /**
     * A locator dentifyies the desired element
     */
    locators: outputs.BrowserMonitorScriptEventsEventTapValidateValidationTargetLocatorLocator[];
}
export interface BrowserMonitorScriptEventsEventTapValidateValidationTargetLocatorLocator {
    /**
     * Defines where to look for an element. `css` (CSS Selector) or `dom` (Javascript code)
     */
    type: string;
    /**
     * The name of the element to be found
     */
    value: string;
}
export interface BrowserMonitorScriptEventsEventTapWait {
    /**
     * The time to wait, in millisencods. The maximum allowed value is `60000`. Required for the type `time`, not applicable otherwise.
     */
    milliseconds?: number;
    /**
     * he maximum amount of time to wait for a certain element to appear, in milliseconds—if exceeded, the action is marked as failed.
     * The maximum allowed value is 60000. Required for the type `validation`, not applicable otherwise..
     */
    timeout?: number;
    /**
     * The elements to wait for. Required for the `validation` type, not applicable otherwise.
     */
    validation?: outputs.BrowserMonitorScriptEventsEventTapWaitValidation;
    /**
     * The time to wait before the next event is triggered. Possible values are `pageComplete` (wait for the page to load completely), `network` (wait for background network activity to complete), `nextAction` (wait for the next action), `time` (wait for a specified periodof time) and `validation` (wait for a specific element to appear)
     */
    waitFor: string;
}
export interface BrowserMonitorScriptEventsEventTapWaitValidation {
    /**
     * The condition of the validation. `false` means the validation succeeds if the specified content/element is found. `true` means the validation fails if the specified content/element is found
     */
    failIfFound?: boolean;
    /**
     * The content to look for on the page.
     * Regular expressions are allowed. In that case set `isRegex` as `true`. Required for `contentMatch`, optional for `elementMatch`.
     */
    match?: string;
    /**
     * Defines whether `match` is plain text (`false`) or a regular expression (`true`)
     */
    regex?: boolean;
    /**
     * The elemnt to look for on the page
     */
    target?: outputs.BrowserMonitorScriptEventsEventTapWaitValidationTarget;
    /**
     * The goal of the validation. `contentMatch` (check page for the specific content. Not allowed for validation inside of wait condition), `elementMatch` (check page for the specific element).
     */
    type: string;
}
export interface BrowserMonitorScriptEventsEventTapWaitValidationTarget {
    /**
     * The list of locators identifying the desired element
     */
    locators?: outputs.BrowserMonitorScriptEventsEventTapWaitValidationTargetLocator[];
    /**
     * The tab of the target
     */
    window?: string;
}
export interface BrowserMonitorScriptEventsEventTapWaitValidationTargetLocator {
    /**
     * A locator dentifyies the desired element
     */
    locators: outputs.BrowserMonitorScriptEventsEventTapWaitValidationTargetLocatorLocator[];
}
export interface BrowserMonitorScriptEventsEventTapWaitValidationTargetLocatorLocator {
    /**
     * Defines where to look for an element. `css` (CSS Selector) or `dom` (Javascript code)
     */
    type: string;
    /**
     * The name of the element to be found
     */
    value: string;
}
export interface BrowserMonitorTag {
    /**
     * Tag with source of a Dynatrace entity.
     */
    tags?: outputs.BrowserMonitorTagTag[];
}
export interface BrowserMonitorTagTag {
    /**
     * The origin of the tag. Supported values are `AWS`, `AWS_GENERIC`, `AZURE`, `CLOUD_FOUNDRY`, `CONTEXTLESS`, `ENVIRONMENT`, `GOOGLE_CLOUD` and `KUBERNETES`.
     */
    context: string;
    /**
     * The key of the tag.
     *
     * Custom tags have the tag value here.
     */
    key: string;
    /**
     * The source of the tag. Supported values are `USER`, `RULE_BASED` and `AUTO`.
     */
    source?: string;
    /**
     * The value of the tag.
     *
     * Not applicable to custom tags.
     */
    value?: string;
}
export interface BusinessEventsOneagentEvent {
    /**
     * Event category
     */
    category: outputs.BusinessEventsOneagentEventCategory;
    /**
     * Additional attributes for the business event.
     */
    data?: outputs.BusinessEventsOneagentEventData;
    /**
     * Event provider
     */
    provider: outputs.BusinessEventsOneagentEventProvider;
    /**
     * Event type
     */
    type: outputs.BusinessEventsOneagentEventType;
}
export interface BusinessEventsOneagentEventCategory {
    /**
     * [See our documentation](https://dt-url.net/ei034bx)
     */
    path?: string;
    /**
     * Fixed value
     */
    source?: string;
    /**
     * Possible Values: `Constant_string`, `Request_body`, `Request_headers`, `Request_method`, `Request_parameters`, `Request_path`, `Request_url`, `Response_body`, `Response_headers`, `Response_statusCode`
     */
    sourceType: string;
}
export interface BusinessEventsOneagentEventData {
    eventDataFieldComplexes: outputs.BusinessEventsOneagentEventDataEventDataFieldComplex[];
}
export interface BusinessEventsOneagentEventDataEventDataFieldComplex {
    /**
     * Field name to be added to data.
     */
    name: string;
    /**
     * no documentation available
     */
    source: outputs.BusinessEventsOneagentEventDataEventDataFieldComplexSource;
}
export interface BusinessEventsOneagentEventDataEventDataFieldComplexSource {
    /**
     * [See our documentation](https://dt-url.net/ei034bx)
     */
    path?: string;
    /**
     * Fixed value
     */
    source?: string;
    /**
     * Possible Values: `Constant_string`, `Request_body`, `Request_headers`, `Request_method`, `Request_parameters`, `Request_path`, `Request_url`, `Response_body`, `Response_headers`, `Response_statusCode`
     */
    sourceType: string;
}
export interface BusinessEventsOneagentEventProvider {
    /**
     * [See our documentation](https://dt-url.net/ei034bx)
     */
    path?: string;
    /**
     * Fixed value
     */
    source?: string;
    /**
     * Possible Values: `Constant_string`, `Request_body`, `Request_headers`, `Request_method`, `Request_parameters`, `Request_path`, `Request_url`, `Response_body`, `Response_headers`, `Response_statusCode`
     */
    sourceType: string;
}
export interface BusinessEventsOneagentEventType {
    /**
     * [See our documentation](https://dt-url.net/ei034bx)
     */
    path?: string;
    /**
     * Fixed value
     */
    source?: string;
    /**
     * Possible Values: `Constant_string`, `Request_body`, `Request_headers`, `Request_method`, `Request_parameters`, `Request_path`, `Request_url`, `Response_body`, `Response_headers`, `Response_statusCode`
     */
    sourceType: string;
}
export interface BusinessEventsOneagentOutgoingEvent {
    /**
     * Event category
     */
    category: outputs.BusinessEventsOneagentOutgoingEventCategory;
    /**
     * Additional attributes for the business event.
     */
    data?: outputs.BusinessEventsOneagentOutgoingEventData;
    /**
     * Event provider
     */
    provider: outputs.BusinessEventsOneagentOutgoingEventProvider;
    /**
     * Event type
     */
    type: outputs.BusinessEventsOneagentOutgoingEventType;
}
export interface BusinessEventsOneagentOutgoingEventCategory {
    /**
     * [See our documentation](https://dt-url.net/ei034bx)
     */
    path?: string;
    /**
     * Fixed value
     */
    source?: string;
    /**
     * Possible Values: `Constant_string`, `Request_body`, `Request_headers`, `Request_method`, `Request_parameters`, `Request_path`, `Request_url`, `Response_body`, `Response_headers`, `Response_statusCode`
     */
    sourceType: string;
}
export interface BusinessEventsOneagentOutgoingEventData {
    eventDataFieldComplexes: outputs.BusinessEventsOneagentOutgoingEventDataEventDataFieldComplex[];
}
export interface BusinessEventsOneagentOutgoingEventDataEventDataFieldComplex {
    /**
     * Field name to be added to data.
     */
    name: string;
    /**
     * no documentation available
     */
    source: outputs.BusinessEventsOneagentOutgoingEventDataEventDataFieldComplexSource;
}
export interface BusinessEventsOneagentOutgoingEventDataEventDataFieldComplexSource {
    /**
     * [See our documentation](https://dt-url.net/ei034bx)
     */
    path?: string;
    /**
     * Fixed value
     */
    source?: string;
    /**
     * Possible Values: `Constant_string`, `Request_body`, `Request_headers`, `Request_method`, `Request_parameters`, `Request_path`, `Request_url`, `Response_body`, `Response_headers`, `Response_statusCode`
     */
    sourceType: string;
}
export interface BusinessEventsOneagentOutgoingEventProvider {
    /**
     * [See our documentation](https://dt-url.net/ei034bx)
     */
    path?: string;
    /**
     * Fixed value
     */
    source?: string;
    /**
     * Possible Values: `Constant_string`, `Request_body`, `Request_headers`, `Request_method`, `Request_parameters`, `Request_path`, `Request_url`, `Response_body`, `Response_headers`, `Response_statusCode`
     */
    sourceType: string;
}
export interface BusinessEventsOneagentOutgoingEventType {
    /**
     * [See our documentation](https://dt-url.net/ei034bx)
     */
    path?: string;
    /**
     * Fixed value
     */
    source?: string;
    /**
     * Possible Values: `Constant_string`, `Request_body`, `Request_headers`, `Request_method`, `Request_parameters`, `Request_path`, `Request_url`, `Response_body`, `Response_headers`, `Response_statusCode`
     */
    sourceType: string;
}
export interface BusinessEventsOneagentOutgoingTriggers {
    triggers: outputs.BusinessEventsOneagentOutgoingTriggersTrigger[];
}
export interface BusinessEventsOneagentOutgoingTriggersTrigger {
    /**
     * Case sensitive
     */
    caseSensitive?: boolean;
    /**
     * no documentation available
     */
    source: outputs.BusinessEventsOneagentOutgoingTriggersTriggerSource;
    /**
     * Possible Values: `CONTAINS`, `ENDS_WITH`, `EQUALS`, `EXISTS`, `N_CONTAINS`, `N_ENDS_WITH`, `N_EQUALS`, `N_EXISTS`, `N_STARTS_WITH`, `STARTS_WITH`
     */
    type: string;
    /**
     * no documentation available
     */
    value?: string;
}
export interface BusinessEventsOneagentOutgoingTriggersTriggerSource {
    /**
     * Possible Values: `Request_body`, `Request_headers`, `Request_method`, `Request_parameters`, `Request_path`, `Request_url`, `Response_body`, `Response_headers`, `Response_statusCode`
     */
    dataSource: string;
    /**
     * [See our documentation](https://dt-url.net/ei034bx)
     */
    path?: string;
}
export interface BusinessEventsOneagentTriggers {
    triggers: outputs.BusinessEventsOneagentTriggersTrigger[];
}
export interface BusinessEventsOneagentTriggersTrigger {
    /**
     * Case sensitive
     */
    caseSensitive?: boolean;
    /**
     * no documentation available
     */
    source: outputs.BusinessEventsOneagentTriggersTriggerSource;
    /**
     * Possible Values: `CONTAINS`, `ENDS_WITH`, `EQUALS`, `EXISTS`, `N_CONTAINS`, `N_ENDS_WITH`, `N_EQUALS`, `N_EXISTS`, `N_STARTS_WITH`, `STARTS_WITH`
     */
    type: string;
    /**
     * no documentation available
     */
    value?: string;
}
export interface BusinessEventsOneagentTriggersTriggerSource {
    /**
     * Possible Values: `Request_body`, `Request_headers`, `Request_method`, `Request_parameters`, `Request_path`, `Request_url`, `Response_body`, `Response_headers`, `Response_statusCode`
     */
    dataSource: string;
    /**
     * [See our documentation](https://dt-url.net/ei034bx)
     */
    path?: string;
}
export interface BusinessEventsProcessingRuleTesting {
    /**
     * Sample event to use for the test run. Only JSON format is supported.
     */
    sampleEvent: string;
}
export interface BusinessEventsProcessingTransformationFields {
    transformationFields: outputs.BusinessEventsProcessingTransformationFieldsTransformationField[];
}
export interface BusinessEventsProcessingTransformationFieldsTransformationField {
    /**
     * Is Array
     */
    array: boolean;
    /**
     * no documentation available
     */
    name: string;
    /**
     * no documentation available
     */
    optional: boolean;
    /**
     * Read-only
     */
    readonly: boolean;
    /**
     * Possible Values: `BOOLEAN`, `DOUBLE`, `DURATION`, `INT`, `IPADDR`, `LONG`, `STRING`, `TIMESTAMP`
     */
    type: string;
}
export interface BusinessEventsSecurityContextSecurityContextRule {
    /**
     * Matcher
     */
    query: string;
    /**
     * Rule name
     */
    ruleName: string;
    /**
     * Literal value to be set
     */
    value?: string;
    /**
     * Possible Values: `FIELD`, `LITERAL`
     */
    valueSource: string;
    /**
     * Name of field used to copy value
     */
    valueSourceField?: string;
}
export interface CalculatedMobileMetricDimension {
    /**
     * A dimensions for the metric usage
     */
    dimensions?: outputs.CalculatedMobileMetricDimensionDimension[];
}
export interface CalculatedMobileMetricDimensionDimension {
    /**
     * The dimension of the metric. Possible values are `ApdexType`, `Browser`, `ErrorContext`, `ErrorOrigin`, `ErrorType`, `GeoLocation`, `StringProperty`, `UserActionType`
     */
    dimension: string;
    /**
     * The number of top values to be calculated
     */
    topX: number;
}
export interface CalculatedMobileMetricUserActionFilter {
    /**
     * Only actions with a duration more than or equal to this value (in milliseconds) are included in the metric calculation.
     */
    actionDurationFromMilliseconds?: number;
    /**
     * Only actions with a duration less than or equal to this value (in milliseconds) are included in the metric calculation.
     */
    actionDurationToMilliseconds?: number;
    /**
     * Only actions with the specified Apdex score are included in the metric calculation. Possible values: [ Frustrated, Satisfied, Tolerating, Unknown ]
     */
    apdex?: string;
    /**
     * Only actions coming from this app version are included in the metric calculation.
     */
    appVersion?: string;
    /**
     * Only actions coming from this carrier type are included in the metric calculation.
     */
    carrier?: string;
    /**
     * Only actions of users from this city are included in the metric calculation. Specify geolocation ID here.
     */
    city?: string;
    /**
     * Only actions coming from this connection type are included in the metric calculation. Possible values: [ LAN, MOBILE, OFFLINE, UNKNOWN, WIFI ]
     */
    connectionType?: string;
    /**
     * Only actions of users from this continent are included in the metric calculation. Specify geolocation ID here.
     */
    continent?: string;
    /**
     * Only actions of users from this country are included in the metric calculation. Specify geolocation ID here.
     */
    country?: string;
    /**
     * Only actions coming from this app version are included in the metric calculation.
     */
    device?: string;
    /**
     * The request error status of the actions to be included in the metric calculation: `true` or `false`
     */
    hasHttpError?: boolean;
    /**
     * The error status of the actions to be included in the metric calculation: `true` or `false`
     */
    hasReportedError?: boolean;
    /**
     * Only actions coming from this internet service provider are included in the metric calculation.
     */
    isp?: string;
    /**
     * Only actions coming from devices of this manufacturer are included in the metric calculation.
     */
    manufacturer?: string;
    /**
     * Filter by network technology
     */
    networkTechnology?: string;
    /**
     * Only actions coming from devices with this display orientation are included in the metric calculation. Possible values: [ LANDSCAPE, PORTRAIT, UNKNOWN ]
     */
    orientation?: string;
    /**
     * Only actions coming from this OS family are included in the metric calculation.
     */
    osFamily?: string;
    /**
     * Only actions coming from this OS version are included in the metric calculation.
     */
    osVersion?: string;
    /**
     * Only actions of users from this region are included in the metric calculation. Specify geolocation ID here.
     */
    region?: string;
    /**
     * Only actions coming from devices with this display resolution are included in the metric calculation. Possible values: [ CGA, DCI2K, DCI4K, DVGA, FHD, FWVGA, FWXGA, GHDPlus, HD, HQVGA, HQVGA2, HSXGA, HUXGA, HVGA, HXGA, NTSC, PAL, QHD, QQVGA, QSXGA, QUXGA, QVGA, QWXGA, QXGA, SVGA, SXGA, SXGAMinus, SXGAPlus, UGA, UHD16K, UHD4K, UHD8K, UHDPlus, UNKNOWN, UWQHD, UXGA, VGA, WHSXGA, WHUXGA, WHXGA, WQSXGA, WQUXGA, WQVGA, WQVGA2, WQVGA3, WQXGA, WQXGA2, WSVGA, WSVGA2, WSXGA, WSXGAPlus, WUXGA, WVGA, WVGA2, WXGA, WXGA2, WXGA3, WXGAPlus, XGA, XGAPLUS, _1280x854, nHD, qHD ]
     */
    resolution?: string;
    /**
     * Only actions with this name are included in the metric calculation.
     */
    userActionName?: string;
}
export interface CalculatedServiceMetricCondition {
    /**
     * A conditions for the metric usage
     */
    conditions?: outputs.CalculatedServiceMetricConditionCondition[];
}
export interface CalculatedServiceMetricConditionCondition {
    /**
     * The attribute to be matched.  Note that for a service property attribute you must use the comparison of the `FAST_STRING` type. Possible values are `ACTOR_SYSTEM`, `AKKA_ACTOR_CLASS_NAME`, `AKKA_ACTOR_MESSAGE_TYPE`, `AKKA_ACTOR_PATH`, `APPLICATION_BUILD_VERSION`, `APPLICATION_RELEASE_VERSION`, `AZURE_FUNCTIONS_FUNCTION_NAME`, `AZURE_FUNCTIONS_SITE_NAME`, `CICS_PROGRAM_NAME`, `CICS_SYSTEM_ID`, `CICS_TASK_ID`, `CICS_TRANSACTION_ID`, `CICS_USER_ID`, `CPU_TIME`, `CTG_GATEWAY_URL`, `CTG_PROGRAM`, `CTG_SERVER_NAME`, `CTG_TRANSACTION_ID`, `CUSTOMSERVICE_CLASS`, `CUSTOMSERVICE_METHOD`, `DATABASE_CHILD_CALL_COUNT`, `DATABASE_CHILD_CALL_TIME`, `DATABASE_HOST`, `DATABASE_NAME`, `DATABASE_TYPE`, `DATABASE_URL`, `DISK_IO_TIME`, `ERROR_COUNT`, `ESB_APPLICATION_NAME`, `ESB_INPUT_TYPE`, `ESB_LIBRARY_NAME`, `ESB_MESSAGE_FLOW_NAME`, `EXCEPTION_CLASS`, `EXCEPTION_MESSAGE`, `FAILED_STATE`, `FAILURE_REASON`, `FLAW_STATE`, `HTTP_REQUEST_METHOD`, `HTTP_STATUS`, `HTTP_STATUS_CLASS`, `IMS_PROGRAM_NAME`, `IMS_TRANSACTION_ID`, `IMS_USER_ID`, `IO_TIME`, `IS_KEY_REQUEST`, `LAMBDA_COLDSTART`, `LOCK_TIME`, `MESSAGING_DESTINATION_TYPE`, `MESSAGING_IS_TEMPORARY_QUEUE`, `MESSAGING_QUEUE_NAME`, `MESSAGING_QUEUE_VENDOR`, `NETWORK_IO_TIME`, `NON_DATABASE_CHILD_CALL_COUNT`, `NON_DATABASE_CHILD_CALL_TIME`, `PROCESS_GROUP_NAME`, `PROCESS_GROUP_TAG`, `REMOTE_ENDPOINT`, `REMOTE_METHOD`, `REMOTE_SERVICE_NAME`, `REQUEST_NAME`, `REQUEST_TYPE`, `RESPONSE_TIME`, `RESPONSE_TIME_CLIENT`, `RMI_CLASS`, `RMI_METHOD`, `SERVICE_DISPLAY_NAME`, `SERVICE_NAME`, `SERVICE_PORT`, `SERVICE_PUBLIC_DOMAIN_NAME`, `SERVICE_REQUEST_ATTRIBUTE`, `SERVICE_TAG`, `SERVICE_TYPE`, `SERVICE_WEB_APPLICATION_ID`, `SERVICE_WEB_CONTEXT_ROOT`, `SERVICE_WEB_SERVER_NAME`, `SERVICE_WEB_SERVICE_NAME`, `SERVICE_WEB_SERVICE_NAMESPACE`, `SUSPENSION_TIME`, `TOTAL_PROCESSING_TIME`, `WAIT_TIME`, `WEBREQUEST_QUERY`, `WEBREQUEST_RELATIVE_URL`, `WEBREQUEST_URL`, `WEBREQUEST_URL_HOST`, `WEBREQUEST_URL_PATH`, `WEBREQUEST_URL_PORT`, `WEBSERVICE_ENDPOINT`, `WEBSERVICE_METHOD` and `ZOS_CALL_TYPE`
     */
    attribute: string;
    /**
     * Type-specific comparison for attributes
     */
    comparison: outputs.CalculatedServiceMetricConditionConditionComparison;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
}
export interface CalculatedServiceMetricConditionConditionComparison {
    /**
     * Boolean Comparison for `BOOLEAN` attributes
     */
    boolean?: outputs.CalculatedServiceMetricConditionConditionComparisonBoolean;
    /**
     * Type-specific comparison information for attributes of type 'ESB_INPUT_NODE_TYPE'
     */
    esbInputNodeType?: outputs.CalculatedServiceMetricConditionConditionComparisonEsbInputNodeType;
    /**
     * Comparison for `FAILED_STATE` attributes
     */
    failedState?: outputs.CalculatedServiceMetricConditionConditionComparisonFailedState;
    /**
     * Comparison for `FAILURE_REASON` attributes
     */
    failureReason?: outputs.CalculatedServiceMetricConditionConditionComparisonFailureReason;
    /**
     * Comparison for `FAST_STRING` attributes. Use it for all service property attributes
     */
    fastString?: outputs.CalculatedServiceMetricConditionConditionComparisonFastString;
    /**
     * Comparison for `FLAW_STATE` attributes
     */
    flawState?: outputs.CalculatedServiceMetricConditionConditionComparisonFlawState;
    /**
     * Comparison for `NUMBER` attributes
     */
    generic?: outputs.CalculatedServiceMetricConditionConditionComparisonGeneric;
    /**
     * Comparison for `HTTP_METHOD` attributes
     */
    httpMethod?: outputs.CalculatedServiceMetricConditionConditionComparisonHttpMethod;
    /**
     * Comparison for `HTTP_STATUS_CLASS` attributes
     */
    httpStatusClass?: outputs.CalculatedServiceMetricConditionConditionComparisonHttpStatusClass;
    /**
     * Comparison for `IIB_INPUT_NODE_TYPE` attributes
     */
    iibInputNodeType?: outputs.CalculatedServiceMetricConditionConditionComparisonIibInputNodeType;
    /**
     * Reverse the comparison **operator**. For example, it turns **equals** into **does not equal**
     */
    negate?: boolean;
    /**
     * Comparison for `NUMBER` attributes
     */
    number?: outputs.CalculatedServiceMetricConditionConditionComparisonNumber;
    /**
     * Comparison for `NUMBER_REQUEST_ATTRIBUTE` attributes
     */
    numberRequestAttribute?: outputs.CalculatedServiceMetricConditionConditionComparisonNumberRequestAttribute;
    /**
     * Comparison for `SERVICE_TYPE` attributes
     */
    serviceType?: outputs.CalculatedServiceMetricConditionConditionComparisonServiceType;
    /**
     * Comparison for `STRING` attributes
     */
    string?: outputs.CalculatedServiceMetricConditionConditionComparisonString;
    /**
     * Comparison for `STRING_REQUEST_ATTRIBUTE` attributes
     */
    stringRequestAttribute?: outputs.CalculatedServiceMetricConditionConditionComparisonStringRequestAttribute;
    /**
     * Comparison for `TAG` attributes
     */
    tag?: outputs.CalculatedServiceMetricConditionConditionComparisonTag;
    /**
     * Comparison for `ZOS_CALL_TYPE` attributes
     */
    zosCallType?: outputs.CalculatedServiceMetricConditionConditionComparisonZosCallType;
}
export interface CalculatedServiceMetricConditionConditionComparisonBoolean {
    /**
     * Operator of the comparison. You can reverse it by setting `negate` to `true`. Possible values are `EQUALS`, `EQUALS_ANY_OF` and `EXISTS`
     */
    operator?: string;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value: boolean;
    /**
     * The values to compare to
     */
    values?: boolean[];
}
export interface CalculatedServiceMetricConditionConditionComparisonEsbInputNodeType {
    /**
     * Operator of the comparison. You can reverse it by setting `negate` to `true`. Possible values are `EQUALS`, `EQUALS_ANY_OF` and `EXISTS`
     */
    operator?: string;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are `CALLABLE_FLOW_ASYNC_RESPONSE_NODE`, `CALLABLE_FLOW_INPUT_NODE`, `DATABASE_INPUT_NODE`, `DOTNET_INPUT_NODE`, `EMAIL_INPUT_NODE`, `EVENT_INPUT`, `EVENT_INPUT_NODE`, `FILE_INPUT_NODE`, `FTE_INPUT_NODE`, `HTTP_ASYNC_RESPONSE`, `JD_EDWARDS_INPUT_NODE`, `JMS_CLIENT_INPUT_NODE`, `LABEL_NODE`, `MQ_INPUT_NODE`, `PEOPLE_SOFT_INPUT_NODE`, `REST_ASYNC_RESPONSE`, `REST_REQUEST`, `SAP_INPUT_NODE`, `SCA_ASYNC_RESPONSE_NODE`, `SCA_INPUT_NODE`, `SIEBEL_INPUT_NODE`, `SOAP_INPUT_NODE`, `TCPIP_CLIENT_INPUT_NODE`, `TCPIP_CLIENT_REQUEST_NODE`, `TCPIP_SERVER_INPUT_NODE`, `TCPIP_SERVER_REQUEST_NODE`, `TIMEOUT_NOTIFICATION_NODE` and `WS_INPUT_NODE`
     */
    value?: string;
    /**
     * The values to compare to. Possible values are `CALLABLE_FLOW_ASYNC_RESPONSE_NODE`, `CALLABLE_FLOW_INPUT_NODE`, `DATABASE_INPUT_NODE`, `DOTNET_INPUT_NODE`, `EMAIL_INPUT_NODE`, `EVENT_INPUT`, `EVENT_INPUT_NODE`, `FILE_INPUT_NODE`, `FTE_INPUT_NODE`, `HTTP_ASYNC_RESPONSE`, `JD_EDWARDS_INPUT_NODE`, `JMS_CLIENT_INPUT_NODE`, `LABEL_NODE`, `MQ_INPUT_NODE`, `PEOPLE_SOFT_INPUT_NODE`, `REST_ASYNC_RESPONSE`, `REST_REQUEST`, `SAP_INPUT_NODE`, `SCA_ASYNC_RESPONSE_NODE`, `SCA_INPUT_NODE`, `SIEBEL_INPUT_NODE`, `SOAP_INPUT_NODE`, `TCPIP_CLIENT_INPUT_NODE`, `TCPIP_CLIENT_REQUEST_NODE`, `TCPIP_SERVER_INPUT_NODE`, `TCPIP_SERVER_REQUEST_NODE`, `TIMEOUT_NOTIFICATION_NODE` and `WS_INPUT_NODE`
     */
    values?: string[];
}
export interface CalculatedServiceMetricConditionConditionComparisonFailedState {
    /**
     * Operator of the comparison. You can reverse it by setting `negate` to `true`. Possible values are `EQUALS`, `EQUALS_ANY_OF` and `EXISTS`
     */
    operator?: string;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are `FAILED` and `FAILED`
     */
    value?: string;
    /**
     * The values to compare to. Possible values are `FAILED` and `FAILED`
     */
    values?: string[];
}
export interface CalculatedServiceMetricConditionConditionComparisonFailureReason {
    /**
     * Operator of the comparison. You can reverse it by setting `negate` to `true`. Possible values are `EQUALS`, `EQUALS_ANY_OF` and `EXISTS`
     */
    operator?: string;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are `EXCEPTION_AT_ENTRY_NODE`, `EXCEPTION_ON_ANY_NODE`, `HTTP_CODE` and `REQUEST_ATTRIBUTE`
     */
    value?: string;
    /**
     * The values to compare to. Possible values are `EXCEPTION_AT_ENTRY_NODE`, `EXCEPTION_ON_ANY_NODE`, `HTTP_CODE` and `REQUEST_ATTRIBUTE`
     */
    values?: string[];
}
export interface CalculatedServiceMetricConditionConditionComparisonFastString {
    /**
     * The comparison is case-sensitive (`true`) or not case-sensitive (`false`)
     */
    caseSensitive?: boolean;
    /**
     * Operator of the comparison. You can reverse it by setting `negate` to `true`. Possible values are `EQUALS`, `EQUALS_ANY_OF` and `CONTAINS`
     */
    operator?: string;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value?: string;
    /**
     * The values to compare to
     */
    values?: string[];
}
export interface CalculatedServiceMetricConditionConditionComparisonFlawState {
    /**
     * Operator of the comparison. You can reverse it by setting `negate` to `true`. Possible values are `EQUALS`, `EQUALS_ANY_OF` and `EXISTS`
     */
    operator?: string;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are `FLAWED` and `NOT_FLAWED`
     */
    value?: string;
    /**
     * The values to compare to. Possible values are `FLAWED` and `NOT_FLAWED`
     */
    values?: string[];
}
export interface CalculatedServiceMetricConditionConditionComparisonGeneric {
    /**
     * Defines the actual set of fields depending on the value
     */
    type: string;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
}
export interface CalculatedServiceMetricConditionConditionComparisonHttpMethod {
    /**
     * Operator of the comparison. You can reverse it by setting `negate` to `true`. Possible values are `EQUALS`, `EQUALS_ANY_OF` and `EXISTS`
     */
    operator?: string;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are `CONNECT`, `DELETE`, `GET`, `HEAD`, `OPTIONS`, `PATCH`, `POST`, `PUT` and `TRACE`
     */
    value?: string;
    /**
     * The values to compare to. Possible values are `CONNECT`, `DELETE`, `GET`, `HEAD`, `OPTIONS`, `PATCH`, `POST`, `PUT` and `TRACE`
     */
    values?: string[];
}
export interface CalculatedServiceMetricConditionConditionComparisonHttpStatusClass {
    /**
     * Operator of the comparison. You can reverse it by setting `negate` to `true`. Possible values are `EQUALS`, `EQUALS_ANY_OF` and `EXISTS`
     */
    operator?: string;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are `C_1XX`, `C_2XX`, `C_3XX`, `C_4XX`, `C_5XX` and `NO_RESPONSE`
     */
    value?: string;
    /**
     * The values to compare to. Possible values are `C_1XX`, `C_2XX`, `C_3XX`, `C_4XX`, `C_5XX` and `NO_RESPONSE`
     */
    values?: string[];
}
export interface CalculatedServiceMetricConditionConditionComparisonIibInputNodeType {
    /**
     * Operator of the comparison. You can reverse it by setting `negate` to `true`. Possible values are `EQUALS`, `EQUALS_ANY_OF` and `EXISTS`
     */
    operator?: string;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are `CALLABLE_FLOW_ASYNC_RESPONSE_NODE`, `CALLABLE_FLOW_INPUT_NODE`, `DATABASE_INPUT_NODE`, `DOTNET_INPUT_NODE`, `EMAIL_INPUT_NODE`, `EVENT_INPUT`, `EVENT_INPUT_NODE`, `FILE_INPUT_NODE`, `FTE_INPUT_NODE`, `HTTP_ASYNC_RESPONSE`, `JD_EDWARDS_INPUT_NODE`, `JMS_CLIENT_INPUT_NODE`, `LABEL_NODE`, `MQ_INPUT_NODE`, `PEOPLE_SOFT_INPUT_NODE`, `REST_ASYNC_RESPONSE`, `REST_REQUEST`, `SAP_INPUT_NODE`, `SCA_ASYNC_RESPONSE_NODE`, `SCA_INPUT_NODE`, `SIEBEL_INPUT_NODE`, `SOAP_INPUT_NODE`, `TCPIP_CLIENT_INPUT_NODE`, `TCPIP_CLIENT_REQUEST_NODE`, `TCPIP_SERVER_INPUT_NODE`, `TCPIP_SERVER_REQUEST_NODE`, `TIMEOUT_NOTIFICATION_NODE` and `WS_INPUT_NODE`
     */
    value?: string;
    /**
     * The values to compare to. Possible values are `CALLABLE_FLOW_ASYNC_RESPONSE_NODE`, `CALLABLE_FLOW_INPUT_NODE`, `DATABASE_INPUT_NODE`, `DOTNET_INPUT_NODE`, `EMAIL_INPUT_NODE`, `EVENT_INPUT`, `EVENT_INPUT_NODE`, `FILE_INPUT_NODE`, `FTE_INPUT_NODE`, `HTTP_ASYNC_RESPONSE`, `JD_EDWARDS_INPUT_NODE`, `JMS_CLIENT_INPUT_NODE`, `LABEL_NODE`, `MQ_INPUT_NODE`, `PEOPLE_SOFT_INPUT_NODE`, `REST_ASYNC_RESPONSE`, `REST_REQUEST`, `SAP_INPUT_NODE`, `SCA_ASYNC_RESPONSE_NODE`, `SCA_INPUT_NODE`, `SIEBEL_INPUT_NODE`, `SOAP_INPUT_NODE`, `TCPIP_CLIENT_INPUT_NODE`, `TCPIP_CLIENT_REQUEST_NODE`, `TCPIP_SERVER_INPUT_NODE`, `TCPIP_SERVER_REQUEST_NODE`, `TIMEOUT_NOTIFICATION_NODE` and `WS_INPUT_NODE`
     */
    values?: string[];
}
export interface CalculatedServiceMetricConditionConditionComparisonNumber {
    /**
     * Operator of the comparison. You can reverse it by setting `negate` to `true`. Possible values are `EQUALS`, `EQUALS_ANY_OF`, `EXISTS`, `GREATER_THAN`, `GREATER_THAN_OR_EQUAL`, `LOWER_THAN` and `LOWER_THAN_OR_EQUAL`
     */
    operator?: string;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value?: number;
    /**
     * The values to compare to
     */
    values?: number[];
}
export interface CalculatedServiceMetricConditionConditionComparisonNumberRequestAttribute {
    /**
     * If `true`, the request attribute is matched on child service calls. Default is `false`
     */
    matchOnChildCalls?: boolean;
    /**
     * Operator of the comparison. You can reverse it by setting `negate` to `true`. Possible values are `EQUALS`, `EQUALS_ANY_OF`, `EXISTS`, `GREATER_THAN`, `GREATER_THAN_OR_EQUAL`, `LOWER_THAN` and `LOWER_THAN_OR_EQUAL`
     */
    operator?: string;
    /**
     * No documentation available for this attribute
     */
    requestAttribute: string;
    /**
     * Defines valid sources of request attributes for conditions or placeholders
     */
    source?: outputs.CalculatedServiceMetricConditionConditionComparisonNumberRequestAttributeSource;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value?: number;
    /**
     * The values to compare to
     */
    values?: number[];
}
export interface CalculatedServiceMetricConditionConditionComparisonNumberRequestAttributeSource {
    /**
     * Use only request attributes from services that belong to this management zone.. Use either this or `serviceTag`
     */
    managementZone?: string;
    /**
     * Use only request attributes from services that have this tag. Use either this or `managementZone`
     */
    serviceTag?: outputs.CalculatedServiceMetricConditionConditionComparisonNumberRequestAttributeSourceServiceTag;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
}
export interface CalculatedServiceMetricConditionConditionComparisonNumberRequestAttributeSourceServiceTag {
    /**
     * The origin of the tag, such as AWS or Cloud Foundry. For custom tags use the `CONTEXTLESS` value. The context is set for tags that are automatically imported by OneAgent (for example, from the AWS console or environment variables). It’s useful for determining the origin of tags when not manually defined, and it also helps to prevent clashes with other existing tags. If the tag is not automatically imported, `CONTEXTLESS` set. Possible values are `AWS`, `AWS_GENERIC`, `AZURE`, `CLOUD_FOUNDRY`, `CONTEXTLESS`, `ENVIRONMENT`, `GOOGLE_COMPUTE_ENGINE` and `KUBERNETES`
     */
    context?: string;
    /**
     * The key of the tag. For custom tags, put the tag value here. The key allows categorization of multiple tags. It is possible that there are multiple values for a single key which will all be represented as standalone tags. Therefore, the key does not have the semantic of a map key but is more like a key of a key-value tuple. In some cases, for example custom tags, the key represents the actual tag value and the value field is not set – those are called valueless tags
     */
    key: string;
    /**
     * has no documentation
     */
    tagKey?: outputs.CalculatedServiceMetricConditionConditionComparisonNumberRequestAttributeSourceServiceTagTagKey;
    /**
     * The value of the tag. Not applicable to custom tags. If a tag does have a separate key and value (in the textual representation they are split by the colon ‘:’), this field is set with the actual value. Key-value pairs can occur for automatically imported tags and tags set by rules if extractors are used
     */
    value?: string;
}
export interface CalculatedServiceMetricConditionConditionComparisonNumberRequestAttributeSourceServiceTagTagKey {
    /**
     * has no documentation
     */
    context?: string;
    /**
     * has no documentation
     */
    key?: string;
}
export interface CalculatedServiceMetricConditionConditionComparisonServiceType {
    /**
     * Operator of the comparison. You can reverse it by setting `negate` to `true`. Possible values are `EQUALS`, `EQUALS_ANY_OF` and `EXISTS`
     */
    operator?: string;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are `BACKGROUND_ACTIVITY`, `CICS_SERVICE`, `CUSTOM_SERVICE`, `DATABASE_SERVICE`, `ENTERPRISE_SERVICE_BUS_SERVICE`, `EXTERNAL`, `IBM_INTEGRATION_BUS_SERVICE`, `IMS_SERVICE`, `MESSAGING_SERVICE`, `RMI_SERVICE`, `RPC_SERVICE`, `WEB_REQUEST_SERVICE` and `WEB_SERVICE`
     */
    value?: string;
    /**
     * The values to compare to. Possible values are `BACKGROUND_ACTIVITY`, `CICS_SERVICE`, `CUSTOM_SERVICE`, `DATABASE_SERVICE`, `ENTERPRISE_SERVICE_BUS_SERVICE`, `EXTERNAL`, `IBM_INTEGRATION_BUS_SERVICE`, `IMS_SERVICE`, `MESSAGING_SERVICE`, `RMI_SERVICE`, `RPC_SERVICE`, `WEB_REQUEST_SERVICE` and `WEB_SERVICE`
     */
    values?: string[];
}
export interface CalculatedServiceMetricConditionConditionComparisonString {
    /**
     * The comparison is case-sensitive (`true`) or not case-sensitive (`false`)
     */
    caseSensitive?: boolean;
    /**
     * Operator of the comparison. You can reverse it by setting `negate` to `true`. Possible values are `BEGINS_WITH`, `BEGINS_WITH_ANY_OF`, `CONTAINS`, `ENDS_WITH`, `ENDS_WITH_ANY_OF`, `EQUALS`, `EQUALS_ANY_OF`, `EXISTS` and `REGEX_MATCHES`
     */
    operator?: string;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value?: string;
    /**
     * The values to compare to
     */
    values?: string[];
}
export interface CalculatedServiceMetricConditionConditionComparisonStringRequestAttribute {
    /**
     * The comparison is case-sensitive (`true`) or not case-sensitive (`false`)
     */
    caseSensitive?: boolean;
    /**
     * If `true`, the request attribute is matched on child service calls. Default is `false`
     */
    matchOnChildCalls?: boolean;
    /**
     * Operator of the comparison. You can reverse it by setting `negate` to `true`. Possible values are `BEGINS_WITH`, `BEGINS_WITH_ANY_OF`, `CONTAINS`, `ENDS_WITH`, `ENDS_WITH_ANY_OF`, `EQUALS`, `EQUALS_ANY_OF`, `EXISTS` and `REGEX_MATCHES`
     */
    operator?: string;
    /**
     * No documentation available for this attribute
     */
    requestAttribute: string;
    /**
     * Defines valid sources of request attributes for conditions or placeholders
     */
    source?: outputs.CalculatedServiceMetricConditionConditionComparisonStringRequestAttributeSource;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value?: string;
    /**
     * The values to compare to
     */
    values?: string[];
}
export interface CalculatedServiceMetricConditionConditionComparisonStringRequestAttributeSource {
    /**
     * Use only request attributes from services that belong to this management zone.. Use either this or `serviceTag`
     */
    managementZone?: string;
    /**
     * Use only request attributes from services that have this tag. Use either this or `managementZone`
     */
    serviceTag?: outputs.CalculatedServiceMetricConditionConditionComparisonStringRequestAttributeSourceServiceTag;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
}
export interface CalculatedServiceMetricConditionConditionComparisonStringRequestAttributeSourceServiceTag {
    /**
     * The origin of the tag, such as AWS or Cloud Foundry. For custom tags use the `CONTEXTLESS` value. The context is set for tags that are automatically imported by OneAgent (for example, from the AWS console or environment variables). It’s useful for determining the origin of tags when not manually defined, and it also helps to prevent clashes with other existing tags. If the tag is not automatically imported, `CONTEXTLESS` set. Possible values are `AWS`, `AWS_GENERIC`, `AZURE`, `CLOUD_FOUNDRY`, `CONTEXTLESS`, `ENVIRONMENT`, `GOOGLE_COMPUTE_ENGINE` and `KUBERNETES`
     */
    context?: string;
    /**
     * The key of the tag. For custom tags, put the tag value here. The key allows categorization of multiple tags. It is possible that there are multiple values for a single key which will all be represented as standalone tags. Therefore, the key does not have the semantic of a map key but is more like a key of a key-value tuple. In some cases, for example custom tags, the key represents the actual tag value and the value field is not set – those are called valueless tags
     */
    key: string;
    /**
     * has no documentation
     */
    tagKey?: outputs.CalculatedServiceMetricConditionConditionComparisonStringRequestAttributeSourceServiceTagTagKey;
    /**
     * The value of the tag. Not applicable to custom tags. If a tag does have a separate key and value (in the textual representation they are split by the colon ‘:’), this field is set with the actual value. Key-value pairs can occur for automatically imported tags and tags set by rules if extractors are used
     */
    value?: string;
}
export interface CalculatedServiceMetricConditionConditionComparisonStringRequestAttributeSourceServiceTagTagKey {
    /**
     * has no documentation
     */
    context?: string;
    /**
     * has no documentation
     */
    key?: string;
}
export interface CalculatedServiceMetricConditionConditionComparisonTag {
    /**
     * Operator of the comparison. You can reverse it by setting `negate` to `true`. Possible values are `EQUALS`, `EQUALS_ANY_OF`, `TAG_KEY_EQUALS` and `TAG_KEY_EQUALS_ANY_OF`
     */
    operator?: string;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
    /**
     * The values to compare to
     */
    value?: outputs.CalculatedServiceMetricConditionConditionComparisonTagValue;
    /**
     * The values to compare to
     */
    values?: outputs.CalculatedServiceMetricConditionConditionComparisonTagValues;
}
export interface CalculatedServiceMetricConditionConditionComparisonTagValue {
    /**
     * The origin of the tag, such as AWS or Cloud Foundry. Custom tags use the `CONTEXTLESS` value. Possible values are `AWS`, `AWS_GENERIC`, `AZURE`, `CLOUD_FOUNDRY`, `CONTEXTLESS`, `ENVIRONMENT`, `GOOGLE_CLOUD` and `KUBERNETES`
     */
    context: string;
    /**
     * The key of the tag. Custom tags have the tag value here
     */
    key: string;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
    /**
     * The value of the tag. Not applicable to custom tags
     */
    value?: string;
}
export interface CalculatedServiceMetricConditionConditionComparisonTagValues {
    /**
     * The values to compare to
     */
    values?: outputs.CalculatedServiceMetricConditionConditionComparisonTagValuesValue[];
}
export interface CalculatedServiceMetricConditionConditionComparisonTagValuesValue {
    /**
     * The origin of the tag, such as AWS or Cloud Foundry. Custom tags use the `CONTEXTLESS` value. Possible values are `AWS`, `AWS_GENERIC`, `AZURE`, `CLOUD_FOUNDRY`, `CONTEXTLESS`, `ENVIRONMENT`, `GOOGLE_CLOUD` and `KUBERNETES`
     */
    context: string;
    /**
     * The key of the tag. Custom tags have the tag value here
     */
    key: string;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
    /**
     * The value of the tag. Not applicable to custom tags
     */
    value?: string;
}
export interface CalculatedServiceMetricConditionConditionComparisonZosCallType {
    /**
     * Operator of the comparison. You can reverse it by setting `negate` to `true`. Possible values are `EQUALS`, `EQUALS_ANY_OF` and `EXISTS`
     */
    operator?: string;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are `CTG`, `DPL`, `EXPLICIT_ADK`, `IMS_CONNECT`, `IMS_CONNECT_API`, `IMS_ITRA`, `IMS_MSC`, `IMS_PGM_SWITCH`, `IMS_SHARED_QUEUES`, `IMS_TRANS_EXEC`, `MQ`, `SOAP`, `START`, `TX` and `UNKNOWN`
     */
    value?: string;
    /**
     * The values to compare to. Possible values are `CTG`, `DPL`, `EXPLICIT_ADK`, `IMS_CONNECT`, `IMS_CONNECT_API`, `IMS_ITRA`, `IMS_MSC`, `IMS_PGM_SWITCH`, `IMS_SHARED_QUEUES`, `IMS_TRANS_EXEC`, `MQ`, `SOAP`, `START`, `TX` and `UNKNOWN`
     */
    values?: string[];
}
export interface CalculatedServiceMetricDimensionDefinition {
    /**
     * The dimension value pattern. You can define custom placeholders in the `placeholders` field and use them here
     */
    dimension: string;
    /**
     * The name of the dimension
     */
    name: string;
    /**
     * The list of custom placeholders to be used in a dimension value pattern
     */
    placeholders?: outputs.CalculatedServiceMetricDimensionDefinitionPlaceholders;
    /**
     * The number of top values to be calculated
     */
    topX: number;
    /**
     * The aggregation of the dimension. Possible values are `AVERAGE`, `COUNT`, `MAX`, `MIN`, `OF_INTEREST_RATIO`, `OTHER_RATIO`, `SINGLE_VALUE` and `SUM`
     */
    topXAggregation: string;
    /**
     * How to calculate the **topX** values. Possible values are `ASCENDING` and `DESCENDING`
     */
    topXDirection: string;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
}
export interface CalculatedServiceMetricDimensionDefinitionPlaceholders {
    /**
     * A custom placeholder to be used in a dimension value pattern
     */
    placeholders?: outputs.CalculatedServiceMetricDimensionDefinitionPlaceholdersPlaceholder[];
}
export interface CalculatedServiceMetricDimensionDefinitionPlaceholdersPlaceholder {
    /**
     * Which value of the request attribute must be used when it occurs across multiple child requests. Only applicable for the `SERVICE_REQUEST_ATTRIBUTE` attribute, when **useFromChildCalls** is `true`. For the `COUNT` aggregation, the **kind** field is not applicable. Possible values are `COUNT`, `FIRST` and `LAST`.
     */
    aggregation?: string;
    /**
     * The attribute to extract from. You can only use attributes of the **string** type. Possible values are `ACTOR_SYSTEM`, `AKKA_ACTOR_CLASS_NAME`, `AKKA_ACTOR_MESSAGE_TYPE`, `AKKA_ACTOR_PATH`, `APPLICATION_BUILD_VERSION`, `APPLICATION_RELEASE_VERSION`, `AZURE_FUNCTIONS_FUNCTION_NAME`, `AZURE_FUNCTIONS_SITE_NAME`, `CICS_PROGRAM_NAME`, `CICS_SYSTEM_ID`, `CICS_TASK_ID`, `CICS_TRANSACTION_ID`, `CICS_USER_ID`, `CPU_TIME`, `CTG_GATEWAY_URL`, `CTG_PROGRAM`, `CTG_SERVER_NAME`, `CTG_TRANSACTION_ID`, `CUSTOMSERVICE_CLASS`, `CUSTOMSERVICE_METHOD`, `DATABASE_CHILD_CALL_COUNT`, `DATABASE_CHILD_CALL_TIME`, `DATABASE_HOST`, `DATABASE_NAME`, `DATABASE_TYPE`, `DATABASE_URL`, `DISK_IO_TIME`, `ERROR_COUNT`, `ESB_APPLICATION_NAME`, `ESB_INPUT_TYPE`, `ESB_LIBRARY_NAME`, `ESB_MESSAGE_FLOW_NAME`, `EXCEPTION_CLASS`, `EXCEPTION_MESSAGE`, `FAILED_STATE`, `FAILURE_REASON`, `FLAW_STATE`, `HTTP_REQUEST_METHOD`, `HTTP_STATUS`, `HTTP_STATUS_CLASS`, `IMS_PROGRAM_NAME`, `IMS_TRANSACTION_ID`, `IMS_USER_ID`, `IO_TIME`, `IS_KEY_REQUEST`, `LAMBDA_COLDSTART`, `LOCK_TIME`, `MESSAGING_DESTINATION_TYPE`, `MESSAGING_IS_TEMPORARY_QUEUE`, `MESSAGING_QUEUE_NAME`, `MESSAGING_QUEUE_VENDOR`, `NETWORK_IO_TIME`, `NON_DATABASE_CHILD_CALL_COUNT`, `NON_DATABASE_CHILD_CALL_TIME`, `PROCESS_GROUP_NAME`, `PROCESS_GROUP_TAG`, `REMOTE_ENDPOINT`, `REMOTE_METHOD`, `REMOTE_SERVICE_NAME`, `REQUEST_NAME`, `REQUEST_TYPE`, `RESPONSE_TIME`, `RESPONSE_TIME_CLIENT`, `RMI_CLASS`, `RMI_METHOD`, `SERVICE_DISPLAY_NAME`, `SERVICE_NAME`, `SERVICE_PORT`, `SERVICE_PUBLIC_DOMAIN_NAME`, `SERVICE_REQUEST_ATTRIBUTE`, `SERVICE_TAG`, `SERVICE_TYPE`, `SERVICE_WEB_APPLICATION_ID`, `SERVICE_WEB_CONTEXT_ROOT`, `SERVICE_WEB_SERVER_NAME`, `SERVICE_WEB_SERVICE_NAME`, `SERVICE_WEB_SERVICE_NAMESPACE`, `SUSPENSION_TIME`, `TOTAL_PROCESSING_TIME`, `WAIT_TIME`, `WEBREQUEST_QUERY`, `WEBREQUEST_RELATIVE_URL`, `WEBREQUEST_URL`, `WEBREQUEST_URL_HOST`, `WEBREQUEST_URL_PATH`, `WEBREQUEST_URL_PORT`, `WEBSERVICE_ENDPOINT`, `WEBSERVICE_METHOD` and `ZOS_CALL_TYPE`
     */
    attribute: string;
    /**
     * Depending on the `kind` value:
     *
     *
     * * `REGEX_EXTRACTION`: The regular expression.
     *
     *
     * * `BETWEEN_DELIMITER`: The opening delimiter string to look for.
     *
     *
     * * All other values: The delimiter string to look for
     */
    delimiterOrRegex?: string;
    /**
     * The closing delimiter string to look for. Required if the `kind` value is `BETWEEN_DELIMITER`. Not applicable otherwise
     */
    endDelimiter?: string;
    /**
     * The type of extraction. Defines either usage of regular expression (`regex`) or the position of request attribute value to be extracted. When the `attribute` is `SERVICE_REQUEST_ATTRIBUTE` attribute and `aggregation` is `COUNT`, needs to be set to `ORIGINAL_TEXT`. Possible values are 	`AFTER_DELIMITER`, `BEFORE_DELIMITER`, `BETWEEN_DELIMITER`, `ORIGINAL_TEXT` and `REGEX_EXTRACTION`
     */
    kind: string;
    /**
     * The name of the placeholder. Use it in the naming pattern as `{name}`
     */
    name: string;
    /**
     * The format of the extracted string. Possible values are `ORIGINAL`, `TO_LOWER_CASE` and `TO_UPPER_CASE`
     */
    normalization?: string;
    /**
     * The One Agent attribute to extract from. Required if the kind value is `ONE_AGENT_ATTRIBUTE`. Not applicable otherwise.
     */
    oneagentAttributeKey?: string;
    /**
     * The request attribute to extract from. Required if the `kind` value is `SERVICE_REQUEST_ATTRIBUTE`. Not applicable otherwise
     */
    requestAttribute?: string;
    /**
     * Defines valid sources of request attributes for conditions or placeholders
     */
    source?: outputs.CalculatedServiceMetricDimensionDefinitionPlaceholdersPlaceholderSource;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
    /**
     * If `true` request attribute will be taken from a child service call. Only applicable for the `SERVICE_REQUEST_ATTRIBUTE` attribute. Defaults to `false`
     */
    useFromChildCalls?: boolean;
}
export interface CalculatedServiceMetricDimensionDefinitionPlaceholdersPlaceholderSource {
    /**
     * Use only request attributes from services that belong to this management zone.. Use either this or `serviceTag`
     */
    managementZone?: string;
    /**
     * Use only request attributes from services that have this tag. Use either this or `managementZone`
     */
    serviceTag?: outputs.CalculatedServiceMetricDimensionDefinitionPlaceholdersPlaceholderSourceServiceTag;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
}
export interface CalculatedServiceMetricDimensionDefinitionPlaceholdersPlaceholderSourceServiceTag {
    /**
     * The origin of the tag, such as AWS or Cloud Foundry. For custom tags use the `CONTEXTLESS` value. The context is set for tags that are automatically imported by OneAgent (for example, from the AWS console or environment variables). It’s useful for determining the origin of tags when not manually defined, and it also helps to prevent clashes with other existing tags. If the tag is not automatically imported, `CONTEXTLESS` set. Possible values are `AWS`, `AWS_GENERIC`, `AZURE`, `CLOUD_FOUNDRY`, `CONTEXTLESS`, `ENVIRONMENT`, `GOOGLE_COMPUTE_ENGINE` and `KUBERNETES`
     */
    context?: string;
    /**
     * The key of the tag. For custom tags, put the tag value here. The key allows categorization of multiple tags. It is possible that there are multiple values for a single key which will all be represented as standalone tags. Therefore, the key does not have the semantic of a map key but is more like a key of a key-value tuple. In some cases, for example custom tags, the key represents the actual tag value and the value field is not set – those are called valueless tags
     */
    key: string;
    /**
     * has no documentation
     */
    tagKey?: outputs.CalculatedServiceMetricDimensionDefinitionPlaceholdersPlaceholderSourceServiceTagTagKey;
    /**
     * The value of the tag. Not applicable to custom tags. If a tag does have a separate key and value (in the textual representation they are split by the colon ‘:’), this field is set with the actual value. Key-value pairs can occur for automatically imported tags and tags set by rules if extractors are used
     */
    value?: string;
}
export interface CalculatedServiceMetricDimensionDefinitionPlaceholdersPlaceholderSourceServiceTagTagKey {
    /**
     * has no documentation
     */
    context?: string;
    /**
     * has no documentation
     */
    key?: string;
}
export interface CalculatedServiceMetricMetricDefinition {
    /**
     * The metric to be captured. Possible values are `CPU_TIME`, `DATABASE_CHILD_CALL_COUNT`, `DATABASE_CHILD_CALL_TIME`, `DISK_IO_TIME`, `EXCEPTION_COUNT`, `FAILED_REQUEST_COUNT`, `FAILED_REQUEST_COUNT_CLIENT`, `FAILURE_RATE`, `FAILURE_RATE_CLIENT`, `HTTP_4XX_ERROR_COUNT`, `HTTP_4XX_ERROR_COUNT_CLIENT`, `HTTP_5XX_ERROR_COUNT`, `HTTP_5XX_ERROR_COUNT_CLIENT`, `IO_TIME`, `LOCK_TIME`, `NETWORK_IO_TIME`, `NON_DATABASE_CHILD_CALL_COUNT`, `NON_DATABASE_CHILD_CALL_TIME`, `PROCESSING_TIME`, `REQUEST_ATTRIBUTE`, `REQUEST_COUNT`, `RESPONSE_TIME`, `RESPONSE_TIME_CLIENT`, `SUCCESSFUL_REQUEST_COUNT`, `SUCCESSFUL_REQUEST_COUNT_CLIENT` and `WAIT_TIME`
     */
    metric: string;
    /**
     * The request attribute to be captured. Only applicable when the **metric** parameter is set to `REQUEST_ATTRIBUTE`
     */
    requestAttribute?: string;
}
export interface CalculatedSyntheticMetricDimension {
    /**
     * A dimensions for the metric usage
     */
    dimensions?: outputs.CalculatedSyntheticMetricDimensionDimension[];
}
export interface CalculatedSyntheticMetricDimensionDimension {
    /**
     * The dimension of the metric. Possible values are `Event`, `Location`, `ResourceOrigin`
     */
    dimension: string;
    /**
     * The number of top values to be calculated
     */
    topX?: number;
}
export interface CalculatedSyntheticMetricFilter {
    /**
     * Only user actions of the specified type are included in the metric calculation
     */
    actionType?: string;
    /**
     * Only executions finished with the specified error code are included in the metric calculation.
     */
    errorCode?: number;
    /**
     * Only the specified browser clickpath event is included in the metric calculation. Specify the Dynatrace entity ID of the event here.
     */
    event?: string;
    /**
     * The execution status of the monitors to be included in the metric calculation: `true` or `false`
     */
    hasError?: boolean;
    /**
     * Only executions from the specified location are included in the metric calculation. Specify the Dynatrace entity ID of the location here.
     */
    location?: string;
}
export interface CalculatedWebMetricDimension {
    /**
     * A dimensions for the metric usage
     */
    dimensions?: outputs.CalculatedWebMetricDimensionDimension[];
}
export interface CalculatedWebMetricDimensionDimension {
    /**
     * The dimension of the metric. Possible values are `ApdexType`, `Browser`, `ErrorContext`, `ErrorOrigin`, `ErrorType`, `GeoLocation`, `StringProperty`, `UserActionType`
     */
    dimension: string;
    /**
     * The key of the user action property. Only applicable for the StringProperty dimension.
     */
    propertyKey?: string;
    /**
     * The number of top values to be calculated
     */
    topX: number;
}
export interface CalculatedWebMetricMetricDefinition {
    /**
     * The metric to be captured. Possible values are `Apdex`, `ApplicationCache`, `Callback`, `CumulativeLayoutShift`, `DNSLookup`, `DOMComplete`, `DOMContentLoaded`, `DOMInteractive`, `DoubleProperty`, `ErrorCount`, `FirstContentfulPaint`, `FirstInputDelay`, `FirstInputStart`, `FirstPaint`, `HTMLDownloaded`, `LargestContentfulPaint`, `LoadEventEnd`, `LoadEventStart`, `LongProperty`, `LongTasksTime`, `NavigationStart`, `OnDOMContentLoaded`, `OnLoad`, `Processing`, `RedirectTime`, `Request`, `RequestStart`, `Response`, `SecureConnect`, `SpeedIndex`, `TCPConnect`, `TimeToFirstByte`, `UserActionDuration`, `VisuallyComplete`
     */
    metric: string;
    /**
     * The key of the user action property. Only applicable for DoubleProperty and LongProperty metrics.
     */
    propertyKey?: string;
}
export interface CalculatedWebMetricUserActionFilter {
    /**
     * Only actions with a duration more than or equal to this value (in milliseconds) are included in the metric calculation.
     */
    actionDurationFromMilliseconds?: number;
    /**
     * Only actions with a duration less than or equal to this value (in milliseconds) are included in the metric calculation.
     */
    actionDurationToMilliseconds?: number;
    /**
     * Only actions with the specified Apdex score are included in the metric calculation. Possible values: [ Frustrated, Satisfied, Tolerating, Unknown ]
     */
    apdex?: string;
    /**
     * Only user actions coming from the specified browser family are included in the metric calculation.
     */
    browserFamily?: string;
    /**
     * Only user actions coming from the specified browser type are included in the metric calculation.
     */
    browserType?: string;
    /**
     * Only user actions coming from the specified browser version are included in the metric calculation.
     */
    browserVersion?: string;
    /**
     * Only actions of users from this city are included in the metric calculation. Specify geolocation ID here.
     */
    city?: string;
    /**
     * Only actions of users from this continent are included in the metric calculation. Specify geolocation ID here.
     */
    continent?: string;
    /**
     * Only actions of users from this country are included in the metric calculation. Specify geolocation ID here.
     */
    country?: string;
    /**
     * The status of custom actions in the metric calculation: `true` or `false`
     */
    customAction?: boolean;
    /**
     * The custom error name of the actions to be included in the metric calculation.
     */
    customErrorName?: string;
    /**
     * The custom error type of the actions to be included in the metric calculation.
     */
    customErrorType?: string;
    /**
     * Only user actions coming from the specified domain are included in the metric calculation.
     */
    domain?: string;
    /**
     * The error status of the actions to be included in the metric calculation: `true` or `false`
     */
    hasAnyError?: boolean;
    /**
     * The custom error status of the actions to be included in the metric calculation: `true` or `false`
     */
    hasCustomErrors?: boolean;
    /**
     * The request error status of the actions to be included in the metric calculation: `true` or `false`
     */
    hasHttpErrors?: boolean;
    /**
     * The JavaScript error status of the actions to be included in the metric calculation: `true` or `false`
     */
    hasJavascriptErrors?: boolean;
    /**
     * The HTTP error status code of the actions to be included in the metric calculation.
     */
    httpErrorCode?: number;
    /**
     * Can be used in combination with httpErrorCode to define a range of error codes that will be included in the metric calculation.
     */
    httpErrorCodeTo?: number;
    /**
     * The request path that has been determined to be the origin of an HTTP error of the actions to be included in the metric calculation.
     */
    httpPath?: string;
    /**
     * Only actions coming from this IP address are included in the metric calculation.
     */
    ip?: string;
    /**
     * The IPv6 status of the actions to be included in the metric calculation: `true` or `false`
     */
    ipV6Traffic?: boolean;
    /**
     * The status of load actions in the metric calculation: `true` or `false`
     */
    loadAction?: boolean;
    /**
     * Only actions coming from this OS family are included in the metric calculation.
     */
    osFamily?: string;
    /**
     * Only actions coming from this OS version are included in the metric calculation.
     */
    osVersion?: string;
    /**
     * The status of actions coming from real users in the metric calculation: `true` or `false`
     */
    realUser?: boolean;
    /**
     * Only actions of users from this region are included in the metric calculation. Specify geolocation ID here.
     */
    region?: string;
    /**
     * The status of actions coming from robots in the metric calculation: `true` or `false`
     */
    robot?: boolean;
    /**
     * The status of actions coming from synthetic monitors in the metric calculation: `true` or `false`
     */
    synthetic?: boolean;
    /**
     * Only actions on the specified group of views are included in the metric calculation.
     */
    targetViewGroup?: string;
    /**
     * Specifies the match type of the view group filter, e.g. using Contains or Equals. Defaults to Equals.
     */
    targetViewGroupNameMatchType?: string;
    /**
     * Only actions on the specified view are included in the metric calculation.
     */
    targetViewName?: string;
    /**
     * Specifies the match type of the view name filter, e.g. using Contains or Equals. Defaults to Equals.
     */
    targetViewNameMatchType?: string;
    /**
     * Only actions with this name are included in the metric calculation.
     */
    userActionName?: string;
    /**
     * The definition of a calculated web metric.
     */
    userActionProperties?: outputs.CalculatedWebMetricUserActionFilterUserActionProperty[];
    /**
     * The status of xhr actions in the metric calculation: `true` or `false`
     */
    xhrAction?: boolean;
    /**
     * The status of route actions in the metric calculation: `true` or `false`
     */
    xhrRouteChangeAction?: boolean;
}
export interface CalculatedWebMetricUserActionFilterUserActionProperty {
    /**
     * User Action Property
     */
    properties?: outputs.CalculatedWebMetricUserActionFilterUserActionPropertyProperty[];
}
export interface CalculatedWebMetricUserActionFilterUserActionPropertyProperty {
    /**
     * Only actions that have a value greater than or equal to this are included in the metric calculation.
     */
    from?: number;
    /**
     * The key of the action property we're checking.
     */
    key?: string;
    /**
     * Specifies the match type of a string filter, e.g. using Contains or Equals.
     */
    matchType?: string;
    /**
     * Only actions that have a value less than or equal to this are included in the metric calculation.
     */
    to?: number;
    /**
     * Only actions that have this value in the specified property are included in the metric calculation.
     */
    value?: string;
}
export interface CloudappWorkloaddetectionCloudFoundry {
    /**
     * This setting is enabled (`true`) or disabled (`false`)
     */
    enabled: boolean;
}
export interface CloudappWorkloaddetectionDocker {
    /**
     * This setting is enabled (`true`) or disabled (`false`)
     */
    enabled: boolean;
}
export interface CloudappWorkloaddetectionKubernetes {
    /**
     * This setting is enabled (`true`) or disabled (`false`)
     */
    enabled: boolean;
    /**
     * Define rules to merge similar Kubernetes workloads into process groups.
     *
     *  You can use workload properties like namespace name, base pod name or container name as well as the [environment variables DT_RELEASE_STAGE and DT_RELEASE_PRODUCT](https://dt-url.net/sb02v2a) for grouping processes of similar workloads. The first applicable rule will be applied. If no rule matches, “Namespace name” + “Base pod name” + “Container name” is used as fallback.
     */
    filters?: outputs.CloudappWorkloaddetectionKubernetesFilters;
}
export interface CloudappWorkloaddetectionKubernetesFilters {
    filters: outputs.CloudappWorkloaddetectionKubernetesFiltersFilter[];
}
export interface CloudappWorkloaddetectionKubernetesFiltersFilter {
    /**
     * This setting is enabled (`true`) or disabled (`false`)
     */
    enabled: boolean;
    /**
     * ID calculation based on
     */
    inclusionToggles: outputs.CloudappWorkloaddetectionKubernetesFiltersFilterInclusionToggles;
    /**
     * When namespace
     */
    matchFilter: outputs.CloudappWorkloaddetectionKubernetesFiltersFilterMatchFilter;
}
export interface CloudappWorkloaddetectionKubernetesFiltersFilterInclusionToggles {
    /**
     * E.g. "cloud-credential-operator-" for "cloud-credential-operator-5ff6dbff57-gszgq"
     */
    incBasepod: boolean;
    /**
     * Container name
     */
    incContainer: boolean;
    /**
     * Namespace name
     */
    incNamespace: boolean;
    /**
     * If Product is enabled and has no value, it defaults to Base pod name
     */
    incProduct: boolean;
    /**
     * Stage
     */
    incStage: boolean;
}
export interface CloudappWorkloaddetectionKubernetesFiltersFilterMatchFilter {
    /**
     * Possible Values: `CONTAINS`, `ENDS`, `EQUALS`, `EXISTS`, `NOT_CONTAINS`, `NOT_ENDS`, `NOT_EQUALS`, `NOT_STARTS`, `STARTS`
     */
    matchOperator: string;
    /**
     * Namespace name
     */
    namespace?: string;
}
export interface CloudappWorkloaddetectionServerless {
    /**
     * This setting is enabled (`true`) or disabled (`false`)
     */
    enabled: boolean;
}
export interface CredentialsAllowedEntities {
    /**
     * The set of entities allowed to use the credential.
     */
    entities: outputs.CredentialsAllowedEntitiesEntity[];
}
export interface CredentialsAllowedEntitiesEntity {
    /**
     * ID of the entity
     */
    id?: string;
    /**
     * Type of entity. Possible values: `USER`, `APPLICATION`, `UNKNOWN`
     */
    type?: string;
}
export interface CredentialsCredentialUsageSummary {
    /**
     * The number of uses
     */
    count: number;
    /**
     * Type of usage, `HTTP_MONITOR` or `BROWSER_MONITOR`
     */
    type: string;
}
export interface CredentialsExternal {
    certificate?: string;
    /**
     * Required for Azure Client Secret. No further documentation available
     */
    clientSecret?: string;
    /**
     * Required for Azure Client Secret. No further documentation available
     */
    clientid?: string;
    /**
     * No documentation available
     */
    credentialsUsedForExternalSynchronizations?: string[];
    /**
     * No documentation available
     */
    passwordSecretName?: string;
    pathToCredentials?: string;
    roleid?: string;
    secretid?: string;
    /**
     * Required for Azure Client Secret. No further documentation available
     */
    tenantid?: string;
    /**
     * No documentation available
     */
    tokenSecretName?: string;
    /**
     * No documentation available
     */
    usernameSecretName?: string;
    vaultNamespace?: string;
    /**
     * No documentation available
     */
    vaultUrl?: string;
}
export interface CustomAnomaliesDimension {
    /**
     * A generic definition for a filter
     */
    dimensions?: outputs.CustomAnomaliesDimensionDimension[];
    /**
     * A filter for the metrics entity dimensions
     */
    entities?: outputs.CustomAnomaliesDimensionEntity[];
    /**
     * A filter for the metrics string dimensions
     */
    strings?: outputs.CustomAnomaliesDimensionString[];
}
export interface CustomAnomaliesDimensionDimension {
    /**
     * No documentation available
     */
    index?: number;
    /**
     * The dimensions key on the metric
     */
    key?: string;
    /**
     * No documentation available
     */
    name?: string;
    /**
     * Defines the actual set of fields depending on the value
     */
    type: string;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
}
export interface CustomAnomaliesDimensionEntity {
    /**
     * A filter for a string value based on the given operator
     */
    filter: outputs.CustomAnomaliesDimensionEntityFilter;
    /**
     * The dimensions key on the metric
     */
    key?: string;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
}
export interface CustomAnomaliesDimensionEntityFilter {
    /**
     * The operator to match on
     */
    operator: string;
    /**
     * The value to match on
     */
    value: string;
}
export interface CustomAnomaliesDimensionString {
    /**
     * A filter for a string value based on the given operator
     */
    filter: outputs.CustomAnomaliesDimensionStringFilter;
    /**
     * No documentation available
     */
    index?: number;
    /**
     * The dimensions key on the metric
     */
    key?: string;
    /**
     * No documentation available
     */
    name?: string;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
}
export interface CustomAnomaliesDimensionStringFilter {
    /**
     * The operator to match on
     */
    operator: string;
    /**
     * The value to match on
     */
    value: string;
}
export interface CustomAnomaliesScope {
    /**
     * A scope filter for the related custom device group name
     */
    customDeviceGroupNames?: outputs.CustomAnomaliesScopeCustomDeviceGroupName[];
    /**
     * A scope filter for a monitored entity identifier
     */
    entities?: outputs.CustomAnomaliesScopeEntity[];
    /**
     * A scope filter for the related host group name
     */
    hostGroupNames?: outputs.CustomAnomaliesScopeHostGroupName[];
    /**
     * A scope filter for the related host name
     */
    hostNames?: outputs.CustomAnomaliesScopeHostName[];
    /**
     * A scope filter for a management zone identifier
     */
    managementZones?: outputs.CustomAnomaliesScopeManagementZone[];
    /**
     * A scope filter for a monitored entity name
     */
    names?: outputs.CustomAnomaliesScopeName[];
    /**
     * A scope filter for a process group identifier
     */
    processGroupIds?: outputs.CustomAnomaliesScopeProcessGroupId[];
    /**
     * A scope filter for the related process group name
     */
    processGroupNames?: outputs.CustomAnomaliesScopeProcessGroupName[];
    /**
     * A generic scope filter
     */
    scopes?: outputs.CustomAnomaliesScopeScope[];
    /**
     * A scope filter for tags on entities
     */
    tags?: outputs.CustomAnomaliesScopeTag[];
}
export interface CustomAnomaliesScopeCustomDeviceGroupName {
    /**
     * A filter for a string value based on the given operator
     */
    filter: outputs.CustomAnomaliesScopeCustomDeviceGroupNameFilter;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
}
export interface CustomAnomaliesScopeCustomDeviceGroupNameFilter {
    /**
     * The operator to match on
     */
    operator: string;
    /**
     * The value to match on
     */
    value: string;
}
export interface CustomAnomaliesScopeEntity {
    /**
     * The monitored entities id to match on
     */
    id: string;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
}
export interface CustomAnomaliesScopeHostGroupName {
    /**
     * A filter for a string value based on the given operator
     */
    filter: outputs.CustomAnomaliesScopeHostGroupNameFilter;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
}
export interface CustomAnomaliesScopeHostGroupNameFilter {
    /**
     * The operator to match on
     */
    operator: string;
    /**
     * The value to match on
     */
    value: string;
}
export interface CustomAnomaliesScopeHostName {
    /**
     * A filter for a string value based on the given operator
     */
    filter: outputs.CustomAnomaliesScopeHostNameFilter;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
}
export interface CustomAnomaliesScopeHostNameFilter {
    /**
     * The operator to match on
     */
    operator: string;
    /**
     * The value to match on
     */
    value: string;
}
export interface CustomAnomaliesScopeManagementZone {
    /**
     * The management zone id to match on
     */
    id?: string;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
}
export interface CustomAnomaliesScopeName {
    /**
     * A filter for a string value based on the given operator
     */
    filter: outputs.CustomAnomaliesScopeNameFilter;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
}
export interface CustomAnomaliesScopeNameFilter {
    /**
     * The operator to match on
     */
    operator: string;
    /**
     * The value to match on
     */
    value: string;
}
export interface CustomAnomaliesScopeProcessGroupId {
    /**
     * The process groups id to match on
     */
    id: string;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
}
export interface CustomAnomaliesScopeProcessGroupName {
    /**
     * A filter for a string value based on the given operator
     */
    filter: outputs.CustomAnomaliesScopeProcessGroupNameFilter;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
}
export interface CustomAnomaliesScopeProcessGroupNameFilter {
    /**
     * The operator to match on
     */
    operator: string;
    /**
     * The value to match on
     */
    value: string;
}
export interface CustomAnomaliesScopeScope {
    /**
     * Defines the actual set of fields depending on the value
     */
    type: string;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
}
export interface CustomAnomaliesScopeTag {
    /**
     * A filter for a string value based on the given operator
     */
    filter: outputs.CustomAnomaliesScopeTagFilter;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
}
export interface CustomAnomaliesScopeTagFilter {
    /**
     * The origin of the tag, such as AWS or Cloud Foundry. Custom tags use the `CONTEXTLESS` value
     */
    context: string;
    /**
     * The key of the tag. Custom tags have the tag value here
     */
    key: string;
    /**
     * The value of the tag. Not applicable to custom tags
     */
    value?: string;
}
export interface CustomAnomaliesStrategy {
    /**
     * An auto-adaptive baseline strategy to detect anomalies within metrics that show a regular change over time, as the baseline is also updated automatically. An example is to detect an anomaly in the number of received network packets or within the number of user actions over time
     */
    auto?: outputs.CustomAnomaliesStrategyAuto;
    /**
     * A generic monitoring strategy
     */
    generics?: outputs.CustomAnomaliesStrategyGeneric[];
    /**
     * A static threshold monitoring strategy to alert on hard limits within a given metric. An example is the violation of a critical memory limit
     */
    static?: outputs.CustomAnomaliesStrategyStatic;
}
export interface CustomAnomaliesStrategyAuto {
    /**
     * The condition for the **threshold** value check: `ABOVE` or `BELOW`
     */
    alertCondition: string;
    /**
     * If true, also one-minute samples without data are counted as violating samples
     */
    alertingOnMissingData?: boolean;
    /**
     * The number of one-minute samples within the evaluation window that must go back to normal to close the event
     */
    dealertingSamples: number;
    /**
     * The number of one-minute samples that form the sliding evaluation window
     */
    samples: number;
    /**
     * Defines the factor of how many signal fluctuations are valid. Values above the baseline plus the signal fluctuation times the number of tolerated signal fluctuations are alerted
     */
    signalFluctuations: number;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
    /**
     * The number of one-minute samples within the evaluation window that must violate the threshold to trigger an event
     */
    violatingSamples: number;
}
export interface CustomAnomaliesStrategyGeneric {
    /**
     * Defines the actual set of fields depending on the value
     */
    type: string;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
}
export interface CustomAnomaliesStrategyStatic {
    /**
     * The condition for the **threshold** value check: `ABOVE` or `BELOW`
     */
    alertCondition: string;
    /**
     * If true, also one-minute samples without data are counted as violating samples
     */
    alertingOnMissingData?: boolean;
    /**
     * The number of one-minute samples within the evaluation window that must go back to normal to close the event
     */
    dealertingSamples: number;
    /**
     * The number of one-minute samples that form the sliding evaluation window
     */
    samples: number;
    /**
     * The value of the static threshold based on the specified unit
     */
    threshold: number;
    /**
     * The unit of the threshold, matching the metric definition
     */
    unit: string;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
    /**
     * The number of one-minute samples within the evaluation window that must violate the threshold to trigger an event
     */
    violatingSamples: number;
}
export interface CustomAppAnomaliesErrorRateIncrease {
    /**
     * Possible Values: `Auto`, `Fixed`
     */
    detectionMode?: string;
    /**
     * This setting is enabled (`true`) or disabled (`false`)
     */
    enabled: boolean;
    /**
     * Alert if the percentage of user actions affected by reported errors exceeds **both** the absolute threshold and the relative threshold
     */
    errorRateIncreaseAuto?: outputs.CustomAppAnomaliesErrorRateIncreaseErrorRateIncreaseAuto;
    /**
     * Alert if the custom reported error rate threshold is exceeded during any 5-minute period
     */
    errorRateIncreaseFixed?: outputs.CustomAppAnomaliesErrorRateIncreaseErrorRateIncreaseFixed;
}
export interface CustomAppAnomaliesErrorRateIncreaseErrorRateIncreaseAuto {
    /**
     * Absolute threshold
     */
    thresholdAbsolute: number;
    /**
     * Relative threshold
     */
    thresholdRelative: number;
}
export interface CustomAppAnomaliesErrorRateIncreaseErrorRateIncreaseFixed {
    /**
     * Possible Values: `Low`, `Medium`, `High`
     */
    sensitivity: string;
    /**
     * Absolute threshold
     */
    thresholdAbsolute: number;
}
export interface CustomAppAnomaliesSlowUserActions {
    /**
     * Possible Values: `Auto`, `Fixed`
     */
    detectionMode?: string;
    /**
     * This setting is enabled (`true`) or disabled (`false`)
     */
    enabled: boolean;
    /**
     * no documentation available
     */
    slowUserActionsAuto?: outputs.CustomAppAnomaliesSlowUserActionsSlowUserActionsAuto;
    /**
     * no documentation available
     */
    slowUserActionsFixed?: outputs.CustomAppAnomaliesSlowUserActionsSlowUserActionsFixed;
}
export interface CustomAppAnomaliesSlowUserActionsSlowUserActionsAuto {
    /**
     * To avoid over-alerting do not alert for low traffic applications with less than
     */
    durationAvoidOveralerting: outputs.CustomAppAnomaliesSlowUserActionsSlowUserActionsAutoDurationAvoidOveralerting;
    /**
     * Alert if the action duration of all user actions degrades beyond **both** the absolute and relative threshold:
     */
    durationThresholdAll: outputs.CustomAppAnomaliesSlowUserActionsSlowUserActionsAutoDurationThresholdAll;
    /**
     * Alert if the action duration of the slowest 10% of user actions degrades beyond **both** the absolute and relative threshold:
     */
    durationThresholdSlowest: outputs.CustomAppAnomaliesSlowUserActionsSlowUserActionsAutoDurationThresholdSlowest;
}
export interface CustomAppAnomaliesSlowUserActionsSlowUserActionsAutoDurationAvoidOveralerting {
    /**
     * no documentation available
     */
    minActionRate: number;
}
export interface CustomAppAnomaliesSlowUserActionsSlowUserActionsAutoDurationThresholdAll {
    /**
     * Absolute threshold
     */
    durationThreshold: number;
    /**
     * Relative threshold
     */
    slowdownPercentage: number;
}
export interface CustomAppAnomaliesSlowUserActionsSlowUserActionsAutoDurationThresholdSlowest {
    /**
     * Absolute threshold
     */
    durationThreshold: number;
    /**
     * Relative threshold
     */
    slowdownPercentage: number;
}
export interface CustomAppAnomaliesSlowUserActionsSlowUserActionsFixed {
    /**
     * To avoid over-alerting do not alert for low traffic applications with less than
     */
    durationAvoidOveralerting: outputs.CustomAppAnomaliesSlowUserActionsSlowUserActionsFixedDurationAvoidOveralerting;
    /**
     * Alert if the action duration of all user actions degrades beyond the absolute threshold:
     */
    durationThresholdAllFixed: outputs.CustomAppAnomaliesSlowUserActionsSlowUserActionsFixedDurationThresholdAllFixed;
    /**
     * Alert if the action duration of the slowest 10% of user actions degrades beyond the absolute threshold:
     */
    durationThresholdSlowest: outputs.CustomAppAnomaliesSlowUserActionsSlowUserActionsFixedDurationThresholdSlowest;
    /**
     * Possible Values: `Medium`, `High`, `Low`
     */
    sensitivity: string;
}
export interface CustomAppAnomaliesSlowUserActionsSlowUserActionsFixedDurationAvoidOveralerting {
    /**
     * no documentation available
     */
    minActionRate: number;
}
export interface CustomAppAnomaliesSlowUserActionsSlowUserActionsFixedDurationThresholdAllFixed {
    /**
     * Absolute threshold
     */
    durationThreshold: number;
}
export interface CustomAppAnomaliesSlowUserActionsSlowUserActionsFixedDurationThresholdSlowest {
    /**
     * Absolute threshold
     */
    durationThreshold: number;
}
export interface CustomAppAnomaliesUnexpectedHighLoad {
    /**
     * This setting is enabled (`true`) or disabled (`false`)
     */
    enabled: boolean;
    /**
     * Dynatrace learns your typical application traffic over an observation period of one week. Depending on this expected value Dynatrace detects abnormal traffic spikes within your application.
     */
    thresholdPercentage?: number;
}
export interface CustomAppAnomaliesUnexpectedLowLoad {
    /**
     * This setting is enabled (`true`) or disabled (`false`)
     */
    enabled: boolean;
    /**
     * Dynatrace learns your typical application traffic over an observation period of one week. Depending on this expected value Dynatrace detects abnormal traffic drops within your application.
     */
    thresholdPercentage?: number;
}
export interface CustomAppCrashRateCrashRateIncrease {
    /**
     * Alert crash rate increases when auto-detected baseline is exceeded by a certain number of users
     */
    crashRateIncreaseAuto?: outputs.CustomAppCrashRateCrashRateIncreaseCrashRateIncreaseAuto;
    /**
     * Alert crash rate increases when the defined threshold is exceeded by a certain number of users
     */
    crashRateIncreaseFixed?: outputs.CustomAppCrashRateCrashRateIncreaseCrashRateIncreaseFixed;
    /**
     * Possible Values: `Auto`, `Fixed`
     */
    detectionMode?: string;
    /**
     * This setting is enabled (`true`) or disabled (`false`)
     */
    enabled: boolean;
}
export interface CustomAppCrashRateCrashRateIncreaseCrashRateIncreaseAuto {
    /**
     * Dynatrace learns the typical crash rate for all app versions and will create an alert if the baseline is violated by more than a specified threshold. Analysis happens based on a sliding window of 10 minutes.
     */
    baselineViolationPercentage: number;
    /**
     * Amount of users
     */
    concurrentUsers: number;
    /**
     * Possible Values: `Low`, `Medium`, `High`
     */
    sensitivity: string;
}
export interface CustomAppCrashRateCrashRateIncreaseCrashRateIncreaseFixed {
    /**
     * Absolute threshold
     */
    absoluteCrashRate: number;
    /**
     * Amount of users
     */
    concurrentUsers: number;
}
export interface CustomAppEnablementRum {
    /**
     * (Field has overlap with `dynatrace.MobileApplication`) Percentage of user sessions captured and analyzed. By default, Dynatrace captures all user actions and user sessions for analysis. This approach ensures complete insight into your application’s performance and customer experience. You can optionally reduce the granularity of user-action and user-session analysis by capturing a lower percentage of user sessions. While this approach can reduce monitoring costs, it also results in lower visibility into how your customers are using your applications. For example, a setting of 10% results in Dynatrace analyzing only every tenth user session.
     */
    costAndTrafficControl: number;
    /**
     * This setting is enabled (`true`) or disabled (`false`)
     */
    enabled: boolean;
}
export interface CustomServiceRule {
    /**
     * Additional annotations filter of the rule. Only classes where all listed annotations are available in the class itself or any of its superclasses are instrumented. Not applicable to PHP
     */
    annotations?: string[];
    /**
     * The fully qualified class or interface to instrument (or a substring if matching to a string). Required for Java and .NET custom services. Not applicable to PHP
     */
    class?: outputs.CustomServiceRuleClass;
    /**
     * Rule enabled/disabled
     */
    enabled: boolean;
    /**
     * The PHP file containing the class or methods to instrument. Required for PHP custom service. Not applicable to Java and .NET
     */
    file?: outputs.CustomServiceRuleFile;
    /**
     * methods to instrument
     */
    methods: outputs.CustomServiceRuleMethod[];
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
}
export interface CustomServiceRuleClass {
    /**
     * Matcher applying to the class name (ENDS*WITH, EQUALS or STARTS*WITH). STARTS_WITH can only be used if there is at least one annotation defined. Default value is EQUALS
     */
    match?: string;
    /**
     * The full name of the class / the name to match the class name with
     */
    name: string;
}
export interface CustomServiceRuleFile {
    /**
     * Matcher applying to the file name (ENDS*WITH, EQUALS or STARTS*WITH). Default value is ENDS_WITH (if applicable)
     */
    match?: string;
    /**
     * The full name of the file / the name to match the file name with
     */
    name: string;
}
export interface CustomServiceRuleMethod {
    /**
     * Fully qualified types of argument the method expects
     */
    arguments?: string[];
    /**
     * The ID of the method rule
     */
    id: string;
    /**
     * The modifiers of the method rule. Possible values are `ABSTRACT`, `EXTERN`, `FINAL`, `NATIVE` and `STATIC`
     */
    modifiers?: string[];
    /**
     * The method to instrument
     */
    name: string;
    /**
     * Fully qualified type the method returns
     */
    returns?: string;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
    /**
     * The visibility of the method rule. Possible values are `INTERNAL`, `PACKAGE_PROTECTED`, `PRIVATE`, `PROTECTED` and `PUBLIC`
     */
    visibility?: string;
}
export interface CustomTagsTags {
    /**
     * A Tag Filter
     */
    filters?: outputs.CustomTagsTagsFilter[];
}
export interface CustomTagsTagsFilter {
    /**
     * The origin of the tag, such as AWS or Cloud Foundry. Custom tags use the `CONTEXTLESS` value
     */
    context: string;
    /**
     * The key of the tag. Custom tags have the tag value here
     */
    key: string;
    /**
     * The value of the tag. Not applicable to custom tags
     */
    value?: string;
}
export interface DashboardDashboardMetadata {
    /**
     * The tile uses consistent colors when rendering its content
     */
    consistentColors?: boolean;
    /**
     * Dashboard filter configuration of a dashboard
     */
    dynamicFilters?: outputs.DashboardDashboardMetadataDynamicFilters;
    /**
     * Global filter Settings for the Dashboard
     */
    filter?: outputs.DashboardDashboardMetadataFilter;
    /**
     * the name of the dashboard
     */
    name: string;
    /**
     * the owner of the dashboard
     */
    owner: string;
    /**
     * the dashboard is a preset (`true`) or not (`false`). Default is `false`.
     */
    preset?: boolean;
    /**
     * the dashboard is shared (`true`) or private (`false`)
     *
     * @deprecated Please use the resource `dynatrace.DashboardSharing` to configure share settings
     */
    shared?: boolean;
    /**
     * represents sharing configuration of a dashboard
     *
     * @deprecated Please use the resource `dynatrace.DashboardSharing` to configure share settings
     */
    sharingDetails?: outputs.DashboardDashboardMetadataSharingDetails;
    /**
     * a set of tags assigned to the dashboard
     */
    tags?: string[];
    /**
     * No documentation available
     */
    tilesNameSize?: string;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
    /**
     * a set of all possible global dashboard filters that can be applied to dashboard
     */
    validFilterKeys?: string[];
}
export interface DashboardDashboardMetadataDynamicFilters {
    /**
     * A set of all possible global dashboard filters that can be applied to a dashboard
     */
    filters: string[];
    /**
     * A set of generic tag filters that can be applied to a dashboard
     */
    genericTagFilters?: outputs.DashboardDashboardMetadataDynamicFiltersGenericTagFilters;
    /**
     * A set of entities applied for tag filter suggestions. You can fetch the list of possible values with the [GET all entity types](https://dt-url.net/dw03s7h)request.
     *
     * Only applicable if the **filters** set includes `TAG_KEY:<tagname>`
     */
    tagSuggestionTypes?: string[];
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
}
export interface DashboardDashboardMetadataDynamicFiltersGenericTagFilters {
    filters: outputs.DashboardDashboardMetadataDynamicFiltersGenericTagFiltersFilter[];
}
export interface DashboardDashboardMetadataDynamicFiltersGenericTagFiltersFilter {
    /**
     * Entity types affected by tag
     */
    entityTypes: string[];
    /**
     * The display name used to identify this generic filter
     */
    name?: string;
    /**
     * The entity type for which the suggestions should be provided.
     */
    suggestionsFromEntityType?: string;
    /**
     * The tag key for this filter
     */
    tagKey?: string;
}
export interface DashboardDashboardMetadataFilter {
    /**
     * the management zone this dashboard applies to
     */
    managementZones?: outputs.DashboardDashboardMetadataFilterManagementZone[];
    /**
     * the default timeframe of the dashboard
     */
    timeframe?: string;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
}
export interface DashboardDashboardMetadataFilterManagementZone {
    /**
     * a short description of the Dynatrace entity
     */
    description?: string;
    /**
     * the ID of the Dynatrace entity
     */
    id: string;
    /**
     * the name of the Dynatrace entity
     */
    name?: string;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
}
export interface DashboardDashboardMetadataSharingDetails {
    /**
     * If `true`, the dashboard is shared via link and authenticated users with the link can view
     */
    linkShared?: boolean;
    /**
     * If `true`, the dashboard is published to anyone on this environment
     */
    published?: boolean;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
}
export interface DashboardMetadata {
    /**
     * Dynatrace server version
     */
    clusterVersion?: string;
    /**
     * A Sorted list of the version numbers of the configuration
     */
    configurationVersions?: number[];
    /**
     * A Sorted list of the version numbers of the configuration
     */
    currentConfigurationVersions?: string[];
}
export interface DashboardSharingPermissions {
    /**
     * Access permissions of the dashboard
     */
    permissions?: outputs.DashboardSharingPermissionsPermission[];
}
export interface DashboardSharingPermissionsPermission {
    /**
     * The ID of the user or group to whom the permission is granted.
     */
    id?: string;
    /**
     * The level of the permission:
     */
    level: string;
    /**
     * The type of the permission:
     */
    type: string;
}
export interface DashboardSharingPublic {
    /**
     * A list of management zones that can display data on the publicly shared dashboard.
     */
    managementZones: string[];
    /**
     * A list of URLs for anonymous access to the dashboard indexed by management zone name
     */
    urls: {
        [key: string]: string;
    };
}
export interface DashboardTile {
    /**
     * The list of Dynatrace entities, assigned to the tile
     */
    assignedEntities?: string[];
    /**
     * Auto Refresh is disabled (`true`)
     */
    autoRefreshDisabled?: boolean;
    /**
     * the position and size of a tile
     */
    bounds?: outputs.DashboardTileBounds;
    chartVisible?: boolean;
    /**
     * The tile is configured and ready to use (`true`) or just placed on the dashboard (`false`)
     */
    configured?: boolean;
    /**
     * The name of the tile, set by user
     */
    customName?: string;
    /**
     * Include (`false') or exclude (`true`) maintenance windows from availability calculations
     */
    excludeMaintenanceWindows?: boolean;
    /**
     * is filter applied to a tile. It overrides dashboard's filter
     */
    filter?: outputs.DashboardTileFilter;
    /**
     * the position and size of a tile
     */
    filterConfig?: outputs.DashboardTileFilterConfig;
    /**
     * The limit of the results, if not set will use the default value of the system
     */
    limit?: number;
    /**
     * The markdown-formatted content of the tile
     */
    markdown?: string;
    /**
     * The metric assigned to the tile
     */
    metric?: string;
    /**
     * the name of the tile
     */
    name: string;
    /**
     * The size of the tile name. Possible values are `small`, `medium` and `large`.
     */
    nameSize?: string;
    /**
     * A [user session query](https://www.dynatrace.com/support/help/shortlink/usql-info) executed by the tile
     */
    query?: string;
    /**
     * the type of the tile. Must be either `APPLICATION_WORLDMAP`, `RESOURCES`, `THIRD_PARTY_MOST_ACTIVE`, `UEM_CONVERSIONS_PER_GOAL`, `PROCESS_GROUPS_ONE` or `HOST` .
     */
    tileType: string;
    /**
     * The comparison timeframe of the query. If specified, you additionally get the results of the same query with the specified time shift
     */
    timeFrameShift?: string;
    /**
     * The attribute `type` exists for backwards compatibilty. Usage is discouraged. You should use `visualization` instead.
     */
    type?: string;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
    /**
     * The visualization of the tile. Possible values are: `COLUMN_CHART`, `FUNNEL`, `LINE_CHART`, `PIE_CHART`, `SINGLE_VALUE`, `TABLE`
     */
    visualization?: string;
    /**
     * Configuration of a User session query visualization tile
     */
    visualizationConfig?: outputs.DashboardTileVisualizationConfig;
}
export interface DashboardTileBounds {
    /**
     * the height of the tile, in pixels
     */
    height: number;
    /**
     * the horizontal distance from the top left corner of the dashboard to the top left corner of the tile, in pixels
     */
    left: number;
    /**
     * the vertical distance from the top left corner of the dashboard to the top left corner of the tile, in pixels
     */
    top: number;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
    /**
     * the width of the tile, in pixels
     */
    width: number;
}
export interface DashboardTileFilter {
    /**
     * the management zone this tile applies to
     */
    managementZones?: outputs.DashboardTileFilterManagementZone[];
    /**
     * the default timeframe of the tile
     */
    timeframe?: string;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
}
export interface DashboardTileFilterConfig {
    /**
     * Configuration of a custom chart
     */
    chartConfig?: outputs.DashboardTileFilterConfigChartConfig;
    /**
     * The name of the tile, set by user
     */
    customName: string;
    /**
     * The default name of the tile
     */
    defaultName: string;
    /**
     * Configuration of a custom chart
     */
    filters?: outputs.DashboardTileFilterConfigFilters;
    /**
     * The type of the filter. Possible values are `ALB`, `APPLICATION`, `APPLICATION_METHOD`, `APPMON`, `ASG`, `AWS_CREDENTIALS`, `AWS_CUSTOM_SERVICE`, `AWS_LAMBDA_FUNCTION`, `CLOUD_APPLICATION`, `CLOUD_APPLICATION_INSTANCE`, `CLOUD_APPLICATION_NAMESPACE`, `CONTAINER_GROUP_INSTANCE`, `CUSTOM_APPLICATION`, `CUSTOM_DEVICES`, `CUSTOM_SERVICES`, `DATABASE`, `DATABASE_KEY_REQUEST`, `DCRUM_APPLICATION`, `DCRUM_ENTITY`, `DYNAMO_DB`, `EBS`, `EC2`, `ELB`, `ENVIRONMENT`, `ESXI`, `EXTERNAL_SYNTHETIC_TEST`, `GLOBAL_BACKGROUND_ACTIVITY`, `HOST`, `IOT`, `KUBERNETES_CLUSTER`, `KUBERNETES_NODE`, `MDA_SERVICE`, `MIXED`, `MOBILE_APPLICATION`, `MONITORED_ENTITY`, `NLB`, `PG_BACKGROUND_ACTIVITY`, `PROBLEM`, `PROCESS_GROUP_INSTANCE`, `RDS`, `REMOTE_PLUGIN`, `SERVICE`, `SERVICE_KEY_REQUEST`, `SYNTHETIC_BROWSER_MONITOR`, `SYNTHETIC_HTTPCHECK`, `SYNTHETIC_HTTPCHECK_STEP`, `SYNTHETIC_LOCATION`, `SYNTHETIC_TEST`, `SYNTHETIC_TEST_STEP`, `UI_ENTITY`, `VIRTUAL_MACHINE`, `WEB_CHECK`.
     */
    type: string;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
}
export interface DashboardTileFilterConfigChartConfig {
    /**
     * The optional custom y-axis limits
     */
    axisLimits?: {
        [key: string]: number;
    };
    /**
     * Either one of `Bit`, `BitPerHour`, `BitPerMinute`, `BitPerSecond`, `Byte`, `BytePerHour`, `BytePerMinute`, `BytePerSecond`, `Cores`, `Count`, `Day`, `DecibelMilliWatt`, `GibiByte`, `Giga`, `GigaByte`, `Hour`, `KibiByte`, `KibiBytePerHour`, `KibiBytePerMinute`, `KibiBytePerSecond`, `Kilo`, `KiloByte`, `KiloBytePerHour`, `KiloBytePerMinute`, `KiloBytePerSecond`, `MebiByte`, `MebiBytePerHour`, `MebiBytePerMinute`, `MebiBytePerSecond`, `Mega`, `MegaByte`, `MegaBytePerHour`, `MegaBytePerMinute`, `MegaBytePerSecond`, `MicroSecond`, `MilliCores`, `MilliSecond`, `MilliSecondPerMinute`, `Minute`, `Month`, `NanoSecond`, `NanoSecondPerMinute`, `NotApplicable`, `PerHour`, `PerMinute`, `PerSecond`, `Percent`, `Pixel`, `Promille`, `Ratio`, `Second`, `State`, `Unspecified`, `Week`, `Year`
     */
    leftAxisCustomUnit?: string;
    /**
     * Defines if a legend should be shown
     */
    legend?: boolean;
    /**
     * Additional information about charted metric
     */
    resultMetadatas?: outputs.DashboardTileFilterConfigChartConfigResultMetadata[];
    /**
     * Either one of `Bit`, `BitPerHour`, `BitPerMinute`, `BitPerSecond`, `Byte`, `BytePerHour`, `BytePerMinute`, `BytePerSecond`, `Cores`, `Count`, `Day`, `DecibelMilliWatt`, `GibiByte`, `Giga`, `GigaByte`, `Hour`, `KibiByte`, `KibiBytePerHour`, `KibiBytePerMinute`, `KibiBytePerSecond`, `Kilo`, `KiloByte`, `KiloBytePerHour`, `KiloBytePerMinute`, `KiloBytePerSecond`, `MebiByte`, `MebiBytePerHour`, `MebiBytePerMinute`, `MebiBytePerSecond`, `Mega`, `MegaByte`, `MegaBytePerHour`, `MegaBytePerMinute`, `MegaBytePerSecond`, `MicroSecond`, `MilliCores`, `MilliSecond`, `MilliSecondPerMinute`, `Minute`, `Month`, `NanoSecond`, `NanoSecondPerMinute`, `NotApplicable`, `PerHour`, `PerMinute`, `PerSecond`, `Percent`, `Pixel`, `Promille`, `Ratio`, `Second`, `State`, `Unspecified`, `Week`, `Year`
     */
    rightAxisCustomUnit?: string;
    /**
     * A list of charted metrics
     */
    series?: outputs.DashboardTileFilterConfigChartConfigSeries[];
    /**
     * The type of the chart
     */
    type: string;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
}
export interface DashboardTileFilterConfigChartConfigResultMetadata {
    /**
     * Additional metadata for charted metric
     */
    configs?: outputs.DashboardTileFilterConfigChartConfigResultMetadataConfig[];
}
export interface DashboardTileFilterConfigChartConfigResultMetadataConfig {
    /**
     * The color of the metric in the chart, hex format
     */
    customColor?: string;
    /**
     * A generated key by the Dynatrace Server
     */
    key?: string;
    /**
     * The timestamp of the last metadata modification, in UTC milliseconds
     */
    lastModified?: number;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
}
export interface DashboardTileFilterConfigChartConfigSeries {
    /**
     * The charted aggregation of the metric
     */
    aggregation: string;
    aggregationRate?: string;
    /**
     * Configuration of the charted metric splitting
     */
    dimensions?: outputs.DashboardTileFilterConfigChartConfigSeriesDimension[];
    /**
     * The visualization of the timeseries chart
     */
    entityType: string;
    /**
     * The name of the charted metric
     */
    metric: string;
    /**
     * The charted percentile. Only applicable if the **aggregation** is set to `PERCENTILE`
     */
    percentile?: number;
    /**
     * Sort ascending (`true`) or descending (`false`)
     */
    sortAscending?: boolean;
    /**
     * Sort the column (`true`) or (`false`)
     */
    sortColumn?: boolean;
    /**
     * The visualization of the timeseries chart. Possible values are `AREA`, `BAR` and `LINE`.
     */
    type: string;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
}
export interface DashboardTileFilterConfigChartConfigSeriesDimension {
    entityDimension?: boolean;
    /**
     * The ID of the dimension by which the metric is split
     */
    id: string;
    /**
     * The name of the dimension by which the metric is split
     */
    name?: string;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
    /**
     * The splitting value
     */
    values?: string[];
}
export interface DashboardTileFilterConfigFilters {
    /**
     * the tiles this Dashboard consist of
     */
    filters?: outputs.DashboardTileFilterConfigFiltersFilter[];
}
export interface DashboardTileFilterConfigFiltersFilter {
    /**
     * The entity type (e.g. HOST, SERVICE, ...)
     */
    entityType: string;
    /**
     * the tiles this Dashboard consist of
     */
    matches?: outputs.DashboardTileFilterConfigFiltersFilterMatch[];
}
export interface DashboardTileFilterConfigFiltersFilterMatch {
    /**
     * The entity type (e.g. HOST, SERVICE, ...)
     */
    key: string;
    /**
     * the tiles this Dashboard consist of
     */
    values?: string[];
}
export interface DashboardTileFilterManagementZone {
    /**
     * a short description of the Dynatrace entity
     */
    description?: string;
    /**
     * the ID of the Dynatrace entity
     */
    id: string;
    /**
     * the name of the Dynatrace entity
     */
    name?: string;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
}
export interface DashboardTileVisualizationConfig {
    /**
     * The axis bucketing when enabled groups similar series in the same virtual axis
     */
    hasAxisBucketing?: boolean;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
}
export interface DashboardsAllowlistAllowlist {
    urlpatterns: outputs.DashboardsAllowlistAllowlistUrlpattern[];
}
export interface DashboardsAllowlistAllowlistUrlpattern {
    /**
     * Possible Values: `Equals`, `StartsWith`
     */
    rule: string;
    /**
     * Pattern
     */
    template: string;
}
export interface DashboardsGeneralDefaultDashboardList {
    defaultDashboards: outputs.DashboardsGeneralDefaultDashboardListDefaultDashboard[];
}
export interface DashboardsGeneralDefaultDashboardListDefaultDashboard {
    /**
     * Preset dashboard to show as default landing page
     */
    dashboard: string;
    /**
     * Show selected dashboard by default for this user group
     */
    userGroup: string;
}
export interface DashboardsPresetsDashboardPresetsList {
    dashboardPresets: outputs.DashboardsPresetsDashboardPresetsListDashboardPreset[];
}
export interface DashboardsPresetsDashboardPresetsListDashboardPreset {
    /**
     * Dashboard preset to limit visibility for
     */
    dashboardPreset: string;
    /**
     * User group to show selected dashboard preset to
     */
    userGroup: string;
}
export interface DataPrivacyDataCollection {
    /**
     * With [Data-collection and opt-in mode](https://dt-url.net/7l3p0p3h) enabled, Real User Monitoring data isn't captured until dtrum.enable() is called for specific user sessions.
     */
    optInModeEnabled: boolean;
}
export interface DataPrivacyDoNotTrack {
    /**
     * Comply with "Do Not Track" browser settings
     */
    complyWithDoNotTrack: boolean;
    /**
     * Possible Values: `Anonymous`, `Disable_rum`
     */
    doNotTrack?: string;
}
export interface DataPrivacyMasking {
    /**
     * Possible Values: `All`, `Public`
     *
     * @deprecated This property is not supported anymore by the Dynatrace REST API (since schema version 4)
     */
    ipAddressMasking?: string;
    /**
     * Dynatrace captures the IP addresses of your end-users to determine the regions from which they access your application. To learn more, visit [Mask IPs and GPS coordinates](https://dt-url.net/mask-end-users-ip-addresses).. Dynatrace also captures GPS data from mobile apps that provide their users with the option of sharing geolocation data. On the server side, Dynatrace captures IP addresses to enable detailed troubleshooting for Dynatrace service calls.
     *
     * Once enabled, IP address masking sets the last octet of monitored IPv4 addresses and the last 80 bits of IPv6 addresses to zeroes. GPS coordinates are rounded up to 1 decimal place (~10 km). This masking occurs in memory. Full IP addresses are never written to disk. Location lookups are made using anonymized IP addresses and GPS coordinates.
     *
     * @deprecated This property is not supported anymore by the Dynatrace REST API (since schema version 4)
     */
    ipAddressMaskingEnabled?: boolean;
    /**
     * Dynatrace captures the URIs and request headers sent from desktop and mobile browsers. Dynatrace also captures full URIs on the server-side to enable detailed performance analysis of your applications. For complete details, visit [Mask personal data in URIs](https://dt-url.net/mask-personal-data-in-URIs).. URIs and request headers contain personal data. When this setting is enabled, Dynatrace automatically detects UUIDs, credit card numbers, email addresses, IP addresses, and other IDs and replaces those values with placeholders. The personal data is then masked in PurePath analysis, error analysis, user action naming for RUM, and elsewhere in Dynatrace.
     */
    personalDataUriMaskingEnabled: boolean;
    /**
     * When Dynatrace detects a user action that triggers a page load or an AJAX/XHR action. To learn more about masking user actions, visit [Mask user actions](https://dt-url.net/mask-user-action).. When Dynatrace detects a user action that triggers a page load or an AJAX/XHR action, it constructs a name for the user action based on:
     *
     * - User event type (click on..., loading of page..., or keypress on...)
     * - Title, caption, label, value, ID, className, or other available property of the related HTML element (for example, an image, button, checkbox, or text input field).
     *
     * In most instances, the default approach to user-action naming works well, resulting in user-action names such as:
     *
     * - click on "Search" on page /search.html
     * - keypress on "Feedback" on page /contact.html
     * - touch on "Homescreen" of page /list.jsf
     *
     * In rare circumstances, confidential data (for example, email addresses, usernames, or account numbers) can be unintentionally included in user action names because the confidential data itself is included in an HTML element label, attribute, or other value (for example, click on "my Account Number: 1231231"...). If such confidential data appears in your application's user action names, enable the Mask user action names setting. This setting replaces specific HTML element names and values with generic HTML element names. With user-action name masking enabled, the user action names listed above appear as:
     *
     * - click on INPUT on page /search.html
     * - keypress on TEXTAREA on page /contact.html
     * - touch on DIV of page /list.jsf
     */
    userActionMaskingEnabled: boolean;
}
export interface DataPrivacyUserTracking {
    /**
     * When enabled, Dynatrace places a [persistent cookie](https://dt-url.net/313o0p4n) on all end-user devices to identify returning users.
     */
    persistentCookieEnabled: boolean;
}
export interface DatabaseAnomaliesDbConnectFailures {
    /**
     * Number of failed database connections during any **eval_period** minutes period to trigger an alert
     */
    connectionFailsCount?: number;
    /**
     * The *X* minutes time period during which the **connection*fails*count** is evaluated
     */
    evalPeriod?: number;
}
export interface DatabaseAnomaliesFailureRate {
    /**
     * Parameters of failure rate increase auto-detection. Example: If the expected error rate is 1.5%, and you set an absolute increase of 1%, and a relative increase of 50%, the thresholds will be:  Absolute: 1.5% + **1%** = 2.5%  Relative: 1.5% + 1.5% * **50%** = 2.25%
     */
    auto?: outputs.DatabaseAnomaliesFailureRateAuto;
    /**
     * Fixed thresholds for failure rate increase detection
     */
    thresholds?: outputs.DatabaseAnomaliesFailureRateThresholds;
}
export interface DatabaseAnomaliesFailureRateAuto {
    /**
     * Absolute increase of failing service calls to trigger an alert, %
     */
    absolute: number;
    /**
     * Relative increase of failing service calls to trigger an alert, %
     */
    relative: number;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
}
export interface DatabaseAnomaliesFailureRateThresholds {
    /**
     * Sensitivity of the threshold.  With `low` sensitivity, high statistical confidence is used. Brief violations (for example, due to a surge in load) won't trigger alerts.  With `high` sensitivity, no statistical confidence is used. Each violation triggers alert
     */
    sensitivity: string;
    /**
     * Failure rate during any 5-minute period to trigger an alert, %
     */
    threshold: number;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
}
export interface DatabaseAnomaliesLoad {
    /**
     * The configuration of traffic drops detection
     */
    drops?: outputs.DatabaseAnomaliesLoadDrops;
    /**
     * The configuration of traffic spikes detection
     */
    spikes?: outputs.DatabaseAnomaliesLoadSpikes;
}
export interface DatabaseAnomaliesLoadDrops {
    /**
     * Alert if the service stays in abnormal state for at least *X* minutes
     */
    minutes?: number;
    /**
     * Alert if the observed load is more than *X* % of the expected value
     */
    percent?: number;
}
export interface DatabaseAnomaliesLoadSpikes {
    /**
     * Alert if the service stays in abnormal state for at least *X* minutes
     */
    minutes?: number;
    /**
     * Alert if the observed load is more than *X* % of the expected value
     */
    percent?: number;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
}
export interface DatabaseAnomaliesResponseTime {
    /**
     * Parameters of the response time degradation auto-detection. Violation of **any** criterion triggers an alert
     */
    auto?: outputs.DatabaseAnomaliesResponseTimeAuto;
    /**
     * Fixed thresholds for response time degradation detection
     */
    thresholds?: outputs.DatabaseAnomaliesResponseTimeThresholds;
}
export interface DatabaseAnomaliesResponseTimeAuto {
    /**
     * Minimal service load to detect response time degradation. Response time degradation of services with smaller load won't trigger alerts. Possible values are `FIFTEEN_REQUESTS_PER_MINUTE`, `FIVE_REQUESTS_PER_MINUTE`, `ONE_REQUEST_PER_MINUTE` and `TEN_REQUESTS_PER_MINUTE`
     */
    load: string;
    /**
     * Alert if the response time degrades by more than *X* milliseconds
     */
    milliseconds: number;
    /**
     * Alert if the response time degrades by more than *X* %
     */
    percent: number;
    /**
     * Alert if the response time of the slowest 10% degrades by more than *X* milliseconds
     */
    slowestMilliseconds: number;
    /**
     * Alert if the response time of the slowest 10% degrades by more than *X* milliseconds
     */
    slowestPercent: number;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
}
export interface DatabaseAnomaliesResponseTimeThresholds {
    /**
     * Minimal service load to detect response time degradation. Response time degradation of services with smaller load won't trigger alerts. Possible values are `FIFTEEN_REQUESTS_PER_MINUTE`, `FIVE_REQUESTS_PER_MINUTE`, `ONE_REQUEST_PER_MINUTE` and `TEN_REQUESTS_PER_MINUTE`
     */
    load: string;
    /**
     * Response time during any 5-minute period to trigger an alert, in milliseconds
     */
    milliseconds: number;
    /**
     * Sensitivity of the threshold.  With `low` sensitivity, high statistical confidence is used. Brief violations (for example, due to a surge in load) won't trigger alerts.  With `high` sensitivity, no statistical confidence is used. Each violation triggers an alert
     */
    sensitivity: string;
    /**
     * Response time of the 10% slowest during any 5-minute period to trigger an alert, in milliseconds
     */
    slowestMilliseconds: number;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
}
export interface DatabaseAnomaliesV2DatabaseConnections {
    /**
     * Detect failed database connects
     */
    enabled: boolean;
    /**
     * Threshold
     */
    maxFailedConnects?: number;
    /**
     * Time span
     */
    timePeriod?: number;
}
export interface DatabaseAnomaliesV2FailureRate {
    /**
     * Alert if the percentage of failing service calls increases by **both** the absolute and relative thresholds:
     */
    autoDetection?: outputs.DatabaseAnomaliesV2FailureRateAutoDetection;
    /**
     * Detection mode for increases in failure rate
     */
    detectionMode?: string;
    /**
     * Detect increases in failure rate
     */
    enabled: boolean;
    /**
     * Alert if a given failure rate is exceeded during any 5-minute-period
     */
    fixedDetection?: outputs.DatabaseAnomaliesV2FailureRateFixedDetection;
}
export interface DatabaseAnomaliesV2FailureRateAutoDetection {
    /**
     * Absolute threshold
     */
    absoluteIncrease: number;
    /**
     * Avoid over-alerting
     */
    overAlertingProtection: outputs.DatabaseAnomaliesV2FailureRateAutoDetectionOverAlertingProtection;
    /**
     * Relative threshold
     */
    relativeIncrease: number;
}
export interface DatabaseAnomaliesV2FailureRateAutoDetectionOverAlertingProtection {
    /**
     * Only alert if the abnormal state remains for at least
     */
    minutesAbnormalState: number;
    /**
     * Only alert if there are at least
     */
    requestsPerMinute: number;
}
export interface DatabaseAnomaliesV2FailureRateFixedDetection {
    /**
     * Avoid over-alerting
     */
    overAlertingProtection: outputs.DatabaseAnomaliesV2FailureRateFixedDetectionOverAlertingProtection;
    /**
     * no documentation available
     */
    sensitivity: string;
    /**
     * no documentation available
     */
    threshold: number;
}
export interface DatabaseAnomaliesV2FailureRateFixedDetectionOverAlertingProtection {
    /**
     * Only alert if the abnormal state remains for at least
     */
    minutesAbnormalState: number;
    /**
     * Only alert if there are at least
     */
    requestsPerMinute: number;
}
export interface DatabaseAnomaliesV2LoadDrops {
    /**
     * Detect service load drops
     */
    enabled: boolean;
    /**
     * Threshold
     */
    loadDropPercent?: number;
    /**
     * Time span
     */
    minutesAbnormalState?: number;
}
export interface DatabaseAnomaliesV2LoadSpikes {
    /**
     * Detect service load spikes
     */
    enabled: boolean;
    /**
     * Threshold
     */
    loadSpikePercent?: number;
    /**
     * Time span
     */
    minutesAbnormalState?: number;
}
export interface DatabaseAnomaliesV2ResponseTime {
    /**
     * no documentation available
     */
    autoDetection?: outputs.DatabaseAnomaliesV2ResponseTimeAutoDetection;
    /**
     * Detection mode for response time degradations
     */
    detectionMode?: string;
    /**
     * Detect response time degradations
     */
    enabled: boolean;
    /**
     * no documentation available
     */
    fixedDetection?: outputs.DatabaseAnomaliesV2ResponseTimeFixedDetection;
}
export interface DatabaseAnomaliesV2ResponseTimeAutoDetection {
    /**
     * Avoid over-alerting
     */
    overAlertingProtection: outputs.DatabaseAnomaliesV2ResponseTimeAutoDetectionOverAlertingProtection;
    /**
     * Alert if the median response time of all requests degrades beyond **both** the absolute and relative thresholds:
     */
    responseTimeAll: outputs.DatabaseAnomaliesV2ResponseTimeAutoDetectionResponseTimeAll;
    /**
     * Alert if the response time of the slowest 10% of requests degrades beyond **both** the absolute and relative thresholds:
     */
    responseTimeSlowest: outputs.DatabaseAnomaliesV2ResponseTimeAutoDetectionResponseTimeSlowest;
}
export interface DatabaseAnomaliesV2ResponseTimeAutoDetectionOverAlertingProtection {
    /**
     * Only alert if the abnormal state remains for at least
     */
    minutesAbnormalState: number;
    /**
     * Only alert if there are at least
     */
    requestsPerMinute: number;
}
export interface DatabaseAnomaliesV2ResponseTimeAutoDetectionResponseTimeAll {
    /**
     * Absolute threshold
     */
    degradationMilliseconds: number;
    /**
     * Relative threshold
     */
    degradationPercent: number;
}
export interface DatabaseAnomaliesV2ResponseTimeAutoDetectionResponseTimeSlowest {
    /**
     * Absolute threshold
     */
    slowestDegradationMilliseconds: number;
    /**
     * Relative threshold
     */
    slowestDegradationPercent: number;
}
export interface DatabaseAnomaliesV2ResponseTimeFixedDetection {
    /**
     * Avoid over-alerting
     */
    overAlertingProtection: outputs.DatabaseAnomaliesV2ResponseTimeFixedDetectionOverAlertingProtection;
    /**
     * Alert if the median response time of all requests degrades beyond this threshold within an observation period of 5 minutes:
     */
    responseTimeAll: outputs.DatabaseAnomaliesV2ResponseTimeFixedDetectionResponseTimeAll;
    /**
     * Alert if the response time of the slowest 10% of requests degrades beyond this threshold within an observation period of 5 minutes:
     */
    responseTimeSlowest: outputs.DatabaseAnomaliesV2ResponseTimeFixedDetectionResponseTimeSlowest;
    /**
     * no documentation available
     */
    sensitivity: string;
}
export interface DatabaseAnomaliesV2ResponseTimeFixedDetectionOverAlertingProtection {
    /**
     * Only alert if the abnormal state remains for at least
     */
    minutesAbnormalState: number;
    /**
     * Only alert if there are at least
     */
    requestsPerMinute: number;
}
export interface DatabaseAnomaliesV2ResponseTimeFixedDetectionResponseTimeAll {
    /**
     * Threshold
     */
    degradationMilliseconds: number;
}
export interface DatabaseAnomaliesV2ResponseTimeFixedDetectionResponseTimeSlowest {
    /**
     * Threshold
     */
    slowestDegradationMilliseconds: number;
}
export interface DavisAnomalyDetectorsAnalyzer {
    /**
     * Input fields for the specified analyzer
     */
    input?: outputs.DavisAnomalyDetectorsAnalyzerInput;
    /**
     * Fully qualified name of the analyzer
     */
    name: string;
}
export interface DavisAnomalyDetectorsAnalyzerInput {
    analyzerInputFields: outputs.DavisAnomalyDetectorsAnalyzerInputAnalyzerInputField[];
}
export interface DavisAnomalyDetectorsAnalyzerInputAnalyzerInputField {
    /**
     * no documentation available
     */
    key: string;
    /**
     * no documentation available
     */
    value: string;
}
export interface DavisAnomalyDetectorsEventTemplate {
    /**
     * Set of additional key-value properties to be attached to the triggered event.
     */
    properties?: outputs.DavisAnomalyDetectorsEventTemplateProperties;
}
export interface DavisAnomalyDetectorsEventTemplateProperties {
    properties: outputs.DavisAnomalyDetectorsEventTemplatePropertiesProperty[];
}
export interface DavisAnomalyDetectorsEventTemplatePropertiesProperty {
    /**
     * no documentation available
     */
    key: string;
    /**
     * no documentation available
     */
    value: string;
}
export interface DavisAnomalyDetectorsExecutionSettings {
    /**
     * UUID of a service user. Queries will be executed on behalf of the service user.
     */
    actor?: string;
    /**
     * Minute offset of sliding evaluation window for metrics with latency
     */
    queryOffset?: number;
}
export interface DavisCopilotBlocklistEntries {
    blocklistEntries: outputs.DavisCopilotBlocklistEntriesBlocklistEntry[];
}
export interface DavisCopilotBlocklistEntriesBlocklistEntry {
    /**
     * no documentation available
     */
    name: string;
    /**
     * Possible Values: `BUCKET`, `TABLE`
     */
    type: string;
}
export interface DduPoolEvents {
    /**
     * Is the limit configuration enabled
     */
    enabled: boolean;
    /**
     * Type of the limit applied: MONTHLY or ANNUAL
     */
    type?: string;
    /**
     * Value of the DDU limit applied for provided timerange
     */
    value?: number;
}
export interface DduPoolLogMonitoring {
    /**
     * Is the limit configuration enabled
     */
    enabled: boolean;
    /**
     * Type of the limit applied: MONTHLY or ANNUAL
     */
    type?: string;
    /**
     * Value of the DDU limit applied for provided timerange
     */
    value?: number;
}
export interface DduPoolMetrics {
    /**
     * Is the limit configuration enabled
     */
    enabled: boolean;
    /**
     * Type of the limit applied: MONTHLY or ANNUAL
     */
    type?: string;
    /**
     * Value of the DDU limit applied for provided timerange
     */
    value?: number;
}
export interface DduPoolServerless {
    /**
     * Is the limit configuration enabled
     */
    enabled: boolean;
    /**
     * Type of the limit applied: MONTHLY or ANNUAL
     */
    type?: string;
    /**
     * Value of the DDU limit applied for provided timerange
     */
    value?: number;
}
export interface DduPoolTraces {
    /**
     * Is the limit configuration enabled
     */
    enabled: boolean;
    /**
     * Type of the limit applied: MONTHLY or ANNUAL
     */
    type?: string;
    /**
     * Value of the DDU limit applied for provided timerange
     */
    value?: number;
}
export interface DeclarativeGroupingDetection {
    processDefinitions: outputs.DeclarativeGroupingDetectionProcessDefinition[];
}
export interface DeclarativeGroupingDetectionProcessDefinition {
    /**
     * Process group identifier
     */
    id: string;
    /**
     * This identifier is used by Dynatrace to recognize this process group.
     */
    processGroupName: string;
    /**
     * Possible Values: `never`, `always`, `highResourceUsage`
     */
    report: string;
    /**
     * Define process detection rules by selecting a process property and a condition. Each process group can have multiple detection rules associated with it.
     */
    rules: outputs.DeclarativeGroupingDetectionProcessDefinitionRules;
}
export interface DeclarativeGroupingDetectionProcessDefinitionRules {
    rules: outputs.DeclarativeGroupingDetectionProcessDefinitionRulesRule[];
}
export interface DeclarativeGroupingDetectionProcessDefinitionRulesRule {
    /**
     * - $contains(svc) – Matches if svc appears anywhere in the process property value.
     * - $eq(svc.exe) – Matches if svc.exe matches the process property value exactly.
     * - $prefix(svc) – Matches if app matches the prefix of the process property value.
     * - $suffix(svc.py) – Matches if svc.py matches the suffix of the process property value.
     *
     * For example, $suffix(svc.py) would detect processes named loyaltysvc.py and paymentssvc.py.
     *
     * For more details, see [Declarative process grouping](https://dt-url.net/j142w57).
     */
    condition: string;
    /**
     * Possible Values: `Executable`, `ExecutablePath`, `CommandLine`
     */
    property: string;
}
export interface DefaultLaunchpadGroupLaunchpads {
    groupLaunchpads: outputs.DefaultLaunchpadGroupLaunchpadsGroupLaunchpad[];
}
export interface DefaultLaunchpadGroupLaunchpadsGroupLaunchpad {
    /**
     * State
     */
    isEnabled: boolean;
    /**
     * Launchpad
     */
    launchpadId: string;
    /**
     * User Group
     */
    userGroupId: string;
}
export interface DirectSharesRecipients {
    /**
     * Recipient of the direct share
     */
    recipients?: outputs.DirectSharesRecipientsRecipient[];
}
export interface DirectSharesRecipientsRecipient {
    /**
     * Identifier of the recipient
     */
    id: string;
    /**
     * Type of the recipient. Possible values are `group' and`user'
     */
    type?: string;
}
export interface DiscoveryDefaultRulesRule {
    /**
     * no documentation available
     */
    actions?: outputs.DiscoveryDefaultRulesRuleActions;
    /**
     * no documentation available
     */
    category: string;
    /**
     * no documentation available
     */
    description: string;
    /**
     * Environment scope
     */
    environmentScope: boolean;
    /**
     * no documentation available
     */
    id: string;
    /**
     * no documentation available
     */
    priority: string;
    /**
     * Rule query
     */
    query: string;
    /**
     * no documentation available
     */
    title: string;
    /**
     * Zero rated
     */
    zeroRated?: boolean;
}
export interface DiscoveryDefaultRulesRuleActions {
    actions: outputs.DiscoveryDefaultRulesRuleActionsAction[];
}
export interface DiscoveryDefaultRulesRuleActionsAction {
    /**
     * Instant action
     */
    instantAction?: boolean;
    /**
     * no documentation available
     */
    name: string;
    /**
     * no documentation available
     */
    parameters?: outputs.DiscoveryDefaultRulesRuleActionsActionParameters;
}
export interface DiscoveryDefaultRulesRuleActionsActionParameters {
    parameters: outputs.DiscoveryDefaultRulesRuleActionsActionParametersParameter[];
}
export interface DiscoveryDefaultRulesRuleActionsActionParametersParameter {
    /**
     * no documentation available
     */
    name: string;
    /**
     * no documentation available
     */
    value: string;
}
export interface DiscoveryDefaultRulesSettings {
    /**
     * no documentation available
     */
    muted: boolean;
}
export interface DiskAnomaliesDiskName {
    /**
     * Possible values are: `CONTAINS`, `DOES_NOT_CONTAIN`, `DOES_NOT_EQUAL`, `DOES_NOT_START_WITH`, `EQUALS` and `STARTS_WITH`
     */
    operator: string;
    /**
     * Value to compare to
     */
    value: string;
}
export interface DiskAnomaliesTags {
    /**
     * A Tag Filter
     */
    filters?: outputs.DiskAnomaliesTagsFilter[];
}
export interface DiskAnomaliesTagsFilter {
    /**
     * The origin of the tag, such as AWS or Cloud Foundry. Custom tags use the `CONTEXTLESS` value
     */
    context: string;
    /**
     * The key of the tag. Custom tags have the tag value here
     */
    key: string;
    /**
     * The value of the tag. Not applicable to custom tags
     */
    value?: string;
}
export interface DiskAnomaliesV2Disk {
    /**
     * no documentation available
     */
    diskLowInodesDetection: outputs.DiskAnomaliesV2DiskDiskLowInodesDetection;
    /**
     * no documentation available
     */
    diskLowSpaceDetection: outputs.DiskAnomaliesV2DiskDiskLowSpaceDetection;
    /**
     * no documentation available
     */
    diskSlowWritesAndReadsDetection: outputs.DiskAnomaliesV2DiskDiskSlowWritesAndReadsDetection;
}
export interface DiskAnomaliesV2DiskDiskLowInodesDetection {
    /**
     * no documentation available
     */
    customThresholds?: outputs.DiskAnomaliesV2DiskDiskLowInodesDetectionCustomThresholds;
    /**
     * Detection mode for low inodes number available
     */
    detectionMode?: string;
    /**
     * Detect low inodes number available
     */
    enabled: boolean;
}
export interface DiskAnomaliesV2DiskDiskLowInodesDetectionCustomThresholds {
    /**
     * Alert if the percentage of available inodes is lower than this threshold in 3 out of 5 samples
     */
    freeInodesPercentage: number;
}
export interface DiskAnomaliesV2DiskDiskLowSpaceDetection {
    /**
     * no documentation available
     */
    customThresholds?: outputs.DiskAnomaliesV2DiskDiskLowSpaceDetectionCustomThresholds;
    /**
     * Detection mode for low disk space
     */
    detectionMode?: string;
    /**
     * Detect low disk space
     */
    enabled: boolean;
}
export interface DiskAnomaliesV2DiskDiskLowSpaceDetectionCustomThresholds {
    /**
     * Alert if free disk space is lower than this percentage in 3 out of 5 samples
     */
    freeSpacePercentage: number;
}
export interface DiskAnomaliesV2DiskDiskSlowWritesAndReadsDetection {
    /**
     * no documentation available
     */
    customThresholds?: outputs.DiskAnomaliesV2DiskDiskSlowWritesAndReadsDetectionCustomThresholds;
    /**
     * Detection mode for slow running disks
     */
    detectionMode?: string;
    /**
     * Detect slow-running disks
     */
    enabled: boolean;
}
export interface DiskAnomaliesV2DiskDiskSlowWritesAndReadsDetectionCustomThresholds {
    /**
     * Alert if disk read time or write time is higher than this threshold in 3 out of 5 samples
     */
    writeAndReadTime: number;
}
export interface DiskAnomalyRulesDiskNameFilter {
    /**
     * Possible Values: `CONTAINS`, `DOES_NOT_CONTAIN`, `DOES_NOT_EQUAL`, `DOES_NOT_START_WITH`, `EQUALS`, `STARTS_WITH`
     */
    operator: string;
    /**
     * Matching text
     */
    value?: string;
}
export interface DiskAnomalyRulesSampleLimit {
    /**
     * .. within the last
     */
    samples: number;
    /**
     * Minimum number of violating samples
     */
    violatingSamples: number;
}
export interface DiskEdgeAnomalyDetectorsAlerts {
    alerts: outputs.DiskEdgeAnomalyDetectorsAlertsAlert[];
}
export interface DiskEdgeAnomalyDetectorsAlertsAlert {
    /**
     * no documentation available
     */
    sampleCountThresholds?: outputs.DiskEdgeAnomalyDetectorsAlertsAlertSampleCountThresholds;
    /**
     * no documentation available
     */
    sampleCountThresholdsImmediately?: outputs.DiskEdgeAnomalyDetectorsAlertsAlertSampleCountThresholdsImmediately;
    /**
     * no documentation available
     */
    thresholdMebibytes?: number;
    /**
     * no documentation available
     */
    thresholdMilliseconds?: number;
    /**
     * no documentation available
     */
    thresholdNumber?: number;
    /**
     * no documentation available
     */
    thresholdPercent?: number;
    /**
     * Possible Values: `AVAILABLE_DISK_SPACE_MEBIBYTES_BELOW`, `AVAILABLE_DISK_SPACE_PERCENT_BELOW`, `AVAILABLE_INODES_NUMBER_BELOW`, `AVAILABLE_INODES_PERCENT_BELOW`, `READ_ONLY_FILE_SYSTEM`, `READ_TIME_EXCEEDING`, `WRITE_TIME_EXCEEDING`
     */
    trigger: string;
}
export interface DiskEdgeAnomalyDetectorsAlertsAlertSampleCountThresholds {
    /**
     * The number of **10-second samples** that form the sliding evaluation window for dealerting.
     */
    dealertingEvaluationWindow: number;
    /**
     * The number of **10-second samples** within the evaluation window that must be lower than the threshold to close an event
     */
    dealertingSamples: number;
    /**
     * The number of **10-second samples** that form the sliding evaluation window to detect violating samples.
     */
    violatingEvaluationWindow: number;
    /**
     * The number of **10-second samples** within the evaluation window that must exceed the threshold to trigger an event
     */
    violatingSamples: number;
}
export interface DiskEdgeAnomalyDetectorsAlertsAlertSampleCountThresholdsImmediately {
    /**
     * The number of **10-second samples** that form the sliding evaluation window for dealerting.
     */
    dealertingEvaluationWindow: number;
    /**
     * The number of **10-second samples** within the evaluation window that must be lower than the threshold to close an event
     */
    dealertingSamples: number;
    /**
     * The number of **10-second samples** that form the sliding evaluation window to detect violating samples.
     */
    violatingEvaluationWindow: number;
    /**
     * The number of **10-second samples** within the evaluation window that must exceed the threshold to trigger an event
     */
    violatingSamples: number;
}
export interface DiskEdgeAnomalyDetectorsEventProperties {
    eventProperties: outputs.DiskEdgeAnomalyDetectorsEventPropertiesEventProperty[];
}
export interface DiskEdgeAnomalyDetectorsEventPropertiesEventProperty {
    /**
     * Type 'dt.' for key hints.
     */
    metadataKey: string;
    /**
     * no documentation available
     */
    metadataValue: string;
}
export interface DiskEdgeAnomalyDetectorsHostMetadataConditions {
    hostMetadataConditions: outputs.DiskEdgeAnomalyDetectorsHostMetadataConditionsHostMetadataCondition[];
}
export interface DiskEdgeAnomalyDetectorsHostMetadataConditionsHostMetadataCondition {
    /**
     * no documentation available
     */
    hostMetadataCondition: outputs.DiskEdgeAnomalyDetectorsHostMetadataConditionsHostMetadataConditionHostMetadataCondition;
}
export interface DiskEdgeAnomalyDetectorsHostMetadataConditionsHostMetadataConditionHostMetadataCondition {
    /**
     * When enabled, the condition requires a metadata key to exist and match the constraints; when disabled, the key is optional but must still match the constrains if it is present.
     */
    keyMustExist?: boolean;
    /**
     * This string has to match a required format.
     */
    metadataCondition: string;
    /**
     * Key
     */
    metadataKey: string;
}
export interface DiskOptionsExclusions {
    exclusions: outputs.DiskOptionsExclusionsExclusion[];
}
export interface DiskOptionsExclusionsExclusion {
    /**
     * **File system type field:** the type of the file system to be excluded from monitoring. Examples:
     *
     * * ext4
     * * ext3
     * * btrfs
     * * ext*
     *
     * ⚠️ Starting from **OneAgent 1.299+** file system types are not case sensitive!
     *
     * The wildcard in the last example means to exclude matching file systems such as types ext4 and ext3
     */
    filesystem?: string;
    /**
     * **Disk or mount point path field:** the path to where the disk to be excluded from monitoring is mounted. Examples:
     *
     * * /mnt/my_disk
     * * /staff/emp1
     * * C:\
     * * /staff/*
     * * /disk*
     *
     *  ⚠️ Mount point paths are case sensitive!
     *
     * The wildcard in **&#47;staff/*** means to exclude every child folder of /staff.
     *
     * The wildcard in **&#47;disk*** means to exclude every mount point starting with /disk, for example /disk1, /disk99,  /diskabc
     */
    mountpoint?: string;
    /**
     * Possible Values: `OS_TYPE_AIX`, `OS_TYPE_DARWIN`, `OS_TYPE_HPUX`, `OS_TYPE_LINUX`, `OS_TYPE_SOLARIS`, `OS_TYPE_UNKNOWN`, `OS_TYPE_WINDOWS`, `OS_TYPE_ZOS`
     */
    os: string;
}
export interface DiskSpecificAnomaliesV2DiskLowInodesDetection {
    /**
     * no documentation available
     */
    customThresholds?: outputs.DiskSpecificAnomaliesV2DiskLowInodesDetectionCustomThresholds;
    /**
     * Detection mode for low inodes number available
     */
    detectionMode?: string;
    /**
     * Detect low inodes number available
     */
    enabled: boolean;
}
export interface DiskSpecificAnomaliesV2DiskLowInodesDetectionCustomThresholds {
    /**
     * Alert if the percentage of available inodes is lower than this threshold in 3 out of 5 samples
     */
    freeInodesPercentage: number;
}
export interface DiskSpecificAnomaliesV2DiskLowSpaceDetection {
    /**
     * no documentation available
     */
    customThresholds?: outputs.DiskSpecificAnomaliesV2DiskLowSpaceDetectionCustomThresholds;
    /**
     * Detection mode for low disk space
     */
    detectionMode?: string;
    /**
     * Detect low disk space
     */
    enabled: boolean;
}
export interface DiskSpecificAnomaliesV2DiskLowSpaceDetectionCustomThresholds {
    /**
     * Alert if free disk space is lower than this percentage in 3 out of 5 samples
     */
    freeSpacePercentage: number;
}
export interface DiskSpecificAnomaliesV2DiskSlowWritesAndReadsDetection {
    /**
     * no documentation available
     */
    customThresholds?: outputs.DiskSpecificAnomaliesV2DiskSlowWritesAndReadsDetectionCustomThresholds;
    /**
     * Detection mode for slow running disks
     */
    detectionMode?: string;
    /**
     * Detect slow-running disks
     */
    enabled: boolean;
}
export interface DiskSpecificAnomaliesV2DiskSlowWritesAndReadsDetectionCustomThresholds {
    /**
     * Alert if disk read time or write time is higher than this threshold in 3 out of 5 samples
     */
    writeAndReadTime: number;
}
export interface EnvironmentQuotas {
    /**
     * Davis Data Units consumption and quota information on environment level. Not set (and not editable) if Davis data units is not enabled
     */
    ddus?: outputs.EnvironmentQuotasDdus;
    /**
     * DEM units consumption and quota information on environment level
     */
    demUnits?: outputs.EnvironmentQuotasDemUnits;
    /**
     * Host units consumption and quota information on environment level
     */
    hostUnits?: number;
    /**
     * Log Monitoring consumption and quota information on environment level. Not set (and not editable) if Log monitoring is not enabled. Not set (and not editable) if Log monitoring is migrated to Davis data on license level
     */
    logs?: outputs.EnvironmentQuotasLogs;
    /**
     * Synthetic monitors consumption and quota information on environment level. Not set (and not editable) if neither Synthetic nor DEM units is enabled
     */
    synthetic?: outputs.EnvironmentQuotasSynthetic;
    /**
     * User sessions consumption and quota information on environment level
     */
    userSessions?: outputs.EnvironmentQuotasUserSessions;
}
export interface EnvironmentQuotasDdus {
    /**
     * Annual environment quota. Not set if unlimited
     */
    annual?: number;
    /**
     * Monthly environment quota. Not set if unlimited
     */
    monthly?: number;
}
export interface EnvironmentQuotasDemUnits {
    /**
     * Annual environment quota. Not set if unlimited
     */
    annual?: number;
    /**
     * Monthly environment quota. Not set if unlimited
     */
    monthly?: number;
}
export interface EnvironmentQuotasLogs {
    /**
     * Annual environment quota. Not set if unlimited
     */
    annual?: number;
    /**
     * Monthly environment quota. Not set if unlimited
     */
    monthly?: number;
}
export interface EnvironmentQuotasSynthetic {
    /**
     * Annual environment quota. Not set if unlimited
     */
    annual?: number;
    /**
     * Monthly environment quota. Not set if unlimited
     */
    monthly?: number;
}
export interface EnvironmentQuotasUserSessions {
    /**
     * Annual total User sessions environment quota. Not set if unlimited
     */
    annual?: number;
    /**
     * Monthly total User sessions environment quota. Not set if unlimited
     */
    monthly?: number;
}
export interface EnvironmentStorage {
    limits?: outputs.EnvironmentStorageLimits;
    retention?: outputs.EnvironmentStorageRetention;
    /**
     * Maximum number of newly monitored entry point PurePaths captured per process/minute on environment level. Can be set to any value from 100 to 100000
     */
    transactions: number;
    /**
     * Maximum number of user actions generated per minute on environment level. Can be set to any value from 1 to 2147483646 or left unlimited by omitting this property
     */
    userActions?: number;
}
export interface EnvironmentStorageLimits {
    /**
     * Log monitoring storage usage and limit information on environment level in bytes. Not editable when Log monitoring is not allowed by license or not configured on cluster level. 0 for unlimited.
     */
    logs?: number;
    /**
     * Session replay storage usage and limit information on environment level in bytes. 0 for unlimited.
     */
    sessionReplay?: number;
    /**
     * Session replay storage usage and limit information on environment level in bytes. 0 for unlimited.
     */
    symbolFiles?: number;
    /**
     * Transaction storage usage and limit information on environment level in bytes. 0 for unlimited.
     */
    transactions?: number;
}
export interface EnvironmentStorageRetention {
    /**
     * Log monitoring retention settings on environment level in days. Not editable when Log monitoring is not allowed by license or not configured on cluster level. Can be set to any value from 5 to 90 days
     */
    logs?: number;
    /**
     * Real user monitoring retention settings on environment level in days. Can be set to any value from 1 to 35 days
     */
    rum: number;
    /**
     * Service code level retention settings on environment level in days. Service code level retention time can't be greater than service request level retention time and both can't exceed one year
     */
    serviceCodeLevel: number;
    /**
     * Service request level retention settings on environment level in days. Service code level retention time can't be greater than service request level retention time and both can't exceed one year
     */
    serviceRequestLevel: number;
    /**
     * Session replay retention settings on environment level in days. Can be set to any value from 1 to 35 days
     */
    sessionReplay: number;
    /**
     * Synthetic monitoring retention settings on environment level in days. Can be set to any value from 1 to 35 days
     */
    synthetic: number;
}
export interface FailureDetectionParametersBrokenLinks {
    /**
     * If your application relies on other hosts at other domains, add the associated domain names here. Once configured, Dynatrace will consider 404s thrown by hosts at these domains to be service failures related to your application.
     */
    brokenLinkDomains?: string[];
    /**
     * Consider 404 HTTP response codes as failures
     */
    http404NotFoundFailures: boolean;
}
export interface FailureDetectionParametersExceptionRules {
    /**
     * Some custom error situations are only detectable via a return value or other means. To support such cases, [define a request attribute](https://dt-url.net/ys5k0p4y) that captures the required data. Then define a custom error rule that determines if the request has failed based on the value of the request attribute.
     */
    customErrorRules?: outputs.FailureDetectionParametersExceptionRulesCustomErrorRules;
    /**
     * There may be situations where your application code handles exceptions gracefully in a manner that these failures aren't detected by Dynatrace. Use this setting to define specific gracefully-handled exceptions that should be treated as service failures.
     */
    customHandledExceptions?: outputs.FailureDetectionParametersExceptionRulesCustomHandledExceptions;
    /**
     * Ignore all exceptions
     */
    ignoreAllExceptions: boolean;
    /**
     * Ignore span failure detection
     */
    ignoreSpanFailureDetection: boolean;
    /**
     * Some exceptions that are thrown by legacy or 3rd-party code indicate a specific response, not an error. Use this setting to instruct Dynatrace to treat such exceptions as non-failed requests.. If an exception matching any of the defined patterns occurs in a request, it will not be considered as a failure. Other exceptions occurring at the same request might still mark the request as failed.
     */
    ignoredExceptions?: outputs.FailureDetectionParametersExceptionRulesIgnoredExceptions;
    /**
     * Define exceptions which indicate that a service call should not be considered as failed. E.g. an exception indicating that the client aborted the operation.. If an exception matching any of the defined patterns occurs on the entry node of the service, it will be considered successful. Compared to ignored exceptions, the request will be considered successful even if other exceptions occur in the same request.
     */
    successForcingExceptions?: outputs.FailureDetectionParametersExceptionRulesSuccessForcingExceptions;
}
export interface FailureDetectionParametersExceptionRulesCustomErrorRules {
    customErrorRules: outputs.FailureDetectionParametersExceptionRulesCustomErrorRulesCustomErrorRule[];
}
export interface FailureDetectionParametersExceptionRulesCustomErrorRulesCustomErrorRule {
    /**
     * Request attribute condition
     */
    condition: outputs.FailureDetectionParametersExceptionRulesCustomErrorRulesCustomErrorRuleCondition;
    /**
     * Request attribute
     */
    requestAttribute: string;
}
export interface FailureDetectionParametersExceptionRulesCustomErrorRulesCustomErrorRuleCondition {
    /**
     * Case sensitive
     */
    caseSensitive?: boolean;
    /**
     * Apply this comparison
     */
    compareOperationType: string;
    /**
     * Value
     */
    doubleValue?: number;
    /**
     * Value
     */
    intValue?: number;
    /**
     * Value
     */
    textValue?: string;
}
export interface FailureDetectionParametersExceptionRulesCustomHandledExceptions {
    customHandledExceptions: outputs.FailureDetectionParametersExceptionRulesCustomHandledExceptionsCustomHandledException[];
}
export interface FailureDetectionParametersExceptionRulesCustomHandledExceptionsCustomHandledException {
    /**
     * The pattern will match if it is contained within the actual class name.
     */
    classPattern?: string;
    /**
     * Optionally, define an exception message pattern. The pattern will match if the actual exception message contains the pattern.
     */
    messagePattern?: string;
}
export interface FailureDetectionParametersExceptionRulesIgnoredExceptions {
    customHandledExceptions: outputs.FailureDetectionParametersExceptionRulesIgnoredExceptionsCustomHandledException[];
}
export interface FailureDetectionParametersExceptionRulesIgnoredExceptionsCustomHandledException {
    /**
     * The pattern will match if it is contained within the actual class name.
     */
    classPattern?: string;
    /**
     * Optionally, define an exception message pattern. The pattern will match if the actual exception message contains the pattern.
     */
    messagePattern?: string;
}
export interface FailureDetectionParametersExceptionRulesSuccessForcingExceptions {
    customHandledExceptions: outputs.FailureDetectionParametersExceptionRulesSuccessForcingExceptionsCustomHandledException[];
}
export interface FailureDetectionParametersExceptionRulesSuccessForcingExceptionsCustomHandledException {
    /**
     * The pattern will match if it is contained within the actual class name.
     */
    classPattern?: string;
    /**
     * Optionally, define an exception message pattern. The pattern will match if the actual exception message contains the pattern.
     */
    messagePattern?: string;
}
export interface FailureDetectionParametersHttpResponseCodes {
    /**
     * HTTP response codes which indicate client side errors
     */
    clientSideErrors: string;
    /**
     * Treat missing HTTP response code as client side error
     */
    failOnMissingResponseCodeClientSide: boolean;
    /**
     * Treat missing HTTP response code as server side errors
     */
    failOnMissingResponseCodeServerSide: boolean;
    /**
     * HTTP response codes which indicate an error on the server side
     */
    serverSideErrors: string;
}
export interface FailureDetectionRulesConditions {
    conditions: outputs.FailureDetectionRulesConditionsCondition[];
}
export interface FailureDetectionRulesConditionsCondition {
    /**
     * Possible Values: `PG_NAME`, `PG_TAG`, `SERVICE_MANAGEMENT_ZONE`, `SERVICE_NAME`, `SERVICE_TAG`, `SERVICE_TYPE`
     */
    attribute: string;
    /**
     * Condition to check the attribute against
     */
    predicate: outputs.FailureDetectionRulesConditionsConditionPredicate;
}
export interface FailureDetectionRulesConditionsConditionPredicate {
    /**
     * Case sensitive
     */
    caseSensitive?: boolean;
    /**
     * Management zones
     */
    managementZones?: string[];
    /**
     * Predicate type
     */
    predicateType: string;
    /**
     * Service types
     */
    serviceTypes?: string[];
    /**
     * Tag keys
     */
    tagKeys?: string[];
    /**
     * Tags (exact match)
     */
    tags?: string[];
    /**
     * Names
     */
    textValues?: string[];
}
export interface GenericRelationshipsSources {
    sources: outputs.GenericRelationshipsSourcesSource[];
}
export interface GenericRelationshipsSourcesSource {
    /**
     * Specify a filter that needs to match in order for the extraction to happen.. Two different filters are supported: `$eq(value)` will ensure that the source matches exactly 'value', while `$prefix(value)` will ensure that the source begins with exactly 'value'.
     * If your value contains the characters '(', ')' or '~', you need to escape them by adding a '~' in front of them.
     */
    condition?: string;
    /**
     * Specify all properties which should be compared. If all mapping rules match a relationship between entities will be created.
     */
    mappingRules?: outputs.GenericRelationshipsSourcesSourceMappingRules;
    /**
     * Possible Values: `BusinessEvents`, `Entities`, `Events`, `Logs`, `Metrics`, `Spans`, `Topology`
     */
    sourceType: string;
}
export interface GenericRelationshipsSourcesSourceMappingRules {
    mappingRules: outputs.GenericRelationshipsSourcesSourceMappingRulesMappingRule[];
}
export interface GenericRelationshipsSourcesSourceMappingRulesMappingRule {
    /**
     * The case-sensitive name of a property of the destination type.
     */
    destinationProperty: string;
    /**
     * Possible Values: `Leavetextas_is`, `Tolowercase`, `Touppercase`
     */
    destinationTransformation: string;
    /**
     * The case-sensitive name of a property of the source type.
     */
    sourceProperty: string;
    /**
     * Possible Values: `Leavetextas_is`, `Tolowercase`, `Touppercase`
     */
    sourceTransformation: string;
}
export interface GenericTypesRules {
    rules: outputs.GenericTypesRulesRule[];
}
export interface GenericTypesRulesRule {
    /**
     * All attribute extraction rules will be applied and found attributes will be added to the extracted type.
     */
    attributes?: outputs.GenericTypesRulesRuleAttributes;
    /**
     * Define a pattern which is used to set the icon attribute of the entity. The extracted values must reference barista icon ids. You may define placeholders referencing data source dimensions.
     */
    iconPattern?: string;
    /**
     * ID patterns are comprised of static text and placeholders referring to dimensions in the ingest data. An ID pattern **must** contain at least one placeholder to ensure that different entities will be created.. Take care that the pattern results in the same ID for the same entity. For example, using timestamp or counter-like dimensions as part of the ID would lead to the creation of new entities for each ingest data and is strongly discouraged!
     */
    idPattern: string;
    /**
     * Define a pattern which is used to set the name attribute of the entity. You may define placeholders referencing data source dimensions.
     */
    instanceNamePattern?: string;
    /**
     * In addition to the dimensions already referred to in the ID pattern, you may specify additional dimensions which must be present in order to evaluate this rule.
     */
    requiredDimensions?: outputs.GenericTypesRulesRuleRequiredDimensions;
    /**
     * If you want to extract multiple entities of the same type from a single ingest line you need to define multiple rules with different roles.
     */
    role?: string;
    /**
     * Specify all sources which should be evaluated for this rule. A rule is evaluated if any of the specified source filters match.
     */
    sources: outputs.GenericTypesRulesRuleSources;
}
export interface GenericTypesRulesRuleAttributes {
    attributes: outputs.GenericTypesRulesRuleAttributesAttribute[];
}
export interface GenericTypesRulesRuleAttributesAttribute {
    /**
     * The human readable attribute name for this extraction rule. Leave blank to use the key as the display name.
     */
    displayName?: string;
    /**
     * The attribute key is the unique name of the attribute.
     */
    key: string;
    /**
     * Pattern for specifying the value for the extracted attribute. Can be a static value, placeholders or a combination of both.
     */
    pattern: string;
}
export interface GenericTypesRulesRuleRequiredDimensions {
    requiredDimensions: outputs.GenericTypesRulesRuleRequiredDimensionsRequiredDimension[];
}
export interface GenericTypesRulesRuleRequiredDimensionsRequiredDimension {
    /**
     * A dimension key which needs to exist in the ingest data to match this filter.
     */
    key: string;
    /**
     * A dimension value pattern which needs to exist in the ingest data to match this filter.
     */
    valuePattern?: string;
}
export interface GenericTypesRulesRuleSources {
    sources: outputs.GenericTypesRulesRuleSourcesSource[];
}
export interface GenericTypesRulesRuleSourcesSource {
    /**
     * Specify a filter that needs to match in order for the extraction to happen.. Three different filters are supported: `$eq(value)` will ensure that the source matches exactly 'value', `$prefix(value)` will ensure that the source begins with exactly 'value', '$exists()' will ensure that any source with matching dimension filter exists.
     * If your value contains the characters '(', ')' or '~', you need to escape them by adding a '~' in front of them.
     */
    condition?: string;
    /**
     * Possible Values: `BusinessEvents`, `Entities`, `Events`, `Logs`, `Metrics`, `Spans`, `Topology`
     */
    sourceType: string;
}
export interface GetAlertingProfilesValue {
    /**
     * The ID of the Alerting Profile when referred to as a Settings 2.0 resource (e.g. from within `dynatrace.SlackNotification`)
     */
    id: string;
    /**
     * The ID of the Alerting Profile when referred to as a Configuration API resource (e.g. from within `dynatrace.Notification`)
     */
    legacyId: string;
    /**
     * The ID of the management zone to which the alerting profile applies (Settings 2.0)
     */
    managementZoneId: string;
    /**
     * The ID of the management zone to which the alerting profile applies (Configuration API)
     */
    managementZoneLegacyId: string;
    /**
     * The name of the Alerting Profile
     */
    name: string;
}
export interface GetApiTokensApiToken {
    /**
     * Token creation date in ISO 8601 format (yyyy-MM-dd'T'HH:mm:ss.SSS'Z')
     */
    creationDate: string;
    /**
     * The token is enabled (true) or disabled (false), default disabled (false).
     */
    enabled?: boolean;
    /**
     * The expiration date of the token.
     */
    expirationDate?: string;
    /**
     * Token last used date in ISO 8601 format (yyyy-MM-dd'T'HH:mm:ss.SSS'Z')
     */
    lastUsedDate: string;
    /**
     * Token last used IP address.
     */
    lastUsedIpAddress: string;
    /**
     * Token last modified date in ISO 8601 format (yyyy-MM-dd'T'HH:mm:ss.SSS'Z').
     */
    modifiedDate: string;
    /**
     * The name of the token.
     */
    name: string;
    /**
     * The owner of the token
     */
    owner: string;
    /**
     * The token is a personal access token (true) or an API token (false).
     */
    personalAccessToken?: boolean;
    /**
     * A list of the scopes to be assigned to the token.
     */
    scopes: string[];
    /**
     * The secret of the token.
     */
    token: string;
}
export interface GetApplicationDetectionRulesValue {
    /**
     * Application ID
     */
    applicationId: string;
    /**
     * Application Detection Rule ID
     */
    id: string;
    /**
     * Matcher
     */
    matcher: string;
    /**
     * Pattern
     */
    pattern: string;
}
export interface GetDocumentsValue {
    /**
     * The unique identifier of the document.
     */
    id: string;
    /**
     * The name of the document.
     */
    name: string;
    /**
     * The owner of the document. This could be a user or a group that has ownership rights over the document.
     */
    owner: string;
    /**
     * The type of the document. This could be a specific format or category the document belongs to.
     */
    type: string;
}
export interface GetEntitiesEntity {
    /**
     * The name of the entity, displayed in the UI.
     */
    displayName?: string;
    /**
     * The ID of the entity.
     */
    entityId?: string;
    /**
     * The timestamp at which the entity was last seen, in UTC milliseconds.
     */
    lastSeenTms?: number;
    /**
     * Properties defining the entity.
     */
    properties: {
        [key: string]: string;
    };
    /**
     * A set of tags assigned to the entity.
     */
    tags?: outputs.GetEntitiesEntityTag[];
    /**
     * The type of the entity.
     */
    type?: string;
}
export interface GetEntitiesEntityTag {
    /**
     * A tag assigned to the entity
     */
    tags?: outputs.GetEntitiesEntityTagTag[];
}
export interface GetEntitiesEntityTagTag {
    /**
     * The origin of the tag, such as AWS or Cloud Foundry. Custom tags use the `CONTEXTLESS` value
     */
    context: string;
    /**
     * The key of the tag. Custom tags have the tag value here
     */
    key: string;
    /**
     * The string representation of the tag
     */
    stringRepresentation?: string;
    /**
     * The value of the tag. Not applicable to custom tags
     */
    value?: string;
}
export interface GetGenericSettingsValue {
    localStorage: string;
    schema: string;
    scope: string;
    value: string;
}
export interface GetGeoCitiesCity {
    latitude: number;
    longitude: number;
    name: string;
}
export interface GetGeoCountriesCountry {
    code: string;
    name: string;
}
export interface GetGeoRegionsRegion {
    code: string;
    name: string;
}
export interface GetHubItemsItem {
    /**
     * The activation link for a technology
     */
    activationLink: string;
    /**
     * The unique ID used by the artifacts contained in releases
     */
    artifactId: string;
    /**
     * URL for the author's logo
     */
    authorLogo: string;
    /**
     * Name of the author of the item
     */
    authorName: string;
    /**
     * Checks if the item is compatible with the cluster version
     */
    clusterCompatible: boolean;
    /**
     * Whether or not the item is planned to be released soon
     */
    comingSoon: boolean;
    /**
     * Description of the item
     */
    description: string;
    /**
     * An absolute link to the documentation page of this item
     */
    documentationLink: string;
    /**
     * Whether or not the details call will contain description blocks
     */
    hasDescriptionBlocks: boolean;
    /**
     * Unique Id of the item
     */
    itemId: string;
    /**
     * The logo of the item. Can be a URL or Base64 encoded. Intended for HTML tags
     */
    logo: string;
    /**
     * An absolute link to the marketing page of this item
     */
    marketingLink: string;
    /**
     * Name of the item
     */
    name: string;
    /**
     * The reason why the item is not compatible with the cluster version
     */
    notCompatibleReason: string;
    /**
     * Grouping of items with keywords
     */
    tags: string[];
    /**
     * Represents the type of item. It can be `TECHNOLOGY`, `EXTENSION1` or `EXTENSION2`
     */
    type: string;
}
export interface GetIamPoliciesPolicy {
    /**
     * The account UUID the policy is defined for
     */
    account?: string;
    /**
     * The environment ID the policy is defined for
     */
    environment?: string;
    /**
     * `true` if this is a global policy`
     */
    global?: boolean;
    id: string;
    /**
     * The name of the policy
     */
    name: string;
    /**
     * The UUID of the policy
     */
    uuid: string;
}
export interface GetManagementZonesValue {
    /**
     * The description of the Management Zone
     */
    description: string;
    /**
     * The ID of the Management Zone when referred to as a Settings 2.0 resource (e.g. from within `dynatrace.SlackNotification`)
     */
    id: string;
    /**
     * The ID of the Management Zone when referred to as a Configuration API resource (e.g. from within `dynatrace.Notification`)
     */
    legacyId: string;
    /**
     * The name of the Management Zone
     */
    name: string;
}
export interface GetRemoteEnvironmentsRemoteEnvironment {
    /**
     * Name
     */
    name: string;
    /**
     * Possible Values: `CLUSTER`, `EXTERNAL`, `INTERNAL`
     */
    networkScope: string;
    /**
     * Provide a valid token created on the remote environment.
     */
    token: string;
    /**
     * Specify the full URI to the remote environment. Your local environment will have to be able to connect this URI on a network level.
     */
    uri: string;
}
export interface GetSyntheticLocationsLocations {
    /**
     * The cloud provider where the location is hosted.
     */
    cloudPlatform: string;
    /**
     * The unique ID of the location
     */
    entityId?: string;
    /**
     * The list of IP addresses assigned to the location.
     *
     *  Only applicable to `PUBLIC` locations
     */
    ips: string[];
    /**
     * The name of the location
     */
    name?: string;
    /**
     * The release stage of the location
     */
    stage: string;
    /**
     * The status of the location:
     *
     * * `ENABLED`: The location is displayed as active in the UI. You can assign monitors to the location.
     * * `DISABLED`: The location is displayed as inactive in the UI. You can't assign monitors to the location. Monitors already assigned to the location will stay there and will be executed from the location.
     * * `HIDDEN`: The location is not displayed in the UI. You can't assign monitors to the location. You can only set location as `HIDDEN` when no monitor is assigned to it
     */
    status: string;
    /**
     * The type of the location. Supported values are `PUBLIC`, `PRIVATE` and `CLUSTER`
     */
    type?: string;
}
export interface GetSyntheticNodesNode {
    /**
     * The version of the Active Gate
     */
    activeGateVersion: string;
    /**
     * Specifies whether the Active Gate  has the Auto update option enabled
     */
    autoUpdate: boolean;
    /**
     * Specifies whether Browser Monitors are enabled or not
     */
    browserMonitors: boolean;
    /**
     * The health check status of the synthetic node
     */
    healthCheckStatus: string;
    /**
     * The hostname of a node
     */
    hostname: string;
    /**
     * The ID of a node for usage within `dynatrace.SyntheticLocation`
     */
    id: string;
    /**
     * The known IP addresses of the node
     */
    ips: string[];
    /**
     * Specifies whether the Active Gate has the One Agent routing enabled
     */
    oneAgentRouting: boolean;
    /**
     * The Active Gate's host operating system
     */
    operatingSystem: string;
    /**
     * The version of the synthetic player
     */
    playerVersion: string;
    /**
     * The status of the synthetic node
     */
    status: string;
    /**
     * The version of a node
     */
    version: string;
}
export interface GrailMetricsAllowlistAllowRules {
    allowRules: outputs.GrailMetricsAllowlistAllowRulesAllowRule[];
}
export interface GrailMetricsAllowlistAllowRulesAllowRule {
    /**
     * This setting is enabled (`true`) or disabled (`false`)
     */
    enabled: boolean;
    /**
     * Metric key
     */
    metricKey: string;
    /**
     * Possible Values: `CONTAINS`, `EQUALS`, `STARTSWITH`
     */
    pattern: string;
}
export interface HostAnomaliesConnections {
    /**
     * The detection is enabled (`true`) or disabled (`false`)
     */
    enabled: boolean;
    /**
     * Alert (`true`) on graceful host shutdowns
     */
    enabledOnGracefulShutdowns: boolean;
}
export interface HostAnomaliesCpu {
    /**
     * The detection is enabled (`true`) or disabled (`false`)
     */
    enabled: boolean;
    /**
     * Custom thresholds for high CPU saturation. If not set then the automatic mode is used
     */
    thresholds?: outputs.HostAnomaliesCpuThresholds;
}
export interface HostAnomaliesCpuThresholds {
    /**
     * Alert if CPU usage is higher than *X*% in 3 out of 5 samples
     */
    saturation: number;
}
export interface HostAnomaliesDisks {
    /**
     * Configuration of low disk inodes number detection
     */
    inodes?: outputs.HostAnomaliesDisksInodes;
    /**
     * Configuration of low disk space detection
     */
    space?: outputs.HostAnomaliesDisksSpace;
    /**
     * Configuration of slow running disks detection
     */
    speed?: outputs.HostAnomaliesDisksSpeed;
}
export interface HostAnomaliesDisksInodes {
    /**
     * The detection is enabled (`true`) or disabled (`false`)
     */
    enabled: boolean;
    /**
     * Custom thresholds for low disk inodes number. If not set, automatic mode is used
     */
    thresholds?: outputs.HostAnomaliesDisksInodesThresholds;
}
export interface HostAnomaliesDisksInodesThresholds {
    /**
     * Alert if percentage of available inodes is lower than *X*% in 3 out of 5 samples
     */
    percentage: number;
}
export interface HostAnomaliesDisksSpace {
    /**
     * The detection is enabled (`true`) or disabled (`false`)
     */
    enabled: boolean;
    /**
     * Custom thresholds for low disk space. If not set, automatic mode is used
     */
    thresholds?: outputs.HostAnomaliesDisksSpaceThresholds;
}
export interface HostAnomaliesDisksSpaceThresholds {
    /**
     * Alert if free disk space is lower than *X*% in 3 out of 5 samples
     */
    percentage: number;
}
export interface HostAnomaliesDisksSpeed {
    /**
     * The detection is enabled (`true`) or disabled (`false`)
     */
    enabled: boolean;
    /**
     * Custom thresholds for slow running disks. If not set, the automatic mode is used
     */
    thresholds?: outputs.HostAnomaliesDisksSpeedThresholds;
}
export interface HostAnomaliesDisksSpeedThresholds {
    /**
     * Alert if disk read/write time is higher than *X* milliseconds in 3 out of 5 samples
     */
    writeAndReadTime: number;
}
export interface HostAnomaliesGc {
    /**
     * The detection is enabled (`true`) or disabled (`false`)
     */
    enabled: boolean;
    /**
     * Custom thresholds for high GC activity. If not set, automatic mode is used.   Meeting **any** of these conditions triggers an alert
     */
    thresholds?: outputs.HostAnomaliesGcThresholds;
}
export interface HostAnomaliesGcThresholds {
    /**
     * GC suspension is higher than *X*% in 3 out of 5 samples
     */
    suspensionPercentage: number;
    /**
     * GC time is higher than *X*% in 3 out of 5 samples
     */
    timePercentage: number;
}
export interface HostAnomaliesJava {
    /**
     * Configuration of Java out of memory problems detection
     */
    outOfMemory?: outputs.HostAnomaliesJavaOutOfMemory;
    /**
     * Configuration of Java out of threads problems detection
     */
    outOfThreads?: outputs.HostAnomaliesJavaOutOfThreads;
}
export interface HostAnomaliesJavaOutOfMemory {
    /**
     * The detection is enabled (`true`) or disabled (`false`)
     */
    enabled: boolean;
    /**
     * Custom thresholds for Java out of memory. If not set, automatic mode is used
     */
    thresholds?: outputs.HostAnomaliesJavaOutOfMemoryThresholds;
}
export interface HostAnomaliesJavaOutOfMemoryThresholds {
    /**
     * Alert if the number of Java out of memory exceptions is *X* per minute or higher
     */
    exceptionCount: number;
}
export interface HostAnomaliesJavaOutOfThreads {
    /**
     * The detection is enabled (`true`) or disabled (`false`)
     */
    enabled: boolean;
    /**
     * Custom thresholds for Java out of threads detection. If not set, automatic mode is used
     */
    thresholds?: outputs.HostAnomaliesJavaOutOfThreadsThresholds;
}
export interface HostAnomaliesJavaOutOfThreadsThresholds {
    /**
     * Alert if the number of Java out of threads exceptions is *X* per minute or higher
     */
    exceptionCount: number;
}
export interface HostAnomaliesMemory {
    /**
     * The detection is enabled (`true`) or disabled (`false`)
     */
    enabled: boolean;
    /**
     * Custom thresholds for high memory usage. If not set then the automatic mode is used. **Both** conditions must be met to trigger an alert
     */
    thresholds?: outputs.HostAnomaliesMemoryThresholds;
}
export interface HostAnomaliesMemoryThresholds {
    /**
     * Custom thresholds for Linux
     */
    linux: outputs.HostAnomaliesMemoryThresholdsLinux;
    /**
     * Custom thresholds for Windows
     */
    windows: outputs.HostAnomaliesMemoryThresholdsWindows;
}
export interface HostAnomaliesMemoryThresholdsLinux {
    /**
     * Memory page fault rate is higher than *X* faults per second
     */
    pageFaults: number;
    /**
     * Memory usage is higher than *X*%
     */
    usage: number;
}
export interface HostAnomaliesMemoryThresholdsWindows {
    /**
     * Memory page fault rate is higher than *X* faults per second
     */
    pageFaults: number;
    /**
     * Memory usage is higher than *X*%
     */
    usage: number;
}
export interface HostAnomaliesNetwork {
    /**
     * Configuration of TCP connectivity problems detection
     */
    connectivity?: outputs.HostAnomaliesNetworkConnectivity;
    /**
     * Configuration of high number of dropped packets detection
     */
    droppedPackets?: outputs.HostAnomaliesNetworkDroppedPackets;
    /**
     * Configuration of high number of network errors detection
     */
    errors?: outputs.HostAnomaliesNetworkErrors;
    /**
     * Configuration of high retransmission rate detection
     */
    retransmission?: outputs.HostAnomaliesNetworkRetransmission;
    /**
     * Configuration of high network utilization detection
     */
    utilization?: outputs.HostAnomaliesNetworkUtilization;
}
export interface HostAnomaliesNetworkConnectivity {
    /**
     * The detection is enabled (`true`) or disabled (`false`)
     */
    enabled: boolean;
    /**
     * Custom thresholds for TCP connection problems. If not set, automatic mode is used.   **All** of these conditions must be met to trigger an alert
     */
    thresholds?: outputs.HostAnomaliesNetworkConnectivityThresholds;
}
export interface HostAnomaliesNetworkConnectivityThresholds {
    /**
     * Number of failed connections is higher than *X* connections per minute in 3 out of 5 samples
     */
    failedConnections: number;
    /**
     * Percentage of new connection failures is higher than *X*% in 3 out of 5 samples
     */
    newConnectionFailures: number;
}
export interface HostAnomaliesNetworkDroppedPackets {
    /**
     * The detection is enabled (`true`) or disabled (`false`)
     */
    enabled: boolean;
    /**
     * Custom thresholds for dropped packets. If not set, automatic mode is used.   **All** of these conditions must be met to trigger an alert
     */
    thresholds?: outputs.HostAnomaliesNetworkDroppedPacketsThresholds;
}
export interface HostAnomaliesNetworkDroppedPacketsThresholds {
    /**
     * Receive/transmit dropped packet percentage is higher than *X*% in 3 out of 5 samples
     */
    droppedPackets: number;
    /**
     * Total receive/transmit packets rate is higher than *X* packets per second in 3 out of 5 samples
     */
    totalPacketsRate: number;
}
export interface HostAnomaliesNetworkErrors {
    /**
     * The detection is enabled (`true`) or disabled (`false`)
     */
    enabled: boolean;
    /**
     * Custom thresholds for network errors. If not set, automatic mode is used.   **All** of these conditions must be met to trigger an alert
     */
    thresholds?: outputs.HostAnomaliesNetworkErrorsThresholds;
}
export interface HostAnomaliesNetworkErrorsThresholds {
    /**
     * Receive/transmit error packet percentage is higher than *X*% in 3 out of 5 samples
     */
    errorsPercentage: number;
    /**
     * Total receive/transmit packets rate is higher than *X* packets per second in 3 out of 5 samples
     */
    totalPacketsRate: number;
}
export interface HostAnomaliesNetworkRetransmission {
    /**
     * The detection is enabled (`true`) or disabled (`false`)
     */
    enabled: boolean;
    /**
     * Custom thresholds for high retransmission rate. If not set, automatic mode is used.   **All** of these conditions must be met to trigger an alert
     */
    thresholds?: outputs.HostAnomaliesNetworkRetransmissionThresholds;
}
export interface HostAnomaliesNetworkRetransmissionThresholds {
    /**
     * Retransmission rate is higher than *X*% in 3 out of 5 samples
     */
    retransmissionRate: number;
    /**
     * Number of retransmitted packets is higher than *X* packets per minute in 3 out of 5 samples
     */
    retransmittedPackets: number;
}
export interface HostAnomaliesNetworkUtilization {
    /**
     * The detection is enabled (`true`) or disabled (`false`)
     */
    enabled: boolean;
    /**
     * Custom thresholds for high network utilization. If not set, automatic mode is used
     */
    thresholds?: outputs.HostAnomaliesNetworkUtilizationThresholds;
}
export interface HostAnomaliesNetworkUtilizationThresholds {
    /**
     * Alert if sent/received traffic utilization is higher than *X*% in 3 out of 5 samples
     */
    utilization: number;
}
export interface HostAnomaliesV2Host {
    /**
     * no documentation available
     */
    connectionLostDetection: outputs.HostAnomaliesV2HostConnectionLostDetection;
    /**
     * no documentation available
     */
    highCpuSaturationDetection: outputs.HostAnomaliesV2HostHighCpuSaturationDetection;
    /**
     * no documentation available
     */
    highGcActivityDetection: outputs.HostAnomaliesV2HostHighGcActivityDetection;
    /**
     * no documentation available
     */
    highMemoryDetection: outputs.HostAnomaliesV2HostHighMemoryDetection;
    /**
     * no documentation available
     */
    highSystemLoadDetection: outputs.HostAnomaliesV2HostHighSystemLoadDetection;
    /**
     * no documentation available
     */
    outOfMemoryDetection: outputs.HostAnomaliesV2HostOutOfMemoryDetection;
    /**
     * no documentation available
     */
    outOfThreadsDetection: outputs.HostAnomaliesV2HostOutOfThreadsDetection;
}
export interface HostAnomaliesV2HostConnectionLostDetection {
    /**
     * Detect host or monitoring connection lost problems
     */
    enabled: boolean;
    /**
     * Graceful host shutdowns
     */
    onGracefulShutdowns?: string;
}
export interface HostAnomaliesV2HostHighCpuSaturationDetection {
    /**
     * no documentation available
     */
    customThresholds?: outputs.HostAnomaliesV2HostHighCpuSaturationDetectionCustomThresholds;
    /**
     * Detection mode for CPU saturation
     */
    detectionMode?: string;
    /**
     * Detect CPU saturation on host
     */
    enabled: boolean;
}
export interface HostAnomaliesV2HostHighCpuSaturationDetectionCustomThresholds {
    /**
     * Alert if the CPU usage is higher than this threshold for the defined amount of samples
     */
    cpuSaturation: number;
    /**
     * no documentation available
     */
    eventThresholds: outputs.HostAnomaliesV2HostHighCpuSaturationDetectionCustomThresholdsEventThresholds;
}
export interface HostAnomaliesV2HostHighCpuSaturationDetectionCustomThresholdsEventThresholds {
    /**
     * The number of **10-second samples** that form the sliding evaluation window for dealerting.
     */
    dealertingEvaluationWindow: number;
    /**
     * The number of **10-second samples** within the evaluation window that must be lower the threshold to close an event
     */
    dealertingSamples: number;
    /**
     * The number of **10-second samples** that form the sliding evaluation window to detect violating samples.
     */
    violatingEvaluationWindow: number;
    /**
     * The number of **10-second samples** within the evaluation window that must exceed the threshold to trigger an event
     */
    violatingSamples: number;
}
export interface HostAnomaliesV2HostHighGcActivityDetection {
    /**
     * Alert if the GC time **or** the GC suspension is exceeded
     */
    customThresholds?: outputs.HostAnomaliesV2HostHighGcActivityDetectionCustomThresholds;
    /**
     * Detection mode for high GC activity
     */
    detectionMode?: string;
    /**
     * You may also configure high GC activity alerting for .NET processes on [extensions events page](https://www.terraform.io/#settings/anomalydetection/extensionevents).
     */
    enabled: boolean;
}
export interface HostAnomaliesV2HostHighGcActivityDetectionCustomThresholds {
    /**
     * no documentation available
     */
    eventThresholds: outputs.HostAnomaliesV2HostHighGcActivityDetectionCustomThresholdsEventThresholds;
    /**
     * Alert if the GC suspension is higher than this threshold
     */
    gcSuspensionPercentage: number;
    /**
     * Alert if GC time is higher than this threshold
     */
    gcTimePercentage: number;
}
export interface HostAnomaliesV2HostHighGcActivityDetectionCustomThresholdsEventThresholds {
    /**
     * The number of **10-second samples** that form the sliding evaluation window for dealerting.
     */
    dealertingEvaluationWindow: number;
    /**
     * The number of **10-second samples** within the evaluation window that must be lower the threshold to close an event
     */
    dealertingSamples: number;
    /**
     * The number of **10-second samples** that form the sliding evaluation window to detect violating samples.
     */
    violatingEvaluationWindow: number;
    /**
     * The number of **10-second samples** within the evaluation window that must exceed the threshold to trigger an event
     */
    violatingSamples: number;
}
export interface HostAnomaliesV2HostHighMemoryDetection {
    /**
     * Alert if **both** the memory usage and the memory page fault rate thresholds are exceeded on Windows or on Unix systems
     */
    customThresholds?: outputs.HostAnomaliesV2HostHighMemoryDetectionCustomThresholds;
    /**
     * Detection mode for high memory usage
     */
    detectionMode?: string;
    /**
     * Detect high memory usage on host
     */
    enabled: boolean;
}
export interface HostAnomaliesV2HostHighMemoryDetectionCustomThresholds {
    /**
     * no documentation available
     */
    eventThresholds: outputs.HostAnomaliesV2HostHighMemoryDetectionCustomThresholdsEventThresholds;
    /**
     * Alert if the memory page fault rate on Unix systems is higher than this threshold for the defined amount of samples
     */
    pageFaultsPerSecondNonWindows: number;
    /**
     * Alert if the memory page fault rate on Windows is higher than this threshold for the defined amount of samples
     */
    pageFaultsPerSecondWindows: number;
    /**
     * Alert if the memory usage on Unix systems is higher than this threshold
     */
    usedMemoryPercentageNonWindows: number;
    /**
     * Alert if the memory usage on Windows is higher than this threshold
     */
    usedMemoryPercentageWindows: number;
}
export interface HostAnomaliesV2HostHighMemoryDetectionCustomThresholdsEventThresholds {
    /**
     * The number of **10-second samples** that form the sliding evaluation window for dealerting.
     */
    dealertingEvaluationWindow: number;
    /**
     * The number of **10-second samples** within the evaluation window that must be lower the threshold to close an event
     */
    dealertingSamples: number;
    /**
     * The number of **10-second samples** that form the sliding evaluation window to detect violating samples.
     */
    violatingEvaluationWindow: number;
    /**
     * The number of **10-second samples** within the evaluation window that must exceed the threshold to trigger an event
     */
    violatingSamples: number;
}
export interface HostAnomaliesV2HostHighSystemLoadDetection {
    /**
     * no documentation available
     */
    customThresholds?: outputs.HostAnomaliesV2HostHighSystemLoadDetectionCustomThresholds;
    /**
     * Possible Values: `Auto`, `Custom`
     */
    detectionMode?: string;
    /**
     * This setting is enabled (`true`) or disabled (`false`)
     */
    enabled: boolean;
}
export interface HostAnomaliesV2HostHighSystemLoadDetectionCustomThresholds {
    /**
     * no documentation available
     */
    eventThresholds: outputs.HostAnomaliesV2HostHighSystemLoadDetectionCustomThresholdsEventThresholds;
    /**
     * Alert if the System Load / Logical cpu core is higher than this threshold for the defined amount of samples
     */
    systemLoad: number;
}
export interface HostAnomaliesV2HostHighSystemLoadDetectionCustomThresholdsEventThresholds {
    /**
     * The number of **10-second samples** that form the sliding evaluation window for dealerting.
     */
    dealertingEvaluationWindow: number;
    /**
     * The number of **10-second samples** within the evaluation window that must be lower the threshold to close an event
     */
    dealertingSamples: number;
    /**
     * The number of **10-second samples** that form the sliding evaluation window to detect violating samples.
     */
    violatingEvaluationWindow: number;
    /**
     * The number of **10-second samples** within the evaluation window that must exceed the threshold to trigger an event
     */
    violatingSamples: number;
}
export interface HostAnomaliesV2HostOutOfMemoryDetection {
    /**
     * no documentation available
     */
    customThresholds?: outputs.HostAnomaliesV2HostOutOfMemoryDetectionCustomThresholds;
    /**
     * Detection mode for Java out of memory problem
     */
    detectionMode?: string;
    /**
     * Detect Java out of memory problem
     */
    enabled: boolean;
}
export interface HostAnomaliesV2HostOutOfMemoryDetectionCustomThresholds {
    /**
     * no documentation available
     */
    eventThresholds: outputs.HostAnomaliesV2HostOutOfMemoryDetectionCustomThresholdsEventThresholds;
    /**
     * Alert if the number of Java out-of-memory exceptions is at least this value
     */
    outOfMemoryExceptionsNumber: number;
}
export interface HostAnomaliesV2HostOutOfMemoryDetectionCustomThresholdsEventThresholds {
    /**
     * The number of **10-second samples** that form the sliding evaluation window for dealerting.
     */
    dealertingEvaluationWindow: number;
    /**
     * The number of **10-second samples** within the evaluation window that must be lower the threshold to close an event
     */
    dealertingSamples: number;
    /**
     * The number of **10-second samples** that form the sliding evaluation window to detect violating samples.
     */
    violatingEvaluationWindow: number;
    /**
     * The number of **10-second samples** within the evaluation window that must exceed the threshold to trigger an event
     */
    violatingSamples: number;
}
export interface HostAnomaliesV2HostOutOfThreadsDetection {
    /**
     * no documentation available
     */
    customThresholds?: outputs.HostAnomaliesV2HostOutOfThreadsDetectionCustomThresholds;
    /**
     * Detection mode for Java out of threads problem
     */
    detectionMode?: string;
    /**
     * Detect Java out of threads problem
     */
    enabled: boolean;
}
export interface HostAnomaliesV2HostOutOfThreadsDetectionCustomThresholds {
    /**
     * no documentation available
     */
    eventThresholds: outputs.HostAnomaliesV2HostOutOfThreadsDetectionCustomThresholdsEventThresholds;
    /**
     * Alert if the number of Java out-of-threads exceptions is at least this value
     */
    outOfThreadsExceptionsNumber: number;
}
export interface HostAnomaliesV2HostOutOfThreadsDetectionCustomThresholdsEventThresholds {
    /**
     * The number of **10-second samples** that form the sliding evaluation window for dealerting.
     */
    dealertingEvaluationWindow: number;
    /**
     * The number of **10-second samples** within the evaluation window that must be lower the threshold to close an event
     */
    dealertingSamples: number;
    /**
     * The number of **10-second samples** that form the sliding evaluation window to detect violating samples.
     */
    violatingEvaluationWindow: number;
    /**
     * The number of **10-second samples** within the evaluation window that must exceed the threshold to trigger an event
     */
    violatingSamples: number;
}
export interface HostAnomaliesV2Network {
    /**
     * no documentation available
     */
    highNetworkDetection: outputs.HostAnomaliesV2NetworkHighNetworkDetection;
    /**
     * no documentation available
     */
    networkDroppedPacketsDetection: outputs.HostAnomaliesV2NetworkNetworkDroppedPacketsDetection;
    /**
     * no documentation available
     */
    networkErrorsDetection: outputs.HostAnomaliesV2NetworkNetworkErrorsDetection;
    /**
     * no documentation available
     */
    networkHighRetransmissionDetection: outputs.HostAnomaliesV2NetworkNetworkHighRetransmissionDetection;
    /**
     * no documentation available
     */
    networkTcpProblemsDetection: outputs.HostAnomaliesV2NetworkNetworkTcpProblemsDetection;
}
export interface HostAnomaliesV2NetworkHighNetworkDetection {
    /**
     * no documentation available
     */
    customThresholds?: outputs.HostAnomaliesV2NetworkHighNetworkDetectionCustomThresholds;
    /**
     * Detection mode for high network utilization
     */
    detectionMode?: string;
    /**
     * Detect high network utilization
     */
    enabled: boolean;
}
export interface HostAnomaliesV2NetworkHighNetworkDetectionCustomThresholds {
    /**
     * Alert if sent/received traffic utilization is higher than this threshold for the defined amount of samples
     */
    errorsPercentage: number;
    /**
     * no documentation available
     */
    eventThresholds: outputs.HostAnomaliesV2NetworkHighNetworkDetectionCustomThresholdsEventThresholds;
}
export interface HostAnomaliesV2NetworkHighNetworkDetectionCustomThresholdsEventThresholds {
    /**
     * The number of **10-second samples** that form the sliding evaluation window for dealerting.
     */
    dealertingEvaluationWindow: number;
    /**
     * The number of **10-second samples** within the evaluation window that must be lower the threshold to close an event
     */
    dealertingSamples: number;
    /**
     * The number of **10-second samples** that form the sliding evaluation window to detect violating samples.
     */
    violatingEvaluationWindow: number;
    /**
     * The number of **10-second samples** within the evaluation window that must exceed the threshold to trigger an event
     */
    violatingSamples: number;
}
export interface HostAnomaliesV2NetworkNetworkDroppedPacketsDetection {
    /**
     * Alert if the dropped packet percentage is higher than the specified threshold **and** the total packets rate is higher than the defined threshold for the defined amount of samples
     */
    customThresholds?: outputs.HostAnomaliesV2NetworkNetworkDroppedPacketsDetectionCustomThresholds;
    /**
     * Detection mode for high number of dropped packets
     */
    detectionMode?: string;
    /**
     * Detect high number of dropped packets
     */
    enabled: boolean;
}
export interface HostAnomaliesV2NetworkNetworkDroppedPacketsDetectionCustomThresholds {
    /**
     * Receive/transmit dropped packet percentage threshold
     */
    droppedPacketsPercentage: number;
    /**
     * no documentation available
     */
    eventThresholds: outputs.HostAnomaliesV2NetworkNetworkDroppedPacketsDetectionCustomThresholdsEventThresholds;
    /**
     * Total packets rate threshold
     */
    totalPacketsRate: number;
}
export interface HostAnomaliesV2NetworkNetworkDroppedPacketsDetectionCustomThresholdsEventThresholds {
    /**
     * The number of **10-second samples** that form the sliding evaluation window for dealerting.
     */
    dealertingEvaluationWindow: number;
    /**
     * The number of **10-second samples** within the evaluation window that must be lower the threshold to close an event
     */
    dealertingSamples: number;
    /**
     * The number of **10-second samples** that form the sliding evaluation window to detect violating samples.
     */
    violatingEvaluationWindow: number;
    /**
     * The number of **10-second samples** within the evaluation window that must exceed the threshold to trigger an event
     */
    violatingSamples: number;
}
export interface HostAnomaliesV2NetworkNetworkErrorsDetection {
    /**
     * Alert if the receive/transmit error packet percentage is higher than the specified threshold **and** the total packets rate is higher than the defined threshold for the defined amount of samples
     */
    customThresholds?: outputs.HostAnomaliesV2NetworkNetworkErrorsDetectionCustomThresholds;
    /**
     * Detection mode for high number of network errors
     */
    detectionMode?: string;
    /**
     * Detect high number of network errors
     */
    enabled: boolean;
}
export interface HostAnomaliesV2NetworkNetworkErrorsDetectionCustomThresholds {
    /**
     * Receive/transmit error packet percentage threshold
     */
    errorsPercentage: number;
    /**
     * no documentation available
     */
    eventThresholds: outputs.HostAnomaliesV2NetworkNetworkErrorsDetectionCustomThresholdsEventThresholds;
    /**
     * Total packets rate threshold
     */
    totalPacketsRate: number;
}
export interface HostAnomaliesV2NetworkNetworkErrorsDetectionCustomThresholdsEventThresholds {
    /**
     * The number of **10-second samples** that form the sliding evaluation window for dealerting.
     */
    dealertingEvaluationWindow: number;
    /**
     * The number of **10-second samples** within the evaluation window that must be lower the threshold to close an event
     */
    dealertingSamples: number;
    /**
     * The number of **10-second samples** that form the sliding evaluation window to detect violating samples.
     */
    violatingEvaluationWindow: number;
    /**
     * The number of **10-second samples** within the evaluation window that must exceed the threshold to trigger an event
     */
    violatingSamples: number;
}
export interface HostAnomaliesV2NetworkNetworkHighRetransmissionDetection {
    /**
     * Alert if the retransmission rate is higher than the specified threshold **and** the number of retransmitted packets is higher than the defined threshold for the defined amount of samples
     */
    customThresholds?: outputs.HostAnomaliesV2NetworkNetworkHighRetransmissionDetectionCustomThresholds;
    /**
     * Detection mode for high retransmission rate
     */
    detectionMode?: string;
    /**
     * Detect high retransmission rate
     */
    enabled: boolean;
}
export interface HostAnomaliesV2NetworkNetworkHighRetransmissionDetectionCustomThresholds {
    /**
     * no documentation available
     */
    eventThresholds: outputs.HostAnomaliesV2NetworkNetworkHighRetransmissionDetectionCustomThresholdsEventThresholds;
    /**
     * Retransmission rate threshold
     */
    retransmissionRatePercentage: number;
    /**
     * Number of retransmitted packets threshold
     */
    retransmittedPacketsNumberPerMinute: number;
}
export interface HostAnomaliesV2NetworkNetworkHighRetransmissionDetectionCustomThresholdsEventThresholds {
    /**
     * The number of **10-second samples** that form the sliding evaluation window for dealerting.
     */
    dealertingEvaluationWindow: number;
    /**
     * The number of **10-second samples** within the evaluation window that must be lower the threshold to close an event
     */
    dealertingSamples: number;
    /**
     * The number of **10-second samples** that form the sliding evaluation window to detect violating samples.
     */
    violatingEvaluationWindow: number;
    /**
     * The number of **10-second samples** within the evaluation window that must exceed the threshold to trigger an event
     */
    violatingSamples: number;
}
export interface HostAnomaliesV2NetworkNetworkTcpProblemsDetection {
    /**
     * Alert if the percentage of new connection failures is higher than the specified threshold **and** the number of failed connections is higher than the defined threshold for the defined amount of samples
     */
    customThresholds?: outputs.HostAnomaliesV2NetworkNetworkTcpProblemsDetectionCustomThresholds;
    /**
     * Detection mode for TCP connectivity problems
     */
    detectionMode?: string;
    /**
     * Detect TCP connectivity problems for process
     */
    enabled: boolean;
}
export interface HostAnomaliesV2NetworkNetworkTcpProblemsDetectionCustomThresholds {
    /**
     * no documentation available
     */
    eventThresholds: outputs.HostAnomaliesV2NetworkNetworkTcpProblemsDetectionCustomThresholdsEventThresholds;
    /**
     * Number of failed connections threshold
     */
    failedConnectionsNumberPerMinute: number;
    /**
     * New connection failure threshold
     */
    newConnectionFailuresPercentage: number;
}
export interface HostAnomaliesV2NetworkNetworkTcpProblemsDetectionCustomThresholdsEventThresholds {
    /**
     * The number of **10-second samples** that form the sliding evaluation window for dealerting.
     */
    dealertingEvaluationWindow: number;
    /**
     * The number of **10-second samples** within the evaluation window that must be lower the threshold to close an event
     */
    dealertingSamples: number;
    /**
     * The number of **10-second samples** that form the sliding evaluation window to detect violating samples.
     */
    violatingEvaluationWindow: number;
    /**
     * The number of **10-second samples** within the evaluation window that must exceed the threshold to trigger an event
     */
    violatingSamples: number;
}
export interface HostNamingCondition {
    /**
     * A conditions for the metric usage
     */
    conditions?: outputs.HostNamingConditionCondition[];
}
export interface HostNamingConditionCondition {
    /**
     * Comparison for `APPLICATION_TYPE` attributes
     *
     * @deprecated You should use 'application_type' instead of 'application_type_comparison'. This attribute still exists for backwards compatibility.
     */
    applicationTypeComparisons?: outputs.HostNamingConditionConditionApplicationTypeComparison[];
    /**
     * Comparison for `APPLICATION_TYPE` attributes
     */
    applicationTypes?: outputs.HostNamingConditionConditionApplicationType[];
    /**
     * Comparison for `AZURE_COMPUTE_MODE` attributes
     */
    azureComputeModeComparisons?: outputs.HostNamingConditionConditionAzureComputeModeComparison[];
    /**
     * Comparison for `AZURE_COMPUTE_MODE` attributes
     *
     * @deprecated You should use 'azure_compute_mode' instead of 'azure_compute_mode_comparison'. This attribute still exists for backwards compatibility.
     */
    azureComputeModes?: outputs.HostNamingConditionConditionAzureComputeMode[];
    /**
     * Comparison for `AZURE_SKU` attributes
     *
     * @deprecated You should use 'azure_sku' instead of 'azure_sku_comparision'. This attribute still exists for backwards compatibility.
     */
    azureSkuComparisions?: outputs.HostNamingConditionConditionAzureSkuComparision[];
    /**
     * Comparison for `AZURE_SKU` attributes
     */
    azureSkus?: outputs.HostNamingConditionConditionAzureSkus[];
    /**
     * A comparison that's yet unknown to the provider. Operator and Value need to be encoded using the 'unknowns' property.
     *
     * @deprecated You should use 'comparison' instead of 'base_comparison_basic'. This attribute still exists for backwards compatibility.
     */
    baseComparisonBasics?: outputs.HostNamingConditionConditionBaseComparisonBasic[];
    /**
     * Fallback for not yet known type
     *
     * @deprecated 'base_condition_key' is deprecated. You should use 'key'
     */
    baseConditionKeys?: outputs.HostNamingConditionConditionBaseConditionKey[];
    /**
     * Comparison for `BITNESS` attributes
     *
     * @deprecated You should use 'bitness' instead of 'bitness_comparision'. This attribute still exists for backwards compatibility.
     */
    bitnessComparisions?: outputs.HostNamingConditionConditionBitnessComparision[];
    /**
     * Comparison for `BITNESS` attributes
     */
    bitnesses?: outputs.HostNamingConditionConditionBitness[];
    /**
     * Comparison for `CLOUD_TYPE` attributes
     *
     * @deprecated You should use 'cloud_type' instead of 'cloud_type_comparison'. This attribute still exists for backwards compatibility.
     */
    cloudTypeComparisons?: outputs.HostNamingConditionConditionCloudTypeComparison[];
    /**
     * Comparison for `CLOUD_TYPE` attributes
     */
    cloudTypes?: outputs.HostNamingConditionConditionCloudType[];
    /**
     * A comparison that's yet unknown to the provider. Operator and Value need to be encoded using the 'unknowns' property.
     */
    comparisons?: outputs.HostNamingConditionConditionComparison[];
    /**
     * Comparison for `CUSTOM_APPLICATION_TYPE` attributes
     *
     * @deprecated You should use 'custom_application_type' instead of 'custom_application_type_comparison'. This attribute still exists for backwards compatibility.
     */
    customApplicationTypeComparisons?: outputs.HostNamingConditionConditionCustomApplicationTypeComparison[];
    /**
     * Comparison for `CUSTOM_APPLICATION_TYPE` attributes
     */
    customApplicationTypes?: outputs.HostNamingConditionConditionCustomApplicationType[];
    /**
     * Key for Custom Host Metadata
     *
     * @deprecated 'custom_host_metadata_condition_key' is deprecated. You should use 'custom_host_metadata'
     */
    customHostMetadataConditionKeys?: outputs.HostNamingConditionConditionCustomHostMetadataConditionKey[];
    /**
     * Key for Custom Host Metadata
     */
    customHostMetadatas?: outputs.HostNamingConditionConditionCustomHostMetadata[];
    /**
     * Key for Custom Process Metadata
     *
     * @deprecated 'custom_process_metadata_condition_key' is deprecated. You should use 'custom_process_metadata'
     */
    customProcessMetadataConditionKeys?: outputs.HostNamingConditionConditionCustomProcessMetadataConditionKey[];
    /**
     * Key for Custom Process Metadata
     */
    customProcessMetadatas?: outputs.HostNamingConditionConditionCustomProcessMetadata[];
    /**
     * Comparison for `DATABASE_TOPOLOGY` attributes
     */
    databaseTopologies?: outputs.HostNamingConditionConditionDatabaseTopology[];
    /**
     * Comparison for `DATABASE_TOPOLOGY` attributes
     *
     * @deprecated You should use 'database_topology' instead of 'database_topology_comparison'. This attribute still exists for backwards compatibility.
     */
    databaseTopologyComparisons?: outputs.HostNamingConditionConditionDatabaseTopologyComparison[];
    /**
     * Comparison for `DCRUM_DECODER_TYPE` attributes
     *
     * @deprecated You should use 'dcrum_decoder' instead of 'dcrum_decoder_comparison'. This attribute still exists for backwards compatibility.
     */
    dcrumDecoderComparisons?: outputs.HostNamingConditionConditionDcrumDecoderComparison[];
    /**
     * Comparison for `DCRUM_DECODER_TYPE` attributes
     */
    dcrumDecoders?: outputs.HostNamingConditionConditionDcrumDecoder[];
    /**
     * Comparison for `ENTITY_ID` attributes
     */
    entities?: outputs.HostNamingConditionConditionEntity[];
    /**
     * Comparison for `ENTITY_ID` attributes
     *
     * @deprecated You should use 'entity' instead of 'entity_id_comparison'. This attribute still exists for backwards compatibility.
     */
    entityIdComparisons?: outputs.HostNamingConditionConditionEntityIdComparison[];
    /**
     * Comparison for `SIMPLE_HOST_TECH` attributes
     */
    hostTeches?: outputs.HostNamingConditionConditionHostTech[];
    /**
     * `hypervisorTypeComparision` is deprecated. Use `hypervisor` instead
     *
     * @deprecated `hypervisorTypeComparision` is deprecated. Use `hypervisor` instead
     */
    hypervisorTypeComparisions?: outputs.HostNamingConditionConditionHypervisorTypeComparision[];
    /**
     * Comparison for `HYPERVISOR_TYPE` attributes
     */
    hypervisors?: outputs.HostNamingConditionConditionHypervisor[];
    /**
     * Comparison for `INDEXED_NAME` attributes
     *
     * @deprecated You should use 'indexed_name' instead of 'indexed_name_comparison'. This attribute still exists for backwards compatibility.
     */
    indexedNameComparisons?: outputs.HostNamingConditionConditionIndexedNameComparison[];
    /**
     * Comparison for `INDEXED_NAME` attributes
     */
    indexedNames?: outputs.HostNamingConditionConditionIndexedName[];
    /**
     * Comparison for `INDEXED_STRING` attributes
     *
     * @deprecated You should use 'indexed_string' instead of 'indexed_string_comparison'. This attribute still exists for backwards compatibility.
     */
    indexedStringComparisons?: outputs.HostNamingConditionConditionIndexedStringComparison[];
    /**
     * Comparison for `INDEXED_STRING` attributes
     */
    indexedStrings?: outputs.HostNamingConditionConditionIndexedString[];
    /**
     * Comparison for `INDEXED_TAG` attributes
     *
     * @deprecated You should use 'indexed_tag' instead of 'indexed_tag_comparison'. This attribute still exists for backwards compatibility.
     */
    indexedTagComparisons?: outputs.HostNamingConditionConditionIndexedTagComparison[];
    /**
     * Comparison for `INDEXED_TAG` attributes
     */
    indexedTags?: outputs.HostNamingConditionConditionIndexedTag[];
    /**
     * Comparison for `INTEGER` attributes
     *
     * @deprecated You should use 'integer' instead of 'integer_comparison'. This attribute still exists for backwards compatibility.
     */
    integerComparisons?: outputs.HostNamingConditionConditionIntegerComparison[];
    /**
     * Comparison for `INTEGER` attributes
     */
    integers?: outputs.HostNamingConditionConditionInteger[];
    /**
     * Comparison for `IP_ADDRESS` attributes
     *
     * @deprecated You should use 'ipaddress' instead of 'ipaddress_comparison'. This attribute still exists for backwards compatibility.
     */
    ipaddressComparisons?: outputs.HostNamingConditionConditionIpaddressComparison[];
    /**
     * Comparison for `IP_ADDRESS` attributes
     */
    ipaddresses?: outputs.HostNamingConditionConditionIpaddress[];
    /**
     * Fallback for not yet known type
     */
    keys?: outputs.HostNamingConditionConditionKey[];
    /**
     * Comparison for `MOBILE_PLATFORM` attributes
     *
     * @deprecated You should use 'mobile_platform' instead of 'mobile_platform_comparison'. This attribute still exists for backwards compatibility.
     */
    mobilePlatformComparisons?: outputs.HostNamingConditionConditionMobilePlatformComparison[];
    /**
     * Comparison for `MOBILE_PLATFORM` attributes
     */
    mobilePlatforms?: outputs.HostNamingConditionConditionMobilePlatform[];
    /**
     * Comparison for `OS_ARCHITECTURE` attributes
     */
    osArches?: outputs.HostNamingConditionConditionOsArch[];
    /**
     * Comparison for `OS_TYPE` attributes
     */
    osTypes?: outputs.HostNamingConditionConditionOsType[];
    /**
     * Comparison for `OS_ARCHITECTURE` attributes
     *
     * @deprecated You should use 'os_arch' instead of 'osarchitecture_comparison'. This attribute still exists for backwards compatibility.
     */
    osarchitectureComparisons?: outputs.HostNamingConditionConditionOsarchitectureComparison[];
    /**
     * Comparison for `OS_TYPE` attributes
     *
     * @deprecated You should use 'os_type' instead of 'ostype_comparison'. This attribute still exists for backwards compatibility.
     */
    ostypeComparisons?: outputs.HostNamingConditionConditionOstypeComparison[];
    /**
     * Comparison for `PAAS_TYPE` attributes
     *
     * @deprecated You should use 'paas_type' instead of 'paas_type_comparison'. This attribute still exists for backwards compatibility.
     */
    paasTypeComparisons?: outputs.HostNamingConditionConditionPaasTypeComparison[];
    /**
     * Comparison for `PAAS_TYPE` attributes
     */
    paasTypes?: outputs.HostNamingConditionConditionPaasType[];
    /**
     * The key for dynamic attributes of the `PROCESS_PREDEFINED_METADATA_KEY` type
     *
     * @deprecated 'process_metadata_condition_key' is deprecated. You should use 'process_metadata'
     */
    processMetadataConditionKeys?: outputs.HostNamingConditionConditionProcessMetadataConditionKey[];
    /**
     * The key for dynamic attributes of the `PROCESS_PREDEFINED_METADATA_KEY` type
     */
    processMetadatas?: outputs.HostNamingConditionConditionProcessMetadata[];
    /**
     * Comparison for `SERVICE_TOPOLOGY` attributes
     */
    serviceTopologies?: outputs.HostNamingConditionConditionServiceTopology[];
    /**
     * Comparison for `SERVICE_TOPOLOGY` attributes
     *
     * @deprecated You should use 'service_topology' instead of 'service_topology_comparison'. This attribute still exists for backwards compatibility.
     */
    serviceTopologyComparisons?: outputs.HostNamingConditionConditionServiceTopologyComparison[];
    /**
     * Comparison for `SERVICE_TYPE` attributes
     *
     * @deprecated You should use 'service_type' instead of 'service_type_comparison'. This attribute still exists for backwards compatibility.
     */
    serviceTypeComparisons?: outputs.HostNamingConditionConditionServiceTypeComparison[];
    /**
     * Comparison for `SERVICE_TYPE` attributes
     */
    serviceTypes?: outputs.HostNamingConditionConditionServiceType[];
    /**
     * Comparison for `SIMPLE_HOST_TECH` attributes
     *
     * @deprecated You should use 'host_tech' instead of 'simple_host_tech_comparison'. This attribute still exists for backwards compatibility.
     */
    simpleHostTechComparisons?: outputs.HostNamingConditionConditionSimpleHostTechComparison[];
    /**
     * Comparison for `SIMPLE_TECH` attributes
     *
     * @deprecated You should use 'tech' instead of 'simple_tech_comparison'. This attribute still exists for backwards compatibility.
     */
    simpleTechComparisons?: outputs.HostNamingConditionConditionSimpleTechComparison[];
    /**
     * Comparison for `STRING` attributes
     *
     * @deprecated You should use 'string' instead of 'string_comparison'. This attribute still exists for backwards compatibility.
     */
    stringComparisons?: outputs.HostNamingConditionConditionStringComparison[];
    /**
     * The key for dynamic attributes of the `STRING` type
     *
     * @deprecated 'string_condition_key' is deprecated. You should use 'string_key'
     */
    stringConditionKeys?: outputs.HostNamingConditionConditionStringConditionKey[];
    /**
     * The key for dynamic attributes of the `STRING` type
     */
    stringKeys?: outputs.HostNamingConditionConditionStringKey[];
    /**
     * Comparison for `STRING` attributes
     */
    strings?: outputs.HostNamingConditionConditionString[];
    /**
     * Comparison for `SYNTHETIC_ENGINE_TYPE` attributes
     *
     * @deprecated You should use 'synthetic_engine' instead of 'synthetic_engine_type_comparison'. This attribute still exists for backwards compatibility.
     */
    syntheticEngineTypeComparisons?: outputs.HostNamingConditionConditionSyntheticEngineTypeComparison[];
    /**
     * Comparison for `SYNTHETIC_ENGINE_TYPE` attributes
     */
    syntheticEngines?: outputs.HostNamingConditionConditionSyntheticEngine[];
    /**
     * Comparison for `TAG` attributes
     *
     * @deprecated You should use 'tag' instead of 'tag_comparison'. This attribute still exists for backwards compatibility.
     */
    tagComparisons?: outputs.HostNamingConditionConditionTagComparison[];
    /**
     * Comparison for `TAG` attributes
     */
    tags?: outputs.HostNamingConditionConditionTag[];
    /**
     * Comparison for `SIMPLE_TECH` attributes
     */
    teches?: outputs.HostNamingConditionConditionTech[];
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
}
export interface HostNamingConditionConditionApplicationType {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value?: string;
}
export interface HostNamingConditionConditionApplicationTypeComparison {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be APPLICATION_TYPE
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value?: string;
}
export interface HostNamingConditionConditionAzureComputeMode {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are DEDICATED or SHARED.
     */
    value?: string;
}
export interface HostNamingConditionConditionAzureComputeModeComparison {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are DEDICATED or SHARED.
     */
    value?: string;
}
export interface HostNamingConditionConditionAzureSkuComparision {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be AZURE_SKU
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are BASIC, DYNAMIC, FREE, PREMIUM, SHARED and STANDARD.
     */
    value?: string;
}
export interface HostNamingConditionConditionAzureSkus {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are BASIC, DYNAMIC, FREE, PREMIUM, SHARED and STANDARD.
     */
    value?: string;
}
export interface HostNamingConditionConditionBaseComparisonBasic {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * The type of comparison
     */
    type: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
}
export interface HostNamingConditionConditionBaseConditionKey {
    /**
     * The attribute to be used for comparision
     */
    attribute: string;
    /**
     * Defines the actual set of fields depending on the value
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
}
export interface HostNamingConditionConditionBitness {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are 32 and 64.
     */
    value?: string;
}
export interface HostNamingConditionConditionBitnessComparision {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be BITNESS
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are 32 and 64.
     */
    value?: string;
}
export interface HostNamingConditionConditionCloudType {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are AZURE, EC2, GOOGLE_CLOUD_PLATFORM, OPENSTACK, ORACLE and UNRECOGNIZED.
     */
    value?: string;
}
export interface HostNamingConditionConditionCloudTypeComparison {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be CLOUD_TYPE
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are AZURE, EC2, GOOGLE_CLOUD_PLATFORM, OPENSTACK, ORACLE and UNRECOGNIZED.
     */
    value?: string;
}
export interface HostNamingConditionConditionComparison {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * The type of comparison
     */
    type: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
}
export interface HostNamingConditionConditionCustomApplicationType {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are AMAZON_ECHO, DESKTOP, EMBEDDED, IOT, MICROSOFT_HOLOLENS and UFO.
     */
    value?: string;
}
export interface HostNamingConditionConditionCustomApplicationTypeComparison {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be CUSTOM_APPLICATION_TYPE
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are AMAZON_ECHO, DESKTOP, EMBEDDED, IOT, MICROSOFT_HOLOLENS and UFO.
     */
    value?: string;
}
export interface HostNamingConditionConditionCustomHostMetadata {
    /**
     * The attribute to be used for comparision
     */
    attribute: string;
    /**
     * The key of the attribute, which need dynamic keys. Not applicable otherwise, as the attibute itself acts as a key
     */
    dynamicKey: outputs.HostNamingConditionConditionCustomHostMetadataDynamicKey;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
}
export interface HostNamingConditionConditionCustomHostMetadataConditionKey {
    /**
     * The attribute to be used for comparision
     */
    attribute: string;
    /**
     * The key of the attribute, which need dynamic keys. Not applicable otherwise, as the attibute itself acts as a key
     */
    dynamicKey: outputs.HostNamingConditionConditionCustomHostMetadataConditionKeyDynamicKey;
    /**
     * if specified, needs to be HOST_CUSTOM_METADATA_KEY
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
}
export interface HostNamingConditionConditionCustomHostMetadataConditionKeyDynamicKey {
    /**
     * The actual key of the custom metadata
     */
    key: string;
    /**
     * The source of the custom metadata. Possible values are ENVIRONMENT, GOOGLE_COMPUTE_ENGINE and PLUGIN
     */
    source: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
}
export interface HostNamingConditionConditionCustomHostMetadataDynamicKey {
    /**
     * The actual key of the custom metadata
     */
    key: string;
    /**
     * The source of the custom metadata. Possible values are ENVIRONMENT, GOOGLE_COMPUTE_ENGINE and PLUGIN
     */
    source: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
}
export interface HostNamingConditionConditionCustomProcessMetadata {
    /**
     * The attribute to be used for comparision
     */
    attribute: string;
    /**
     * The key of the attribute, which need dynamic keys. Not applicable otherwise, as the attibute itself acts as a key
     */
    dynamicKey: outputs.HostNamingConditionConditionCustomProcessMetadataDynamicKey;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
}
export interface HostNamingConditionConditionCustomProcessMetadataConditionKey {
    /**
     * The attribute to be used for comparision
     */
    attribute: string;
    /**
     * The key of the attribute, which need dynamic keys. Not applicable otherwise, as the attibute itself acts as a key
     */
    dynamicKey: outputs.HostNamingConditionConditionCustomProcessMetadataConditionKeyDynamicKey;
    /**
     * if specified, needs to be PROCESS_CUSTOM_METADATA_KEY
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
}
export interface HostNamingConditionConditionCustomProcessMetadataConditionKeyDynamicKey {
    /**
     * The actual key of the custom metadata
     */
    key: string;
    /**
     * The source of the custom metadata. Possible values are CLOUD_FOUNDRY, ENVIRONMENT, GOOGLE_CLOUD, KUBERNETES and PLUGIN
     */
    source: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
}
export interface HostNamingConditionConditionCustomProcessMetadataDynamicKey {
    /**
     * The actual key of the custom metadata
     */
    key: string;
    /**
     * The source of the custom metadata. Possible values are CLOUD_FOUNDRY, ENVIRONMENT, GOOGLE_CLOUD, KUBERNETES and PLUGIN
     */
    source: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
}
export interface HostNamingConditionConditionDatabaseTopology {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are CLUSTER, EMBEDDED, FAILOVER, IPC, LOAD_BALANCING, SINGLE_SERVER and UNSPECIFIED.
     */
    value?: string;
}
export interface HostNamingConditionConditionDatabaseTopologyComparison {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be DATABASE_TOPOLOGY
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are CLUSTER, EMBEDDED, FAILOVER, IPC, LOAD_BALANCING, SINGLE_SERVER and UNSPECIFIED.
     */
    value?: string;
}
export interface HostNamingConditionConditionDcrumDecoder {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are ALL_OTHER, CITRIX_APPFLOW, CITRIX_ICA, CITRIX_ICA_OVER_SSL, DB2_DRDA, HTTP, HTTPS, HTTP_EXPRESS, INFORMIX, MYSQL, ORACLE, SAP_GUI, SAP_GUI_OVER_HTTP, SAP_GUI_OVER_HTTPS, SAP_HANA_DB, SAP_RFC, SSL and TDS.
     */
    value?: string;
}
export interface HostNamingConditionConditionDcrumDecoderComparison {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be DCRUM_DECODER_TYPE
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are ALL_OTHER, CITRIX_APPFLOW, CITRIX_ICA, CITRIX_ICA_OVER_SSL, DB2_DRDA, HTTP, HTTPS, HTTP_EXPRESS, INFORMIX, MYSQL, ORACLE, SAP_GUI, SAP_GUI_OVER_HTTP, SAP_GUI_OVER_HTTPS, SAP_HANA_DB, SAP_RFC, SSL and TDS.
     */
    value?: string;
}
export interface HostNamingConditionConditionEntity {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Currently only EQUALS is supported. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value?: string;
}
export interface HostNamingConditionConditionEntityIdComparison {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Currently only EQUALS is supported. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be ENTITY_ID
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value?: string;
}
export interface HostNamingConditionConditionHostTech {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are EQUALS and EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value?: outputs.HostNamingConditionConditionHostTechValue;
}
export interface HostNamingConditionConditionHostTechValue {
    /**
     * Predefined technology, if technology is not predefined, then the verbatim type must be set. Possible values are APPARMOR, BOSH, BOSHBPM, CLOUDFOUNDRY, CONTAINERD, CRIO, DIEGO_CELL, DOCKER, GARDEN, GRSECURITY, KUBERNETES, OPENSHIFT, OPENSTACK_COMPUTE, OPENSTACK_CONTROLLER and SELINUX
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * Non-predefined technology, use for custom technologies
     */
    verbatimType?: string;
}
export interface HostNamingConditionConditionHypervisor {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are AHV, HYPER_V, KVM, LPAR, QEMU, VIRTUAL_BOX, VMWARE, WPAR and XEN.
     */
    value?: string;
}
export interface HostNamingConditionConditionHypervisorTypeComparision {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be HYPERVISOR_TYPE
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are AHV, HYPER_V, KVM, LPAR, QEMU, VIRTUAL_BOX, VMWARE, WPAR and XEN.
     */
    value?: string;
}
export interface HostNamingConditionConditionIndexedName {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS, CONTAINS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value?: string;
}
export interface HostNamingConditionConditionIndexedNameComparison {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS, CONTAINS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be INDEXED_NAME
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value?: string;
}
export interface HostNamingConditionConditionIndexedString {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value?: string;
}
export interface HostNamingConditionConditionIndexedStringComparison {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be INDEXED_STRING
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value?: string;
}
export interface HostNamingConditionConditionIndexedTag {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * Tag of a Dynatrace entity
     */
    value?: outputs.HostNamingConditionConditionIndexedTagValue;
}
export interface HostNamingConditionConditionIndexedTagComparison {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be INDEXED_TAG
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * Tag of a Dynatrace entity
     */
    value?: outputs.HostNamingConditionConditionIndexedTagComparisonValue;
}
export interface HostNamingConditionConditionIndexedTagComparisonValue {
    /**
     * The origin of the tag, such as AWS or Cloud Foundry. Possible values are AWS, AWS_GENERIC, AZURE, CLOUD_FOUNDRY, CONTEXTLESS, ENVIRONMENT, GOOGLE_CLOUD and KUBERNETES. Custom tags use the `CONTEXTLESS` value
     */
    context: string;
    /**
     * The key of the tag. Custom tags have the tag value here
     */
    key: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value of the tag. Not applicable to custom tags
     */
    value?: string;
}
export interface HostNamingConditionConditionIndexedTagValue {
    /**
     * The origin of the tag, such as AWS or Cloud Foundry. Possible values are AWS, AWS_GENERIC, AZURE, CLOUD_FOUNDRY, CONTEXTLESS, ENVIRONMENT, GOOGLE_CLOUD and KUBERNETES. Custom tags use the `CONTEXTLESS` value
     */
    context: string;
    /**
     * The key of the tag. Custom tags have the tag value here
     */
    key: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value of the tag. Not applicable to custom tags
     */
    value?: string;
}
export interface HostNamingConditionConditionInteger {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are EQUALS, EXISTS, GREATER_THAN, GREATER_THAN_OR_EQUAL, LOWER_THAN and LOWER_THAN_OR_EQUAL. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value?: number;
}
export interface HostNamingConditionConditionIntegerComparison {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are EQUALS, EXISTS, GREATER_THAN, GREATER_THAN_OR_EQUAL, LOWER_THAN and LOWER_THAN_OR_EQUAL. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be INTEGER
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value?: number;
}
export interface HostNamingConditionConditionIpaddress {
    /**
     * The comparison is case-sensitive (`true`) or insensitive (`false`)
     */
    caseSensitive?: boolean;
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are BEGINS_WITH, CONTAINS, ENDS_WITH, EQUALS, EXISTS, IS_IP_IN_RANGE and REGEX_MATCHES. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value?: string;
}
export interface HostNamingConditionConditionIpaddressComparison {
    /**
     * The comparison is case-sensitive (`true`) or insensitive (`false`)
     */
    caseSensitive?: boolean;
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are BEGINS_WITH, CONTAINS, ENDS_WITH, EQUALS, EXISTS, IS_IP_IN_RANGE and REGEX_MATCHES. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be IP_ADDRESS
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value?: string;
}
export interface HostNamingConditionConditionKey {
    /**
     * The attribute to be used for comparision
     */
    attribute: string;
    /**
     * Defines the actual set of fields depending on the value
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
}
export interface HostNamingConditionConditionMobilePlatform {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are EQUALS and EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are ANDROID, IOS, LINUX, MAC_OS, OTHER, TVOS and WINDOWS.
     */
    value?: string;
}
export interface HostNamingConditionConditionMobilePlatformComparison {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are EQUALS and EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be MOBILE_PLATFORM
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are ANDROID, IOS, LINUX, MAC_OS, OTHER, TVOS and WINDOWS.
     */
    value?: string;
}
export interface HostNamingConditionConditionOsArch {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are EQUALS and EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are ARM, IA64, PARISC, PPC, PPCLE, S390, SPARC, X86 and ZOS.
     */
    value?: string;
}
export interface HostNamingConditionConditionOsType {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are EQUALS and EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are AIX, DARWIN, HPUX, LINUX, SOLARIS, WINDOWS and ZOS.
     */
    value?: string;
}
export interface HostNamingConditionConditionOsarchitectureComparison {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are EQUALS and EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be OS_ARCHITECTURE
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are ARM, IA64, PARISC, PPC, PPCLE, S390, SPARC, X86 and ZOS.
     */
    value?: string;
}
export interface HostNamingConditionConditionOstypeComparison {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are EQUALS and EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be OS_TYPE
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are AIX, DARWIN, HPUX, LINUX, SOLARIS, WINDOWS and ZOS.
     */
    value?: string;
}
export interface HostNamingConditionConditionPaasType {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are EQUALS and EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are AWS_ECS_EC2, AWS_ECS_FARGATE, AWS_LAMBDA, AZURE_FUNCTIONS, AZURE_WEBSITES, CLOUD_FOUNDRY, GOOGLE_APP_ENGINE, HEROKU, KUBERNETES and OPENSHIFT.
     */
    value?: string;
}
export interface HostNamingConditionConditionPaasTypeComparison {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are EQUALS and EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be PAAS_TYPE
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are AWS_ECS_EC2, AWS_ECS_FARGATE, AWS_LAMBDA, AZURE_FUNCTIONS, AZURE_WEBSITES, CLOUD_FOUNDRY, GOOGLE_APP_ENGINE, HEROKU, KUBERNETES and OPENSHIFT.
     */
    value?: string;
}
export interface HostNamingConditionConditionProcessMetadata {
    /**
     * The attribute to be used for comparision
     */
    attribute: string;
    /**
     * The key of the attribute, which need dynamic keys. Not applicable otherwise, as the attibute itself acts as a key. Possible values are AMAZON_ECR_IMAGE_ACCOUNT_ID,AMAZON_ECR_IMAGE_REGION, AMAZON_LAMBDA_FUNCTION_NAME, AMAZON_REGION, APACHE_CONFIG_PATH, APACHE_SPARK_MASTER_IP_ADDRESS, ASP_DOT_NET_CORE_APPLICATION_PATH, AWS_ECS_CLUSTER, AWS_ECS_CONTAINERNAME, AWS_ECS_FAMILY, AWS_ECS_REVISION, CASSANDRA_CLUSTER_NAME, CATALINA_BASE, CATALINA_HOME, CLOUD_FOUNDRY_APP_ID, CLOUD_FOUNDRY_APP_NAME, CLOUD_FOUNDRY_INSTANCE_INDEX, CLOUD_FOUNDRY_SPACE_ID, CLOUD_FOUNDRY_SPACE_NAME, COLDFUSION_JVM_CONFIG_FILE, COLDFUSION_SERVICE_NAME, COMMAND_LINE_ARGS, DOTNET_COMMAND, DOTNET_COMMAND_PATH, DYNATRACE_CLUSTER_ID, DYNATRACE_NODE_ID, ELASTICSEARCH_CLUSTER_NAME, ELASTICSEARCH_NODE_NAME, EQUINOX_CONFIG_PATH, EXE_NAME, EXE_PATH, GLASS_FISH_DOMAIN_NAME, GLASS_FISH_INSTANCE_NAME, GOOGLE_APP_ENGINE_INSTANCE, GOOGLE_APP_ENGINE_SERVICE, GOOGLE_CLOUD_PROJECT, HYBRIS_BIN_DIRECTORY, HYBRIS_CONFIG_DIRECTORY, HYBRIS_DATA_DIRECTORY, IBM_CICS_REGION, IBM_CTG_NAME, IBM_IMS_CONNECT_REGION, IBM_IMS_CONTROL_REGION, IBM_IMS_MESSAGE_PROCESSING_REGION, IBM_IMS_SOAP_GW_NAME, IBM_INTEGRATION_NODE_NAME, IBM_INTEGRATION_SERVER_NAME, IIS_APP_POOL, IIS_ROLE_NAME, JAVA_JAR_FILE, JAVA_JAR_PATH, JAVA_MAIN_CLASS, JAVA_MAIN_MODULE, JBOSS_HOME, JBOSS_MODE, JBOSS_SERVER_NAME, KUBERNETES_BASE_POD_NAME, KUBERNETES_CONTAINER_NAME, KUBERNETES_FULL_POD_NAME, KUBERNETES_NAMESPACE, KUBERNETES_POD_UID, MSSQL_INSTANCE_NAME, NODE_JS_APP_BASE_DIRECTORY, NODE_JS_APP_NAME, NODE_JS_SCRIPT_NAME, ORACLE_SID, PG_ID_CALC_INPUT_KEY_LINKAGE, PHP_SCRIPT_PATH, PHP_WORKING_DIRECTORY, RUBY_APP_ROOT_PATH, RUBY_SCRIPT_PATH, RULE_RESULT, SOFTWAREAG_INSTALL_ROOT, SOFTWAREAG_PRODUCTPROPNAME, SPRINGBOOT_APP_NAME, SPRINGBOOT_PROFILE_NAME, SPRINGBOOT_STARTUP_CLASS, TIBCO_BUSINESSWORKS_CE_APP_NAME, TIBCO_BUSINESSWORKS_CE_VERSION, TIBCO_BUSINESS_WORKS_APP_NODE_NAME, TIBCO_BUSINESS_WORKS_APP_SPACE_NAME, TIBCO_BUSINESS_WORKS_DOMAIN_NAME, TIBCO_BUSINESS_WORKS_ENGINE_PROPERTY_FILE, TIBCO_BUSINESS_WORKS_ENGINE_PROPERTY_FILE_PATH, TIBCO_BUSINESS_WORKS_HOME, VARNISH_INSTANCE_NAME, WEB_LOGIC_CLUSTER_NAME, WEB_LOGIC_DOMAIN_NAME, WEB_LOGIC_HOME, WEB_LOGIC_NAME, WEB_SPHERE_CELL_NAME, WEB_SPHERE_CLUSTER_NAME, WEB_SPHERE_NODE_NAME and WEB_SPHERE_SERVER_NAME
     */
    dynamicKey: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
}
export interface HostNamingConditionConditionProcessMetadataConditionKey {
    /**
     * The attribute to be used for comparision
     */
    attribute: string;
    /**
     * The key of the attribute, which need dynamic keys. Not applicable otherwise, as the attibute itself acts as a key. Possible values are AMAZON_ECR_IMAGE_ACCOUNT_ID,AMAZON_ECR_IMAGE_REGION, AMAZON_LAMBDA_FUNCTION_NAME, AMAZON_REGION, APACHE_CONFIG_PATH, APACHE_SPARK_MASTER_IP_ADDRESS, ASP_DOT_NET_CORE_APPLICATION_PATH, AWS_ECS_CLUSTER, AWS_ECS_CONTAINERNAME, AWS_ECS_FAMILY, AWS_ECS_REVISION, CASSANDRA_CLUSTER_NAME, CATALINA_BASE, CATALINA_HOME, CLOUD_FOUNDRY_APP_ID, CLOUD_FOUNDRY_APP_NAME, CLOUD_FOUNDRY_INSTANCE_INDEX, CLOUD_FOUNDRY_SPACE_ID, CLOUD_FOUNDRY_SPACE_NAME, COLDFUSION_JVM_CONFIG_FILE, COLDFUSION_SERVICE_NAME, COMMAND_LINE_ARGS, DOTNET_COMMAND, DOTNET_COMMAND_PATH, DYNATRACE_CLUSTER_ID, DYNATRACE_NODE_ID, ELASTICSEARCH_CLUSTER_NAME, ELASTICSEARCH_NODE_NAME, EQUINOX_CONFIG_PATH, EXE_NAME, EXE_PATH, GLASS_FISH_DOMAIN_NAME, GLASS_FISH_INSTANCE_NAME, GOOGLE_APP_ENGINE_INSTANCE, GOOGLE_APP_ENGINE_SERVICE, GOOGLE_CLOUD_PROJECT, HYBRIS_BIN_DIRECTORY, HYBRIS_CONFIG_DIRECTORY, HYBRIS_DATA_DIRECTORY, IBM_CICS_REGION, IBM_CTG_NAME, IBM_IMS_CONNECT_REGION, IBM_IMS_CONTROL_REGION, IBM_IMS_MESSAGE_PROCESSING_REGION, IBM_IMS_SOAP_GW_NAME, IBM_INTEGRATION_NODE_NAME, IBM_INTEGRATION_SERVER_NAME, IIS_APP_POOL, IIS_ROLE_NAME, JAVA_JAR_FILE, JAVA_JAR_PATH, JAVA_MAIN_CLASS, JAVA_MAIN_MODULE, JBOSS_HOME, JBOSS_MODE, JBOSS_SERVER_NAME, KUBERNETES_BASE_POD_NAME, KUBERNETES_CONTAINER_NAME, KUBERNETES_FULL_POD_NAME, KUBERNETES_NAMESPACE, KUBERNETES_POD_UID, MSSQL_INSTANCE_NAME, NODE_JS_APP_BASE_DIRECTORY, NODE_JS_APP_NAME, NODE_JS_SCRIPT_NAME, ORACLE_SID, PG_ID_CALC_INPUT_KEY_LINKAGE, PHP_SCRIPT_PATH, PHP_WORKING_DIRECTORY, RUBY_APP_ROOT_PATH, RUBY_SCRIPT_PATH, RULE_RESULT, SOFTWAREAG_INSTALL_ROOT, SOFTWAREAG_PRODUCTPROPNAME, SPRINGBOOT_APP_NAME, SPRINGBOOT_PROFILE_NAME, SPRINGBOOT_STARTUP_CLASS, TIBCO_BUSINESSWORKS_CE_APP_NAME, TIBCO_BUSINESSWORKS_CE_VERSION, TIBCO_BUSINESS_WORKS_APP_NODE_NAME, TIBCO_BUSINESS_WORKS_APP_SPACE_NAME, TIBCO_BUSINESS_WORKS_DOMAIN_NAME, TIBCO_BUSINESS_WORKS_ENGINE_PROPERTY_FILE, TIBCO_BUSINESS_WORKS_ENGINE_PROPERTY_FILE_PATH, TIBCO_BUSINESS_WORKS_HOME, VARNISH_INSTANCE_NAME, WEB_LOGIC_CLUSTER_NAME, WEB_LOGIC_DOMAIN_NAME, WEB_LOGIC_HOME, WEB_LOGIC_NAME, WEB_SPHERE_CELL_NAME, WEB_SPHERE_CLUSTER_NAME, WEB_SPHERE_NODE_NAME and WEB_SPHERE_SERVER_NAME
     */
    dynamicKey: string;
    /**
     * if specified, needs to be PROCESS_PREDEFINED_METADATA_KEY
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
}
export interface HostNamingConditionConditionServiceTopology {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are EQUALS and EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are EXTERNAL_SERVICE, FULLY_MONITORED and OPAQUE_SERVICE.
     */
    value?: string;
}
export interface HostNamingConditionConditionServiceTopologyComparison {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are EQUALS and EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be SERVICE_TOPOLOGY
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are EXTERNAL_SERVICE, FULLY_MONITORED and OPAQUE_SERVICE.
     */
    value?: string;
}
export interface HostNamingConditionConditionServiceType {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are EQUALS and EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are BACKGROUND_ACTIVITY, CICS_SERVICE, CUSTOM_SERVICE, DATABASE_SERVICE, ENTERPRISE_SERVICE_BUS_SERVICE, EXTERNAL, IBM_INTEGRATION_BUS_SERVICE, IMS_SERVICE, MESSAGING_SERVICE, QUEUE_LISTENER_SERVICE, RMI_SERVICE, RPC_SERVICE, WEB_REQUEST_SERVICE and WEB_SERVICE.
     */
    value?: string;
}
export interface HostNamingConditionConditionServiceTypeComparison {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are EQUALS and EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be SERVICE_TYPE
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are BACKGROUND_ACTIVITY, CICS_SERVICE, CUSTOM_SERVICE, DATABASE_SERVICE, ENTERPRISE_SERVICE_BUS_SERVICE, EXTERNAL, IBM_INTEGRATION_BUS_SERVICE, IMS_SERVICE, MESSAGING_SERVICE, QUEUE_LISTENER_SERVICE, RMI_SERVICE, RPC_SERVICE, WEB_REQUEST_SERVICE and WEB_SERVICE.
     */
    value?: string;
}
export interface HostNamingConditionConditionSimpleHostTechComparison {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are EQUALS and EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be SIMPLE_HOST_TECH
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value?: outputs.HostNamingConditionConditionSimpleHostTechComparisonValue;
}
export interface HostNamingConditionConditionSimpleHostTechComparisonValue {
    /**
     * Predefined technology, if technology is not predefined, then the verbatim type must be set. Possible values are APPARMOR, BOSH, BOSHBPM, CLOUDFOUNDRY, CONTAINERD, CRIO, DIEGO_CELL, DOCKER, GARDEN, GRSECURITY, KUBERNETES, OPENSHIFT, OPENSTACK_COMPUTE, OPENSTACK_CONTROLLER and SELINUX
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * Non-predefined technology, use for custom technologies
     */
    verbatimType?: string;
}
export interface HostNamingConditionConditionSimpleTechComparison {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are EQUALS and EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be SIMPLE_TECH
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value?: outputs.HostNamingConditionConditionSimpleTechComparisonValue;
}
export interface HostNamingConditionConditionSimpleTechComparisonValue {
    /**
     * Predefined technology, if technology is not predefined, then the verbatim type must be set.
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * Non-predefined technology, use for custom technologies
     */
    verbatimType?: string;
}
export interface HostNamingConditionConditionString {
    /**
     * The comparison is case-sensitive (`true`) or insensitive (`false`)
     */
    caseSensitive?: boolean;
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are BEGINS_WITH, CONTAINS, ENDS_WITH, EQUALS, EXISTS and REGEX_MATCHES. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value?: string;
}
export interface HostNamingConditionConditionStringComparison {
    /**
     * The comparison is case-sensitive (`true`) or insensitive (`false`)
     */
    caseSensitive?: boolean;
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are BEGINS_WITH, CONTAINS, ENDS_WITH, EQUALS, EXISTS and REGEX_MATCHES. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be STRING
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value?: string;
}
export interface HostNamingConditionConditionStringConditionKey {
    /**
     * The attribute to be used for comparision
     */
    attribute: string;
    /**
     * The key of the attribute, which need dynamic keys. Not applicable otherwise, as the attibute itself acts as a key. Possible values are
     *    - `AMAZON_ECR_IMAGE_ACCOUNT_ID`
     *    - `AMAZON_ECR_IMAGE_REGION`
     *    - `AMAZON_LAMBDA_FUNCTION_NAME`
     *    - `AMAZON_REGION`
     *    - `APACHE_CONFIG_PATH`
     *    - `APACHE_SPARK_MASTER_IP_ADDRESS`
     *    - `ASP_DOT_NET_CORE_APPLICATION_PATH`
     *    - `AWS_ECS_CLUSTER`
     *    - `AWS_ECS_CONTAINERNAME`
     *    - `AWS_ECS_FAMILY`
     *    - `AWS_ECS_REVISION`
     *    - `CASSANDRA_CLUSTER_NAME`
     *    - `CATALINA_BASE`
     *    - `CATALINA_HOME`
     *    - `CLOUD_FOUNDRY_APP_ID`
     *    - `CLOUD_FOUNDRY_APP_NAME`
     *    - `CLOUD_FOUNDRY_INSTANCE_INDEX`
     *    - `CLOUD_FOUNDRY_SPACE_ID`
     *    - `CLOUD_FOUNDRY_SPACE_NAME`
     *    - `COLDFUSION_JVM_CONFIG_FILE`
     *    - `COLDFUSION_SERVICE_NAME`
     *    - `COMMAND_LINE_ARGS`
     *    - `DOTNET_COMMAND`
     *    - `DOTNET_COMMAND_PATH`
     *    - `DYNATRACE_CLUSTER_ID`
     *    - `DYNATRACE_NODE_ID`
     *    - `ELASTICSEARCH_CLUSTER_NAME`
     *    - `ELASTICSEARCH_NODE_NAME`
     *    - `EQUINOX_CONFIG_PATH`
     *    - `EXE_NAME`
     *    - `EXE_PATH`
     *    - `GLASS_FISH_DOMAIN_NAME`
     *    - `GLASS_FISH_INSTANCE_NAME`
     *    - `GOOGLE_APP_ENGINE_INSTANCE`
     *    - `GOOGLE_APP_ENGINE_SERVICE`
     *    - `GOOGLE_CLOUD_PROJECT`
     *    - `HYBRIS_BIN_DIRECTORY`
     *    - `HYBRIS_CONFIG_DIRECTORY`
     *    - `HYBRIS_DATA_DIRECTORY`
     *    - `IBM_CICS_REGION`
     *    - `IBM_CTG_NAME`
     *    - `IBM_IMS_CONNECT_REGION`
     *    - `IBM_IMS_CONTROL_REGION`
     *    - `IBM_IMS_MESSAGE_PROCESSING_REGION`
     *    - `IBM_IMS_SOAP_GW_NAME`
     *    - `IBM_INTEGRATION_NODE_NAME`
     *    - `IBM_INTEGRATION_SERVER_NAME`
     *    - `IIS_APP_POOL`
     *    - `IIS_ROLE_NAME`
     *    - `JAVA_JAR_FILE`
     *    - `JAVA_JAR_PATH`
     *    - `JAVA_MAIN_CLASS`
     *    - `JAVA_MAIN_MODULE`
     *    - `JBOSS_HOME`
     *    - `JBOSS_MODE`
     *    - `JBOSS_SERVER_NAME`
     *    - `KUBERNETES_BASE_POD_NAME`
     *    - `KUBERNETES_CONTAINER_NAME`
     *    - `KUBERNETES_FULL_POD_NAME`
     *    - `KUBERNETES_NAMESPACE`
     *    - `KUBERNETES_POD_UID`
     *    - `MSSQL_INSTANCE_NAME`
     *    - `NODE_JS_APP_BASE_DIRECTORY`
     *    - `NODE_JS_APP_NAME`
     *    - `NODE_JS_SCRIPT_NAME`
     *    - `ORACLE_SID`
     *    - `PG_ID_CALC_INPUT_KEY_LINKAGE`
     *    - `PHP_SCRIPT_PATH`
     *    - `PHP_WORKING_DIRECTORY`
     *    - `RUBY_APP_ROOT_PATH`
     *    - `RUBY_SCRIPT_PATH`
     *    - `RULE_RESULT`
     *    - `SOFTWAREAG_INSTALL_ROOT`
     *    - `SOFTWAREAG_PRODUCTPROPNAME`
     *    - `SPRINGBOOT_APP_NAME`
     *    - `SPRINGBOOT_PROFILE_NAME`
     *    - `SPRINGBOOT_STARTUP_CLASS`
     *    - `TIBCO_BUSINESSWORKS_CE_APP_NAME`
     *    - `TIBCO_BUSINESSWORKS_CE_VERSION`
     *    - `TIBCO_BUSINESS_WORKS_APP_NODE_NAME`
     *    - `TIBCO_BUSINESS_WORKS_APP_SPACE_NAME`
     *    - `TIBCO_BUSINESS_WORKS_DOMAIN_NAME`
     *    - `TIBCO_BUSINESS_WORKS_ENGINE_PROPERTY_FILE`
     *    - `TIBCO_BUSINESS_WORKS_ENGINE_PROPERTY_FILE_PATH`
     *    - `TIBCO_BUSINESS_WORKS_HOME`
     *    - `VARNISH_INSTANCE_NAME`
     *    - `WEB_LOGIC_CLUSTER_NAME`
     *    - `WEB_LOGIC_DOMAIN_NAME`
     *    - `WEB_LOGIC_HOME`
     *    - `WEB_LOGIC_NAME`
     *    - `WEB_SPHERE_CELL_NAME`
     *    - `WEB_SPHERE_CLUSTER_NAME`
     *    - `WEB_SPHERE_NODE_NAME and WEB_SPHERE_SERVER_NAME`
     */
    dynamicKey: string;
    /**
     * if specified, needs to be `STRING`
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
}
export interface HostNamingConditionConditionStringKey {
    /**
     * The attribute to be used for comparision
     */
    attribute: string;
    /**
     * The key of the attribute, which need dynamic keys. Not applicable otherwise, as the attibute itself acts as a key. Possible values are
     *    - `AMAZON_ECR_IMAGE_ACCOUNT_ID`
     *    - `AMAZON_ECR_IMAGE_REGION`
     *    - `AMAZON_LAMBDA_FUNCTION_NAME`
     *    - `AMAZON_REGION`
     *    - `APACHE_CONFIG_PATH`
     *    - `APACHE_SPARK_MASTER_IP_ADDRESS`
     *    - `ASP_DOT_NET_CORE_APPLICATION_PATH`
     *    - `AWS_ECS_CLUSTER`
     *    - `AWS_ECS_CONTAINERNAME`
     *    - `AWS_ECS_FAMILY`
     *    - `AWS_ECS_REVISION`
     *    - `CASSANDRA_CLUSTER_NAME`
     *    - `CATALINA_BASE`
     *    - `CATALINA_HOME`
     *    - `CLOUD_FOUNDRY_APP_ID`
     *    - `CLOUD_FOUNDRY_APP_NAME`
     *    - `CLOUD_FOUNDRY_INSTANCE_INDEX`
     *    - `CLOUD_FOUNDRY_SPACE_ID`
     *    - `CLOUD_FOUNDRY_SPACE_NAME`
     *    - `COLDFUSION_JVM_CONFIG_FILE`
     *    - `COLDFUSION_SERVICE_NAME`
     *    - `COMMAND_LINE_ARGS`
     *    - `DOTNET_COMMAND`
     *    - `DOTNET_COMMAND_PATH`
     *    - `DYNATRACE_CLUSTER_ID`
     *    - `DYNATRACE_NODE_ID`
     *    - `ELASTICSEARCH_CLUSTER_NAME`
     *    - `ELASTICSEARCH_NODE_NAME`
     *    - `EQUINOX_CONFIG_PATH`
     *    - `EXE_NAME`
     *    - `EXE_PATH`
     *    - `GLASS_FISH_DOMAIN_NAME`
     *    - `GLASS_FISH_INSTANCE_NAME`
     *    - `GOOGLE_APP_ENGINE_INSTANCE`
     *    - `GOOGLE_APP_ENGINE_SERVICE`
     *    - `GOOGLE_CLOUD_PROJECT`
     *    - `HYBRIS_BIN_DIRECTORY`
     *    - `HYBRIS_CONFIG_DIRECTORY`
     *    - `HYBRIS_DATA_DIRECTORY`
     *    - `IBM_CICS_REGION`
     *    - `IBM_CTG_NAME`
     *    - `IBM_IMS_CONNECT_REGION`
     *    - `IBM_IMS_CONTROL_REGION`
     *    - `IBM_IMS_MESSAGE_PROCESSING_REGION`
     *    - `IBM_IMS_SOAP_GW_NAME`
     *    - `IBM_INTEGRATION_NODE_NAME`
     *    - `IBM_INTEGRATION_SERVER_NAME`
     *    - `IIS_APP_POOL`
     *    - `IIS_ROLE_NAME`
     *    - `JAVA_JAR_FILE`
     *    - `JAVA_JAR_PATH`
     *    - `JAVA_MAIN_CLASS`
     *    - `JAVA_MAIN_MODULE`
     *    - `JBOSS_HOME`
     *    - `JBOSS_MODE`
     *    - `JBOSS_SERVER_NAME`
     *    - `KUBERNETES_BASE_POD_NAME`
     *    - `KUBERNETES_CONTAINER_NAME`
     *    - `KUBERNETES_FULL_POD_NAME`
     *    - `KUBERNETES_NAMESPACE`
     *    - `KUBERNETES_POD_UID`
     *    - `MSSQL_INSTANCE_NAME`
     *    - `NODE_JS_APP_BASE_DIRECTORY`
     *    - `NODE_JS_APP_NAME`
     *    - `NODE_JS_SCRIPT_NAME`
     *    - `ORACLE_SID`
     *    - `PG_ID_CALC_INPUT_KEY_LINKAGE`
     *    - `PHP_SCRIPT_PATH`
     *    - `PHP_WORKING_DIRECTORY`
     *    - `RUBY_APP_ROOT_PATH`
     *    - `RUBY_SCRIPT_PATH`
     *    - `RULE_RESULT`
     *    - `SOFTWAREAG_INSTALL_ROOT`
     *    - `SOFTWAREAG_PRODUCTPROPNAME`
     *    - `SPRINGBOOT_APP_NAME`
     *    - `SPRINGBOOT_PROFILE_NAME`
     *    - `SPRINGBOOT_STARTUP_CLASS`
     *    - `TIBCO_BUSINESSWORKS_CE_APP_NAME`
     *    - `TIBCO_BUSINESSWORKS_CE_VERSION`
     *    - `TIBCO_BUSINESS_WORKS_APP_NODE_NAME`
     *    - `TIBCO_BUSINESS_WORKS_APP_SPACE_NAME`
     *    - `TIBCO_BUSINESS_WORKS_DOMAIN_NAME`
     *    - `TIBCO_BUSINESS_WORKS_ENGINE_PROPERTY_FILE`
     *    - `TIBCO_BUSINESS_WORKS_ENGINE_PROPERTY_FILE_PATH`
     *    - `TIBCO_BUSINESS_WORKS_HOME`
     *    - `VARNISH_INSTANCE_NAME`
     *    - `WEB_LOGIC_CLUSTER_NAME`
     *    - `WEB_LOGIC_DOMAIN_NAME`
     *    - `WEB_LOGIC_HOME`
     *    - `WEB_LOGIC_NAME`
     *    - `WEB_SPHERE_CELL_NAME`
     *    - `WEB_SPHERE_CLUSTER_NAME`
     *    - `WEB_SPHERE_NODE_NAME and WEB_SPHERE_SERVER_NAME`
     */
    dynamicKey: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
}
export interface HostNamingConditionConditionSyntheticEngine {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are  EQUALS and EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are CLASSIC and CUSTOM
     */
    value?: string;
}
export interface HostNamingConditionConditionSyntheticEngineTypeComparison {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are  EQUALS and EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be SYNTHETIC_ENGINE_TYPE
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are CLASSIC and CUSTOM
     */
    value?: string;
}
export interface HostNamingConditionConditionTag {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are EQUALS and TAG_KEY_EQUALS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * Tag of a Dynatrace entity
     */
    value?: outputs.HostNamingConditionConditionTagValue;
}
export interface HostNamingConditionConditionTagComparison {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are EQUALS and TAG_KEY_EQUALS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be TAG
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * Tag of a Dynatrace entity
     */
    value?: outputs.HostNamingConditionConditionTagComparisonValue;
}
export interface HostNamingConditionConditionTagComparisonValue {
    /**
     * The origin of the tag, such as AWS or Cloud Foundry. Possible values are AWS, AWS_GENERIC, AZURE, CLOUD_FOUNDRY, CONTEXTLESS, ENVIRONMENT, GOOGLE_CLOUD and KUBERNETES. Custom tags use the `CONTEXTLESS` value
     */
    context: string;
    /**
     * The key of the tag. Custom tags have the tag value here
     */
    key: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value of the tag. Not applicable to custom tags
     */
    value?: string;
}
export interface HostNamingConditionConditionTagValue {
    /**
     * The origin of the tag, such as AWS or Cloud Foundry. Possible values are AWS, AWS_GENERIC, AZURE, CLOUD_FOUNDRY, CONTEXTLESS, ENVIRONMENT, GOOGLE_CLOUD and KUBERNETES. Custom tags use the `CONTEXTLESS` value
     */
    context: string;
    /**
     * The key of the tag. Custom tags have the tag value here
     */
    key: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value of the tag. Not applicable to custom tags
     */
    value?: string;
}
export interface HostNamingConditionConditionTech {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are EQUALS and EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value?: outputs.HostNamingConditionConditionTechValue;
}
export interface HostNamingConditionConditionTechValue {
    /**
     * Predefined technology, if technology is not predefined, then the verbatim type must be set.
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * Non-predefined technology, use for custom technologies
     */
    verbatimType?: string;
}
export interface HttpMonitorAnomalyDetection {
    /**
     * Thresholds for loading times
     */
    loadingTimeThresholds?: outputs.HttpMonitorAnomalyDetectionLoadingTimeThreshold[];
    /**
     * Outage handling configuration
     */
    outageHandlings?: outputs.HttpMonitorAnomalyDetectionOutageHandling[];
}
export interface HttpMonitorAnomalyDetectionLoadingTimeThreshold {
    /**
     * Performance threshold is enabled (`true`) or disabled (`false`)
     */
    enabled?: boolean;
    /**
     * The list of performance threshold rules
     */
    thresholds?: outputs.HttpMonitorAnomalyDetectionLoadingTimeThresholdThreshold[];
}
export interface HttpMonitorAnomalyDetectionLoadingTimeThresholdThreshold {
    /**
     * The list of performance threshold rules
     */
    thresholds: outputs.HttpMonitorAnomalyDetectionLoadingTimeThresholdThresholdThreshold[];
}
export interface HttpMonitorAnomalyDetectionLoadingTimeThresholdThresholdThreshold {
    /**
     * Specify the event to which an ACTION threshold applies
     */
    eventIndex?: number;
    /**
     * Specify the request to which an ACTION threshold applies
     */
    requestIndex?: number;
    /**
     * The type of the threshold: `TOTAL` (total loading time) or `ACTION` (action loading time)
     */
    type?: string;
    /**
     * Notify if monitor takes longer than *X* milliseconds to load
     */
    valueMs: number;
}
export interface HttpMonitorAnomalyDetectionOutageHandling {
    /**
     * (Field has overlap with `dynatrace.BrowserMonitorOutage` and `dynatrace.HttpMonitorOutage`) When enabled (`true`), generate a problem and send an alert when the monitor is unavailable at all configured locations
     */
    globalOutage?: boolean;
    /**
     * (Field has overlap with `dynatrace.BrowserMonitorOutage` and `dynatrace.HttpMonitorOutage`) Global outage handling configuration.
     */
    globalOutagePolicies?: outputs.HttpMonitorAnomalyDetectionOutageHandlingGlobalOutagePolicy[];
    /**
     * (Field has overlap with `dynatrace.BrowserMonitorOutage` and `dynatrace.HttpMonitorOutage`) When enabled (`true`), generate a problem and send an alert when the monitor is unavailable for one or more consecutive runs at any location
     */
    localOutage?: boolean;
    /**
     * (Field has overlap with `dynatrace.BrowserMonitorOutage` and `dynatrace.HttpMonitorOutage`) Local outage handling configuration.
     *
     *  Alert if **affectedLocations** of locations are unable to access the web application **consecutiveRuns** times consecutively
     */
    localOutagePolicies?: outputs.HttpMonitorAnomalyDetectionOutageHandlingLocalOutagePolicy[];
    /**
     * (Field has overlap with `dynatrace.BrowserMonitorOutage` and `dynatrace.HttpMonitorOutage`) Schedule retry if browser monitor execution results in a fail. For HTTP monitors this property is ignored
     */
    retryOnError?: boolean;
}
export interface HttpMonitorAnomalyDetectionOutageHandlingGlobalOutagePolicy {
    /**
     * The number of consecutive fails to trigger an alert
     */
    consecutiveRuns: number;
}
export interface HttpMonitorAnomalyDetectionOutageHandlingLocalOutagePolicy {
    /**
     * The number of affected locations to trigger an alert
     */
    affectedLocations: number;
    /**
     * The number of consecutive fails to trigger an alert
     */
    consecutiveRuns: number;
}
export interface HttpMonitorCookiesCookies {
    cookies: outputs.HttpMonitorCookiesCookiesCookie[];
}
export interface HttpMonitorCookiesCookiesCookie {
    /**
     * Enclose placeholder values in brackets, for example {email}
     */
    domain: string;
    /**
     * Enclose placeholder values in brackets, for example {email}
     */
    name: string;
    /**
     * Enclose placeholder values in brackets, for example {email}
     */
    path?: string;
    /**
     * Enclose placeholder values in brackets, for example {email}
     */
    value: string;
}
export interface HttpMonitorPerformanceThresholds {
    thresholds: outputs.HttpMonitorPerformanceThresholdsThreshold[];
}
export interface HttpMonitorPerformanceThresholdsThreshold {
    /**
     * Request
     */
    event: string;
    /**
     * Threshold (in seconds)
     */
    threshold: number;
}
export interface HttpMonitorScript {
    /**
     * A HTTP request to be performed by the monitor.
     */
    requests: outputs.HttpMonitorScriptRequest[];
}
export interface HttpMonitorScriptRequest {
    /**
     * Authentication options for this request
     */
    authentication?: outputs.HttpMonitorScriptRequestAuthentication;
    /**
     * The body of the HTTP request.
     */
    body?: string;
    /**
     * The setup of the monitor
     */
    configuration?: outputs.HttpMonitorScriptRequestConfiguration;
    /**
     * A short description of the event to appear in the web UI.
     */
    description?: string;
    /**
     * The HTTP method of the request.
     */
    method: string;
    /**
     * Javascript code to execute after sending the request.
     */
    postProcessing?: string;
    /**
     * Javascript code to execute before sending the request.
     */
    preProcessing?: string;
    /**
     * Adapt request timeout option - the maximum time this request is allowed to consume. Keep in mind the maximum timeout of the complete monitor is 60 seconds
     */
    requestTimeout?: number;
    /**
     * The URL to check.
     */
    url: string;
    /**
     * Validation helps you verify that your HTTP monitor loads the expected content
     */
    validation?: outputs.HttpMonitorScriptRequestValidation;
}
export interface HttpMonitorScriptRequestAuthentication {
    /**
     * The ID of the credentials within the Dynatrace Credentials Vault.
     */
    credentials: string;
    /**
     * The KDC IP. Valid and required only if the type of authentication is `KERBEROS`.
     */
    kdcIp?: string;
    /**
     * The Realm Name. Valid and required only if the type of authentication is `KERBEROS`.
     */
    realmName?: string;
    /**
     * The type of authentication. Possible values are `BASIC_AUTHENTICATION`, `NTLM` and `KERBEROS`.
     */
    type: string;
}
export interface HttpMonitorScriptRequestConfiguration {
    /**
     * If set to `false`, then the monitor fails with invalid SSL certificates.
     */
    acceptAnyCertificate?: boolean;
    /**
     * The client certificate, if applicable - eg. CREDENTIALS_VAULT-XXXXXXXXXXXXXXXX
     */
    clientCertificate?: string;
    /**
     * If set to `false`, redirects are reported as successful requests with response code 3xx.
     *
     * If not set, the `false` option is used.
     */
    followRedirects?: boolean;
    /**
     * The setup of the monitor
     */
    headers?: outputs.HttpMonitorScriptRequestConfigurationHeaders;
    /**
     * Option not to store and display request and response bodies and header values in execution details, `true` or `false`. If not set, `false`.
     */
    sensitiveData?: boolean;
    /**
     * The User agent of the request
     */
    userAgent?: string;
}
export interface HttpMonitorScriptRequestConfigurationHeaders {
    /**
     * contains an HTTP header of the request
     */
    headers: outputs.HttpMonitorScriptRequestConfigurationHeadersHeader[];
}
export interface HttpMonitorScriptRequestConfigurationHeadersHeader {
    /**
     * The key of the header
     */
    name: string;
    /**
     * The value of the header
     */
    value: string;
}
export interface HttpMonitorScriptRequestValidation {
    /**
     * A list of validation rules
     */
    rules: outputs.HttpMonitorScriptRequestValidationRule[];
}
export interface HttpMonitorScriptRequestValidationRule {
    /**
     * The validation condition. `true` means validation succeeds if the specified content/element is found. `false` means validation fails if the specified content/element is found. Always specify `false` for `certificateExpiryDateConstraint` to fail the monitor if SSL certificate expiry is within the specified number of days
     */
    passIfFound?: boolean;
    /**
     * The type of the rule. Possible values are `patternConstraint`, `regexConstraint`, `httpStatusesList` and `certificateExpiryDateConstraint`
     */
    type: string;
    /**
     * The content to look for
     */
    value: string;
}
export interface HttpMonitorScriptScript {
    /**
     * A HTTP request to be performed by the monitor.
     */
    requests: outputs.HttpMonitorScriptScriptRequest[];
}
export interface HttpMonitorScriptScriptRequest {
    /**
     * Authentication options for this request
     */
    authentication?: outputs.HttpMonitorScriptScriptRequestAuthentication;
    /**
     * The body of the HTTP request.
     */
    body?: string;
    /**
     * The setup of the monitor
     */
    configuration?: outputs.HttpMonitorScriptScriptRequestConfiguration;
    /**
     * A short description of the event to appear in the web UI.
     */
    description?: string;
    /**
     * The HTTP method of the request.
     */
    method: string;
    /**
     * Javascript code to execute after sending the request.
     */
    postProcessing?: string;
    /**
     * Javascript code to execute before sending the request.
     */
    preProcessing?: string;
    /**
     * Adapt request timeout option - the maximum time this request is allowed to consume. Keep in mind the maximum timeout of the complete monitor is 60 seconds
     */
    requestTimeout?: number;
    /**
     * The URL to check.
     */
    url: string;
    /**
     * Validation helps you verify that your HTTP monitor loads the expected content
     */
    validation?: outputs.HttpMonitorScriptScriptRequestValidation;
}
export interface HttpMonitorScriptScriptRequestAuthentication {
    /**
     * The ID of the credentials within the Dynatrace Credentials Vault.
     */
    credentials: string;
    /**
     * The KDC IP. Valid and required only if the type of authentication is `KERBEROS`.
     */
    kdcIp?: string;
    /**
     * The Realm Name. Valid and required only if the type of authentication is `KERBEROS`.
     */
    realmName?: string;
    /**
     * The type of authentication. Possible values are `BASIC_AUTHENTICATION`, `NTLM` and `KERBEROS`.
     */
    type: string;
}
export interface HttpMonitorScriptScriptRequestConfiguration {
    /**
     * If set to `false`, then the monitor fails with invalid SSL certificates.
     */
    acceptAnyCertificate?: boolean;
    /**
     * The client certificate, if applicable - eg. CREDENTIALS_VAULT-XXXXXXXXXXXXXXXX
     */
    clientCertificate?: string;
    /**
     * If set to `false`, redirects are reported as successful requests with response code 3xx.
     *
     * If not set, the `false` option is used.
     */
    followRedirects?: boolean;
    /**
     * The setup of the monitor
     */
    headers?: outputs.HttpMonitorScriptScriptRequestConfigurationHeaders;
    /**
     * Option not to store and display request and response bodies and header values in execution details, `true` or `false`. If not set, `false`.
     */
    sensitiveData?: boolean;
    /**
     * The User agent of the request
     */
    userAgent?: string;
}
export interface HttpMonitorScriptScriptRequestConfigurationHeaders {
    /**
     * contains an HTTP header of the request
     */
    headers: outputs.HttpMonitorScriptScriptRequestConfigurationHeadersHeader[];
}
export interface HttpMonitorScriptScriptRequestConfigurationHeadersHeader {
    /**
     * The key of the header
     */
    name: string;
    /**
     * The value of the header
     */
    value: string;
}
export interface HttpMonitorScriptScriptRequestValidation {
    /**
     * A list of validation rules
     */
    rules: outputs.HttpMonitorScriptScriptRequestValidationRule[];
}
export interface HttpMonitorScriptScriptRequestValidationRule {
    /**
     * The validation condition. `true` means validation succeeds if the specified content/element is found. `false` means validation fails if the specified content/element is found. Always specify `false` for `certificateExpiryDateConstraint` to fail the monitor if SSL certificate expiry is within the specified number of days
     */
    passIfFound?: boolean;
    /**
     * The type of the rule. Possible values are `patternConstraint`, `regexConstraint`, `httpStatusesList` and `certificateExpiryDateConstraint`
     */
    type: string;
    /**
     * The content to look for
     */
    value: string;
}
export interface HttpMonitorTag {
    /**
     * Tag with source of a Dynatrace entity.
     */
    tags?: outputs.HttpMonitorTagTag[];
}
export interface HttpMonitorTagTag {
    /**
     * The origin of the tag. Supported values are `AWS`, `AWS_GENERIC`, `AZURE`, `CLOUD_FOUNDRY`, `CONTEXTLESS`, `ENVIRONMENT`, `GOOGLE_CLOUD` and `KUBERNETES`.
     */
    context: string;
    /**
     * The key of the tag.
     *
     * Custom tags have the tag value here.
     */
    key: string;
    /**
     * The source of the tag. Supported values are `USER`, `RULE_BASED` and `AUTO`.
     */
    source?: string;
    /**
     * The value of the tag.
     *
     * Not applicable to custom tags.
     */
    value?: string;
}
export interface HubSubscriptionsTokenSubscriptions {
    tokenSubscriptions: outputs.HubSubscriptionsTokenSubscriptionsTokenSubscription[];
}
export interface HubSubscriptionsTokenSubscriptionsTokenSubscription {
    /**
     * no documentation available
     */
    description?: string;
    /**
     * This setting is enabled (`true`) or disabled (`false`)
     */
    enabled: boolean;
    /**
     * Name of subscription
     */
    name: string;
    /**
     * Subscription token
     */
    token: string;
}
export interface IamGroupPermissions {
    /**
     * A Permission
     */
    permissions: outputs.IamGroupPermissionsPermission[];
}
export interface IamGroupPermissionsPermission {
    /**
     * Possible values: `account-company-info`, `account-user-management`, `account-viewer`, `account-saml-flexible-federation`, `tenant-viewer`, `tenant-manage-settings`, `tenant-agent-install`, `tenant-logviewer`, `tenant-view-sensitive-request-data`, `tenant-configure-request-capture-data`, `tenant-replay-sessions-with-masking`, `tenant-replay-sessions-without-masking`, `tenant-manage-security-problems`, `tenant-view-security-problems`, `tenant-manage-support-tickets`
     */
    name: string;
    /**
     * If `type` is `account` this attribute should hold the UUID of the account. If `type` is 'tenant`this attribute should hold the ID of the environment (`https://\n\n.live.dynatrace.com`). If`type`is`management-zone`this attribute should hold a value like`\n\n:\n\n. You need to use the attribute `legacyId` when referring to a resource `dynatrace.ManagementZoneV2` or a data source `dynatrace.ManagementZone`.
     */
    scope: string;
    /**
     * The type of this permission. Possible values are `account`, `tenant`, `management-zone`
     */
    type: string;
}
export interface IamPolicyBindingsV2Policy {
    boundaries?: string[];
    /**
     * Either the attribute `id` or the attribute `uuid` of a `dynatrace.IamPolicy`. Initially just the `id` attribute was supported (which is a concatenation of several configuration settings) - and is still supported for backwards compatibility
     */
    id: string;
    metadata?: {
        [key: string]: string;
    };
    parameters?: {
        [key: string]: string;
    };
}
export interface ImsBridgesQueueManager {
    /**
     * Queue manager definition for IMS bridge
     */
    queueManagers?: outputs.ImsBridgesQueueManagerQueueManager[];
}
export interface ImsBridgesQueueManagerQueueManager {
    /**
     * The name of the queue manager
     */
    name: string;
    /**
     * Queue(s) that belong to the queue manager
     */
    queueManagerQueues?: string[];
}
export interface K8sClusterAnomaliesCpuRequestsSaturation {
    /**
     * Alert if
     */
    configuration?: outputs.K8sClusterAnomaliesCpuRequestsSaturationConfiguration;
    /**
     * This setting is enabled (`true`) or disabled (`false`)
     */
    enabled: boolean;
}
export interface K8sClusterAnomaliesCpuRequestsSaturationConfiguration {
    /**
     * within the last
     */
    observationPeriodInMinutes: number;
    /**
     * of cluster CPU capacity for at least
     */
    samplePeriodInMinutes: number;
    /**
     * amount of requested CPU is above
     */
    threshold: number;
}
export interface K8sClusterAnomaliesMemoryRequestsSaturation {
    /**
     * Alert if
     */
    configuration?: outputs.K8sClusterAnomaliesMemoryRequestsSaturationConfiguration;
    /**
     * This setting is enabled (`true`) or disabled (`false`)
     */
    enabled: boolean;
}
export interface K8sClusterAnomaliesMemoryRequestsSaturationConfiguration {
    /**
     * within the last
     */
    observationPeriodInMinutes: number;
    /**
     * of cluster memory capacity for at least
     */
    samplePeriodInMinutes: number;
    /**
     * amount of requested memory is above
     */
    threshold: number;
}
export interface K8sClusterAnomaliesMonitoringIssues {
    /**
     * Alert if
     */
    configuration?: outputs.K8sClusterAnomaliesMonitoringIssuesConfiguration;
    /**
     * This setting is enabled (`true`) or disabled (`false`)
     */
    enabled: boolean;
}
export interface K8sClusterAnomaliesMonitoringIssuesConfiguration {
    /**
     * within the last
     */
    observationPeriodInMinutes: number;
    /**
     * monitoring is not available for at least
     */
    samplePeriodInMinutes: number;
}
export interface K8sClusterAnomaliesPodsSaturation {
    /**
     * Alert if
     */
    configuration?: outputs.K8sClusterAnomaliesPodsSaturationConfiguration;
    /**
     * This setting is enabled (`true`) or disabled (`false`)
     */
    enabled: boolean;
}
export interface K8sClusterAnomaliesPodsSaturationConfiguration {
    /**
     * within the last
     */
    observationPeriodInMinutes: number;
    /**
     * of schedulable pod capacity for at least
     */
    samplePeriodInMinutes: number;
    /**
     * number of running pods is higher than
     */
    threshold: number;
}
export interface K8sClusterAnomaliesReadinessIssues {
    /**
     * Alert if
     */
    configuration?: outputs.K8sClusterAnomaliesReadinessIssuesConfiguration;
    /**
     * This setting is enabled (`true`) or disabled (`false`)
     */
    enabled: boolean;
}
export interface K8sClusterAnomaliesReadinessIssuesConfiguration {
    /**
     * within the last
     */
    observationPeriodInMinutes: number;
    /**
     * cluster is not ready for at least
     */
    samplePeriodInMinutes: number;
}
export interface K8sCredentialsEventsFieldSelector {
    /**
     * Whether subscription to this events field selector is enabled (value set to `true`). If disabled (value set to `false`), Dynatrace will stop fetching events from the Kubernetes API for this events field selector
     */
    active: boolean;
    /**
     * The field selector string (url decoding is applied) when storing it.
     */
    fieldSelector: string;
    /**
     * A label of the events field selector.
     */
    label: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
}
export interface K8sMonitoringEventPatterns {
    eventPatterns: outputs.K8sMonitoringEventPatternsEventPattern[];
}
export interface K8sMonitoringEventPatternsEventPattern {
    /**
     * Activate
     */
    active: boolean;
    /**
     * Field selector name
     */
    label: string;
    /**
     * The set of allowed characters for this field has been extended with ActiveGate version 1.259. For more details, see the [documentation](https://dt-url.net/7h23wuk#set-up-event-field-selectors).
     */
    pattern: string;
}
export interface K8sNamespaceAnomaliesCpuLimitsQuotaSaturation {
    /**
     * Alert if
     */
    configuration?: outputs.K8sNamespaceAnomaliesCpuLimitsQuotaSaturationConfiguration;
    /**
     * This setting is enabled (`true`) or disabled (`false`)
     */
    enabled: boolean;
}
export interface K8sNamespaceAnomaliesCpuLimitsQuotaSaturationConfiguration {
    /**
     * within the last
     */
    observationPeriodInMinutes: number;
    /**
     * of quota for at least
     */
    samplePeriodInMinutes: number;
    /**
     * amount of utilized namespace CPU is above
     */
    threshold: number;
}
export interface K8sNamespaceAnomaliesCpuRequestsQuotaSaturation {
    /**
     * Alert if
     */
    configuration?: outputs.K8sNamespaceAnomaliesCpuRequestsQuotaSaturationConfiguration;
    /**
     * This setting is enabled (`true`) or disabled (`false`)
     */
    enabled: boolean;
}
export interface K8sNamespaceAnomaliesCpuRequestsQuotaSaturationConfiguration {
    /**
     * within the last
     */
    observationPeriodInMinutes: number;
    /**
     * of quota for at least
     */
    samplePeriodInMinutes: number;
    /**
     * amount of requested namespace CPU is above
     */
    threshold: number;
}
export interface K8sNamespaceAnomaliesMemoryLimitsQuotaSaturation {
    /**
     * Alert if
     */
    configuration?: outputs.K8sNamespaceAnomaliesMemoryLimitsQuotaSaturationConfiguration;
    /**
     * This setting is enabled (`true`) or disabled (`false`)
     */
    enabled: boolean;
}
export interface K8sNamespaceAnomaliesMemoryLimitsQuotaSaturationConfiguration {
    /**
     * within the last
     */
    observationPeriodInMinutes: number;
    /**
     * of quota for at least
     */
    samplePeriodInMinutes: number;
    /**
     * amount of utilized namespace memory is above
     */
    threshold: number;
}
export interface K8sNamespaceAnomaliesMemoryRequestsQuotaSaturation {
    /**
     * Alert if
     */
    configuration?: outputs.K8sNamespaceAnomaliesMemoryRequestsQuotaSaturationConfiguration;
    /**
     * This setting is enabled (`true`) or disabled (`false`)
     */
    enabled: boolean;
}
export interface K8sNamespaceAnomaliesMemoryRequestsQuotaSaturationConfiguration {
    /**
     * within the last
     */
    observationPeriodInMinutes: number;
    /**
     * of quota for at least
     */
    samplePeriodInMinutes: number;
    /**
     * amount of requested namespace memory is above
     */
    threshold: number;
}
export interface K8sNamespaceAnomaliesPodsQuotaSaturation {
    /**
     * Alert if
     */
    configuration?: outputs.K8sNamespaceAnomaliesPodsQuotaSaturationConfiguration;
    /**
     * This setting is enabled (`true`) or disabled (`false`)
     */
    enabled: boolean;
}
export interface K8sNamespaceAnomaliesPodsQuotaSaturationConfiguration {
    /**
     * within the last
     */
    observationPeriodInMinutes: number;
    /**
     * of quota for at least
     */
    samplePeriodInMinutes: number;
    /**
     * number of utilized namespace pods is above
     */
    threshold: number;
}
export interface K8sNodeAnomaliesCpuRequestsSaturation {
    /**
     * Alert if
     */
    configuration?: outputs.K8sNodeAnomaliesCpuRequestsSaturationConfiguration;
    /**
     * This setting is enabled (`true`) or disabled (`false`)
     */
    enabled: boolean;
}
export interface K8sNodeAnomaliesCpuRequestsSaturationConfiguration {
    /**
     * within the last
     */
    observationPeriodInMinutes: number;
    /**
     * of node CPU capacity for at least
     */
    samplePeriodInMinutes: number;
    /**
     * amount of requested CPU is higher than
     */
    threshold: number;
}
export interface K8sNodeAnomaliesMemoryRequestsSaturation {
    /**
     * Alert if
     */
    configuration?: outputs.K8sNodeAnomaliesMemoryRequestsSaturationConfiguration;
    /**
     * This setting is enabled (`true`) or disabled (`false`)
     */
    enabled: boolean;
}
export interface K8sNodeAnomaliesMemoryRequestsSaturationConfiguration {
    /**
     * within the last
     */
    observationPeriodInMinutes: number;
    /**
     * of node memory capacity for at least
     */
    samplePeriodInMinutes: number;
    /**
     * amount of requested memory is higher than
     */
    threshold: number;
}
export interface K8sNodeAnomaliesNodeProblematicCondition {
    /**
     * Alert if
     */
    configuration?: outputs.K8sNodeAnomaliesNodeProblematicConditionConfiguration;
    /**
     * This setting is enabled (`true`) or disabled (`false`)
     */
    enabled: boolean;
}
export interface K8sNodeAnomaliesNodeProblematicConditionConfiguration {
    /**
     * within the last
     */
    observationPeriodInMinutes: number;
    /**
     * node has problematic conditions for at least
     */
    samplePeriodInMinutes: number;
}
export interface K8sNodeAnomaliesPodsSaturation {
    /**
     * Alert if
     */
    configuration?: outputs.K8sNodeAnomaliesPodsSaturationConfiguration;
    /**
     * This setting is enabled (`true`) or disabled (`false`)
     */
    enabled: boolean;
}
export interface K8sNodeAnomaliesPodsSaturationConfiguration {
    /**
     * within the last
     */
    observationPeriodInMinutes: number;
    /**
     * of node capacity for at least
     */
    samplePeriodInMinutes: number;
    /**
     * number of pods running on node is higher than
     */
    threshold: number;
}
export interface K8sNodeAnomaliesReadinessIssues {
    /**
     * Alert if
     */
    configuration?: outputs.K8sNodeAnomaliesReadinessIssuesConfiguration;
    /**
     * This setting is enabled (`true`) or disabled (`false`)
     */
    enabled: boolean;
}
export interface K8sNodeAnomaliesReadinessIssuesConfiguration {
    /**
     * within the last
     */
    observationPeriodInMinutes: number;
    /**
     * node is not ready for at least
     */
    samplePeriodInMinutes: number;
}
export interface K8sPvcAnomaliesLowDiskSpaceCritical {
    /**
     * Alert if
     */
    configuration?: outputs.K8sPvcAnomaliesLowDiskSpaceCriticalConfiguration;
    /**
     * This setting is enabled (`true`) or disabled (`false`)
     */
    enabled: boolean;
}
export interface K8sPvcAnomaliesLowDiskSpaceCriticalConfiguration {
    /**
     * within the last
     */
    observationPeriodInMinutes: number;
    /**
     * for at least
     */
    samplePeriodInMinutes: number;
    /**
     * the available disk space is below
     */
    threshold: number;
}
export interface K8sPvcAnomaliesLowDiskSpaceCriticalPercentage {
    /**
     * Alert if
     */
    configuration?: outputs.K8sPvcAnomaliesLowDiskSpaceCriticalPercentageConfiguration;
    /**
     * This setting is enabled (`true`) or disabled (`false`)
     */
    enabled: boolean;
}
export interface K8sPvcAnomaliesLowDiskSpaceCriticalPercentageConfiguration {
    /**
     * within the last
     */
    observationPeriodInMinutes: number;
    /**
     * for at least
     */
    samplePeriodInMinutes: number;
    /**
     * the available disk space is below
     */
    threshold: number;
}
export interface K8sWorkloadAnomaliesContainerRestarts {
    /**
     * Alert if
     */
    configuration?: outputs.K8sWorkloadAnomaliesContainerRestartsConfiguration;
    /**
     * This setting is enabled (`true`) or disabled (`false`)
     */
    enabled: boolean;
}
export interface K8sWorkloadAnomaliesContainerRestartsConfiguration {
    /**
     * within the last
     */
    observationPeriodInMinutes: number;
    /**
     * per minute, for any
     */
    samplePeriodInMinutes: number;
    /**
     * there is at least
     */
    threshold: number;
}
export interface K8sWorkloadAnomaliesDeploymentStuck {
    /**
     * Alert if
     */
    configuration?: outputs.K8sWorkloadAnomaliesDeploymentStuckConfiguration;
    /**
     * This setting is enabled (`true`) or disabled (`false`)
     */
    enabled: boolean;
}
export interface K8sWorkloadAnomaliesDeploymentStuckConfiguration {
    /**
     * within the last
     */
    observationPeriodInMinutes: number;
    /**
     * workload stops progressing for at least
     */
    samplePeriodInMinutes: number;
}
export interface K8sWorkloadAnomaliesHighCpuThrottling {
    /**
     * Alert if
     */
    configuration?: outputs.K8sWorkloadAnomaliesHighCpuThrottlingConfiguration;
    /**
     * This setting is enabled (`true`) or disabled (`false`)
     */
    enabled: boolean;
}
export interface K8sWorkloadAnomaliesHighCpuThrottlingConfiguration {
    /**
     * within the last
     */
    observationPeriodInMinutes: number;
    /**
     * of CPU usage for at least
     */
    samplePeriodInMinutes: number;
    /**
     * amount of CPU throttling is above
     */
    threshold: number;
}
export interface K8sWorkloadAnomaliesHighCpuUsage {
    /**
     * Alert if
     */
    configuration?: outputs.K8sWorkloadAnomaliesHighCpuUsageConfiguration;
    /**
     * This setting is enabled (`true`) or disabled (`false`)
     */
    enabled: boolean;
}
export interface K8sWorkloadAnomaliesHighCpuUsageConfiguration {
    /**
     * within the last
     */
    observationPeriodInMinutes: number;
    /**
     * of defined CPU limits for at least
     */
    samplePeriodInMinutes: number;
    /**
     * amount of utilized workload CPU is above
     */
    threshold: number;
}
export interface K8sWorkloadAnomaliesHighMemoryUsage {
    /**
     * Alert if
     */
    configuration?: outputs.K8sWorkloadAnomaliesHighMemoryUsageConfiguration;
    /**
     * This setting is enabled (`true`) or disabled (`false`)
     */
    enabled: boolean;
}
export interface K8sWorkloadAnomaliesHighMemoryUsageConfiguration {
    /**
     * within the last
     */
    observationPeriodInMinutes: number;
    /**
     * of defined memory limits for at least
     */
    samplePeriodInMinutes: number;
    /**
     * amount of utilized workload memory is above
     */
    threshold: number;
}
export interface K8sWorkloadAnomaliesJobFailureEvents {
    /**
     * This setting is enabled (`true`) or disabled (`false`)
     */
    enabled: boolean;
}
export interface K8sWorkloadAnomaliesNotAllPodsReady {
    /**
     * Alert if
     */
    configuration?: outputs.K8sWorkloadAnomaliesNotAllPodsReadyConfiguration;
    /**
     * This setting is enabled (`true`) or disabled (`false`)
     */
    enabled: boolean;
}
export interface K8sWorkloadAnomaliesNotAllPodsReadyConfiguration {
    /**
     * within the last
     */
    observationPeriodInMinutes: number;
    /**
     * some workload pods are not ready for at least
     */
    samplePeriodInMinutes: number;
}
export interface K8sWorkloadAnomaliesOomKills {
    /**
     * This setting is enabled (`true`) or disabled (`false`)
     */
    enabled: boolean;
}
export interface K8sWorkloadAnomaliesPendingPods {
    /**
     * Alert if
     */
    configuration?: outputs.K8sWorkloadAnomaliesPendingPodsConfiguration;
    /**
     * This setting is enabled (`true`) or disabled (`false`)
     */
    enabled: boolean;
}
export interface K8sWorkloadAnomaliesPendingPodsConfiguration {
    /**
     * within the last
     */
    observationPeriodInMinutes: number;
    /**
     * stuck in pending state for at least
     */
    samplePeriodInMinutes: number;
    /**
     * there is at least
     */
    threshold: number;
}
export interface K8sWorkloadAnomaliesPodBackoffEvents {
    /**
     * This setting is enabled (`true`) or disabled (`false`)
     */
    enabled: boolean;
}
export interface K8sWorkloadAnomaliesPodEvictionEvents {
    /**
     * This setting is enabled (`true`) or disabled (`false`)
     */
    enabled: boolean;
}
export interface K8sWorkloadAnomaliesPodPreemptionEvents {
    /**
     * This setting is enabled (`true`) or disabled (`false`)
     */
    enabled: boolean;
}
export interface K8sWorkloadAnomaliesPodStuckInTerminating {
    /**
     * Alert if
     */
    configuration?: outputs.K8sWorkloadAnomaliesPodStuckInTerminatingConfiguration;
    /**
     * This setting is enabled (`true`) or disabled (`false`)
     */
    enabled: boolean;
}
export interface K8sWorkloadAnomaliesPodStuckInTerminatingConfiguration {
    /**
     * within the last
     */
    observationPeriodInMinutes: number;
    /**
     * pod termination stops progressing for at least
     */
    samplePeriodInMinutes: number;
}
export interface K8sWorkloadAnomaliesWorkloadWithoutReadyPods {
    /**
     * Alert if
     */
    configuration?: outputs.K8sWorkloadAnomaliesWorkloadWithoutReadyPodsConfiguration;
    /**
     * This setting is enabled (`true`) or disabled (`false`)
     */
    enabled: boolean;
}
export interface K8sWorkloadAnomaliesWorkloadWithoutReadyPodsConfiguration {
    /**
     * within the last
     */
    observationPeriodInMinutes: number;
    /**
     * workload has no ready pods for at least
     */
    samplePeriodInMinutes: number;
}
export interface KubernetesAppKubernetesAppOptions {
    /**
     * New Kubernetes experience
     */
    enableKubernetesApp: boolean;
}
export interface KubernetesEnrichmentRules {
    rules: outputs.KubernetesEnrichmentRulesRule[];
}
export interface KubernetesEnrichmentRulesRule {
    /**
     * This setting is enabled (`true`) or disabled (`false`)
     *
     * @deprecated Attribute no longer exists in the schema.
     */
    enabled?: boolean;
    /**
     * The source must follow the syntax of Kubernetes annotation/label keys as defined in the [Kubernetes documentation](https://dt-url.net/2c02sbn).
     */
    source: string;
    /**
     * Possible Values: `Dt_cost_costcenter`, `Dt_cost_product`, `Dt_security_context`
     */
    target: string;
    /**
     * Possible Values: `ANNOTATION`, `LABEL`
     */
    type: string;
}
export interface KubernetesEventPatterns {
    eventPatterns: outputs.KubernetesEventPatternsEventPattern[];
}
export interface KubernetesEventPatternsEventPattern {
    /**
     * Activate
     */
    active: boolean;
    /**
     * Field selector name
     */
    label: string;
    /**
     * The set of allowed characters for this field has been extended with ActiveGate version 1.259. For more details, see the [documentation](https://dt-url.net/7h23wuk#set-up-event-field-selectors).
     */
    pattern: string;
}
export interface LimitOutboundConnectionsAllowedOutboundConnections {
    /**
     * If enabled, the Dynatrace JavaScript runtime will only be able to connect to the specified hosts.
     */
    enforced: boolean;
    /**
     * The Dynatrace JavaScript runtime will only be to connect to these hosts.
     */
    hostLists?: string[];
}
export interface LogCustomSourceContext {
    contexts: outputs.LogCustomSourceContextContext[];
}
export interface LogCustomSourceContextContext {
    /**
     * Possible Values: `Dt_entity_process_group`
     */
    attribute: string;
    /**
     * no documentation available
     */
    values: string[];
}
export interface LogCustomSourceCustomLogSource {
    /**
     * Accept binary content
     */
    acceptBinary?: boolean;
    /**
     * no documentation available
     */
    encoding?: string;
    /**
     * Possible Values: `LOG_PATH_PATTERN`, `WINDOWS_EVENT_LOG`
     */
    type: string;
    /**
     * (Required attribute for cluster v1.291 and under) It might be either an absolute path to log(s) with optional wildcards or Windows Event Log name.
     */
    values?: string[];
    /**
     * (Required attribute for cluster v1.292+) It might be either an absolute path to log(s) with optional wildcards or Windows Event Log name.
     */
    valuesAndEnrichment?: outputs.LogCustomSourceCustomLogSourceValuesAndEnrichment;
}
export interface LogCustomSourceCustomLogSourceValuesAndEnrichment {
    customLogSourceWithEnrichments: outputs.LogCustomSourceCustomLogSourceValuesAndEnrichmentCustomLogSourceWithEnrichment[];
}
export interface LogCustomSourceCustomLogSourceValuesAndEnrichmentCustomLogSourceWithEnrichment {
    /**
     * Optional field that allows to define attributes that will enrich logs. ${N} can be used in attribute value to expand the value matched by wildcards where N denotes the number of the wildcard the expand
     */
    enrichment?: outputs.LogCustomSourceCustomLogSourceValuesAndEnrichmentCustomLogSourceWithEnrichmentEnrichment;
    /**
     * Values
     */
    path: string;
}
export interface LogCustomSourceCustomLogSourceValuesAndEnrichmentCustomLogSourceWithEnrichmentEnrichment {
    enrichments: outputs.LogCustomSourceCustomLogSourceValuesAndEnrichmentCustomLogSourceWithEnrichmentEnrichmentEnrichment[];
}
export interface LogCustomSourceCustomLogSourceValuesAndEnrichmentCustomLogSourceWithEnrichmentEnrichmentEnrichment {
    /**
     * no documentation available
     */
    key?: string;
    /**
     * Possible Values: `Attribute`
     */
    type: string;
    /**
     * no documentation available
     */
    value?: string;
}
export interface LogEventsEventTemplate {
    /**
     * Davis® AI will try to merge this event into existing problems, otherwise a new problem will always be created.
     */
    davisMerge?: boolean;
    /**
     * The description of the event to trigger.
     */
    description: string;
    /**
     * Possible Values: `AVAILABILITY`, `CUSTOM_ALERT`, `CUSTOM_ANNOTATION`, `CUSTOM_CONFIGURATION`, `CUSTOM_DEPLOYMENT`, `ERROR`, `INFO`, `MARKED_FOR_TERMINATION`, `RESOURCE`, `SLOWDOWN`
     */
    eventType: string;
    /**
     * Set of additional key-value properties to be attached to the triggered event.
     */
    metadata?: outputs.LogEventsEventTemplateMetadata;
    /**
     * The title of the event to trigger.
     */
    title: string;
}
export interface LogEventsEventTemplateMetadata {
    items: outputs.LogEventsEventTemplateMetadataItem[];
}
export interface LogEventsEventTemplateMetadataItem {
    /**
     * Type 'dt.' for key hints.
     */
    metadataKey: string;
    /**
     * no documentation available
     */
    metadataValue: string;
}
export interface LogProcessingProcessorDefinition {
    /**
     * Processor definition
     */
    rule: string;
}
export interface LogProcessingRuleTesting {
    /**
     * Sample log in JSON format.
     */
    sampleLog: string;
}
export interface LogSecurityContextSecurityContextRule {
    /**
     * Matcher
     */
    query: string;
    /**
     * Rule name
     */
    ruleName: string;
    /**
     * Literal value to be set
     */
    value?: string;
    /**
     * Possible Values: `FIELD`, `LITERAL`
     */
    valueSource: string;
    /**
     * Name of field used to copy value
     */
    valueSourceField?: string;
}
export interface LogSensitiveDataMaskingMasking {
    /**
     * Maximum one capture group is allowed. If none was given, the whole expression will be treated as a capture group.
     */
    expression: string;
    /**
     * The string to replace the masked expression with. Irrelevant if `type` is `SHA1`.
     */
    replacement?: string;
    /**
     * Possible Values: `SHA1`, `STRING`
     */
    type: string;
}
export interface LogSensitiveDataMaskingMatchers {
    matchers: outputs.LogSensitiveDataMaskingMatchersMatcher[];
}
export interface LogSensitiveDataMaskingMatchersMatcher {
    /**
     * Possible Values: `Container_name`, `Dt_entity_container_group`, `Dt_entity_process_group`, `Host_tag`, `K8s_container_name`, `K8s_deployment_name`, `K8s_namespace_name`, `K8s_pod_annotation`, `K8s_pod_label`, `K8s_workload_kind`, `K8s_workload_name`, `Log_source`, `Log_source_origin`, `Process_technology`
     */
    attribute: string;
    /**
     * Possible Values: `MATCHES`
     */
    operator: string;
    /**
     * no documentation available
     */
    values: string[];
}
export interface LogStorageMatchers {
    matchers: outputs.LogStorageMatchersMatcher[];
}
export interface LogStorageMatchersMatcher {
    /**
     * Possible Values: `Container_name`, `Dt_entity_container_group`, `Dt_entity_process_group`, `Host_tag`, `Journald_unit`, `K8s_container_name`, `K8s_deployment_name`, `K8s_namespace_name`, `K8s_pod_annotation`, `K8s_pod_label`, `K8s_workload_kind`, `K8s_workload_name`, `Log_content`, `Log_source`, `Log_source_origin`, `Loglevel`, `Process_technology`, `Winlog_eventid`, `Winlog_keywords`, `Winlog_opcode`, `Winlog_provider`, `Winlog_task`, `Winlog_username`
     */
    attribute: string;
    /**
     * Possible Values: `MATCHES`
     */
    operator: string;
    /**
     * no documentation available
     */
    values: string[];
}
export interface LogTimestampEntryBoundary {
    /**
     * no documentation available
     */
    pattern?: string;
}
export interface LogTimestampMatchers {
    matchers: outputs.LogTimestampMatchersMatcher[];
}
export interface LogTimestampMatchersMatcher {
    /**
     * Possible Values: `Container_name`, `Dt_entity_container_group`, `Dt_entity_process_group`, `Host_tag`, `K8s_container_name`, `K8s_deployment_name`, `K8s_namespace_name`, `K8s_pod_annotation`, `K8s_pod_label`, `K8s_workload_kind`, `K8s_workload_name`, `Log_source`, `Log_source_origin`, `Process_technology`
     */
    attribute: string;
    /**
     * Possible Values: `MATCHES`
     */
    operator: string;
    /**
     * no documentation available
     */
    values: string[];
}
export interface MaintenanceFilters {
    filters: outputs.MaintenanceFiltersFilter[];
}
export interface MaintenanceFiltersFilter {
    /**
     * A specific entity that should match this maintenance window.. **Note**: If an entity type filter value is set, it must be equal to the type of the selected entity. Otherwise this maintenance window will not match.
     */
    entityId?: string;
    /**
     * Entities which contain all of the configured tags will match this maintenance window.
     */
    entityTags?: string[];
    /**
     * Type of entities this maintenance window should match.. If no entity type is selected all entities regardless of the type will match.
     */
    entityType?: string;
    /**
     * Entities which are part of all the configured management zones will match this maintenance window.
     */
    managementZones?: string[];
}
export interface MaintenanceGeneralProperties {
    /**
     * A short description of the maintenance purpose.
     */
    description?: string;
    /**
     * Disables the execution of the synthetic monitors that are within [the scope of this maintenance window](https://dt-url.net/0e0341m).
     */
    disableSynthetic: boolean;
    /**
     * The name of the maintenance window, displayed in the UI
     */
    name: string;
    /**
     * The type of suppression of alerting and problem detection during the maintenance. Possible Values: `DETECT_PROBLEMS_AND_ALERT`, `DETECT_PROBLEMS_DONT_ALERT`, `DONT_DETECT_PROBLEMS`
     */
    suppression: string;
    /**
     * The type of the maintenance, possible values: `PLANNED` or `UNPLANNED`
     */
    type: string;
}
export interface MaintenanceSchedule {
    /**
     * The configuration for maintenance windows occuring daily
     */
    dailyRecurrence?: outputs.MaintenanceScheduleDailyRecurrence;
    /**
     * The configuration for maintenance windows occuring monthly
     */
    monthlyRecurrence?: outputs.MaintenanceScheduleMonthlyRecurrence;
    /**
     * The configuration for maintenance windows occuring once
     */
    onceRecurrence?: outputs.MaintenanceScheduleOnceRecurrence;
    /**
     * The type maintenance window, possible values: `DAILY`, `MONTHLY`, `ONCE`, `WEEKLY`
     */
    type: string;
    /**
     * The configuration for maintenance windows occuring weekly
     */
    weeklyRecurrence?: outputs.MaintenanceScheduleWeeklyRecurrence;
}
export interface MaintenanceScheduleDailyRecurrence {
    /**
     * The recurrence date range of the maintenance window
     */
    recurrenceRange: outputs.MaintenanceScheduleDailyRecurrenceRecurrenceRange;
    /**
     * The time window of the maintenance window
     */
    timeWindow: outputs.MaintenanceScheduleDailyRecurrenceTimeWindow;
}
export interface MaintenanceScheduleDailyRecurrenceRecurrenceRange {
    /**
     * The end date of the recurrence range in YYYY-MM-DD format
     */
    endDate: string;
    /**
     * The start date of the recurrence range in YYYY-MM-DD format
     */
    startDate: string;
}
export interface MaintenanceScheduleDailyRecurrenceTimeWindow {
    /**
     * The end time of the maintenance window validity period in hh:mm:ss format
     */
    endTime: string;
    /**
     * The start time of the maintenance window validity period in hh:mm:ss format
     */
    startTime: string;
    /**
     * The time zone of the start and end time. Default time zone is UTC. You can use either UTC offset `UTC+01:00` format or the IANA Time Zone Database format (for example, `Europe/Vienna`)
     */
    timeZone: string;
}
export interface MaintenanceScheduleMonthlyRecurrence {
    /**
     * The day of the month for monthly maintenance. If the selected day does not fall within the month, the maintenance window will be active on the last day of the month.
     */
    dayOfMonth: number;
    /**
     * The recurrence date range of the maintenance window
     */
    recurrenceRange: outputs.MaintenanceScheduleMonthlyRecurrenceRecurrenceRange;
    /**
     * The time window of the maintenance window
     */
    timeWindow: outputs.MaintenanceScheduleMonthlyRecurrenceTimeWindow;
}
export interface MaintenanceScheduleMonthlyRecurrenceRecurrenceRange {
    /**
     * The end date of the recurrence range in YYYY-MM-DD format
     */
    endDate: string;
    /**
     * The start date of the recurrence range in YYYY-MM-DD format
     */
    startDate: string;
}
export interface MaintenanceScheduleMonthlyRecurrenceTimeWindow {
    /**
     * The end time of the maintenance window validity period in hh:mm:ss format
     */
    endTime: string;
    /**
     * The start time of the maintenance window validity period in hh:mm:ss format
     */
    startTime: string;
    /**
     * The time zone of the start and end time. Default time zone is UTC. You can use either UTC offset `UTC+01:00` format or the IANA Time Zone Database format (for example, `Europe/Vienna`)
     */
    timeZone: string;
}
export interface MaintenanceScheduleOnceRecurrence {
    /**
     * The end time of the maintenance window validity period in YYYY-MM-DDThh:mm:ss format (for example, `2022-01-01T08:00:00`)
     */
    endTime: string;
    /**
     * The start time of the maintenance window validity period in YYYY-MM-DDThh:mm:ss format (for example, `2022-01-01T08:00:00`)
     */
    startTime: string;
    /**
     * The time zone of the start and end time. Default time zone is UTC. You can use either UTC offset `UTC+01:00` format or the IANA Time Zone Database format (for example, `Europe/Vienna`)
     */
    timeZone: string;
}
export interface MaintenanceScheduleWeeklyRecurrence {
    /**
     * The day of the week for weekly maintenance, possible values: `FRIDAY`, `MONDAY`, `SATURDAY`, `SUNDAY`, `THURSDAY`, `TUESDAY`, `WEDNESDAY`
     */
    dayOfWeek: string;
    /**
     * The recurrence date range of the maintenance window
     */
    recurrenceRange: outputs.MaintenanceScheduleWeeklyRecurrenceRecurrenceRange;
    /**
     * The time window of the maintenance window
     */
    timeWindow: outputs.MaintenanceScheduleWeeklyRecurrenceTimeWindow;
}
export interface MaintenanceScheduleWeeklyRecurrenceRecurrenceRange {
    /**
     * The end date of the recurrence range in YYYY-MM-DD format
     */
    endDate: string;
    /**
     * The start date of the recurrence range in YYYY-MM-DD format
     */
    startDate: string;
}
export interface MaintenanceScheduleWeeklyRecurrenceTimeWindow {
    /**
     * The end time of the maintenance window validity period in hh:mm:ss format
     */
    endTime: string;
    /**
     * The start time of the maintenance window validity period in hh:mm:ss format
     */
    startTime: string;
    /**
     * The time zone of the start and end time. Default time zone is UTC. You can use either UTC offset `UTC+01:00` format or the IANA Time Zone Database format (for example, `Europe/Vienna`)
     */
    timeZone: string;
}
export interface MaintenanceWindowSchedule {
    /**
     * The end date and time of the maintenance window validity period in yyyy-mm-dd HH:mm format
     */
    end: string;
    /**
     * The recurrence of the maintenance window
     */
    recurrence?: outputs.MaintenanceWindowScheduleRecurrence;
    /**
     * The type of the schedule recurrence. Possible values are `DAILY`, `MONTHLY`, `ONCE` and `WEEKLY`
     */
    recurrenceType: string;
    /**
     * The start date and time of the maintenance window validity period in yyyy-mm-dd HH:mm format
     */
    start: string;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
    /**
     * The time zone of the start and end time. Default time zone is UTC. You can use either UTC offset `UTC+01:00` format or the IANA Time Zone Database format (for example, `Europe/Vienna`)
     */
    zoneId: string;
}
export interface MaintenanceWindowScheduleRecurrence {
    /**
     * The day of the month for monthly maintenance.  The value of `31` is treated as the last day of the month for months that don't have a 31st day. The value of `30` is also treated as the last day of the month for February
     */
    dayOfMonth?: number;
    /**
     * The day of the week for weekly maintenance.  The format is the full name of the day in upper case, for example `THURSDAY`
     */
    dayOfWeek?: string;
    /**
     * The duration of the maintenance window in minutes
     */
    durationMinutes: number;
    /**
     * The start time of the maintenance window in HH:mm format
     */
    startTime: string;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
}
export interface MaintenanceWindowScope {
    /**
     * A list of Dynatrace entities (for example, hosts or services) to be included in the scope.  Allowed values are Dynatrace entity IDs
     */
    entities?: string[];
    /**
     * A list of matching rules for dynamic scope formation.  If several rules are set, the OR logic applies
     */
    matches?: outputs.MaintenanceWindowScopeMatch[];
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
}
export interface MaintenanceWindowScopeMatch {
    /**
     * The ID of a management zone to which the matched entities must belong
     */
    mzId?: string;
    /**
     * The logic that applies when several tags are specified: AND/OR.  If not set, the OR logic is used
     */
    tagCombination?: string;
    /**
     * The tag you want to use for matching.  You can use custom tags from the UI, AWS tags, Cloud Foundry tags, OpenShift/Kubernetes, and tags based on environment variables
     */
    tags?: outputs.MaintenanceWindowScopeMatchTag[];
    /**
     * The type of the Dynatrace entities (for example, hosts or services) you want to pick up by matching
     */
    type?: string;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
}
export interface MaintenanceWindowScopeMatchTag {
    /**
     * The origin of the tag, such as AWS or Cloud Foundry. Custom tags use the `CONTEXTLESS` value
     */
    context: string;
    /**
     * The key of the tag. Custom tags have the tag value here
     */
    key: string;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
    /**
     * The value of the tag. Not applicable to custom tags
     */
    value?: string;
}
export interface ManagementZoneDimensionalRule {
    /**
     * The target of the rule. Possible values are
     *    - `ANY`
     *    - `LOG`
     *    - `METRIC`
     */
    appliesTo: string;
    /**
     * A list of conditions for the management zone. The management zone applies only if **all** conditions are fulfilled
     */
    conditions?: outputs.ManagementZoneDimensionalRuleCondition[];
    /**
     * The rule is enabled (`true`) or disabled (`false`)
     */
    enabled?: boolean;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
}
export interface ManagementZoneDimensionalRuleCondition {
    /**
     * The reference value for comparison. For conditions of the `DIMENSION` type, specify the key here
     */
    key: string;
    /**
     * How to compare. Possible values are
     *    - `BEGINS_WITH`
     *    - `EQUALS`
     */
    match: string;
    /**
     * The type of the condition. Possible values are
     *    - `DIMENSION`
     *    - `LOG_FILE_NAME`
     *    - `METRIC_KEY`
     */
    type: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value of the dimension. Only applicable when type is set to `DIMENSION`
     */
    value?: string;
}
export interface ManagementZoneEntitySelectorBasedRule {
    /**
     * The rule is enabled (`true`) or disabled (`false`)
     */
    enabled?: boolean;
    /**
     * The entity selector string, by which the entities are selected
     */
    selector?: string;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
}
export interface ManagementZoneRule {
    /**
     * A list of matching rules for the management zone. The management zone applies only if **all** conditions are fulfilled
     */
    conditions?: outputs.ManagementZoneRuleCondition[];
    /**
     * The rule is enabled (`true`) or disabled (`false`)
     */
    enabled?: boolean;
    /**
     * How to apply the management zone to underlying entities:
     *    - `SERVICE_TO_HOST_LIKE`: Apply to underlying hosts of matching services
     *    - `SERVICE_TO_PROCESS_GROUP_LIKE`: Apply to underlying process groups of matching services
     *    - `PROCESS_GROUP_TO_HOST`: Apply to underlying hosts of matching process groups
     *    - `PROCESS_GROUP_TO_SERVICE`: Apply to all services provided by matching process groups
     *    - `HOST_TO_PROCESS_GROUP_INSTANCE`: Apply to processes running on matching hosts
     *    - `CUSTOM_DEVICE_GROUP_TO_CUSTOM_DEVICE`: Apply to custom devices in matching custom device groups
     *    - `AZURE_TO_PG`: Apply to process groups connected to matching Azure entities
     *    - `AZURE_TO_SERVICE`: Apply to services provided by matching Azure entities
     */
    propagationTypes?: string[];
    /**
     * The type of Dynatrace entities the management zone can be applied to
     */
    type: string;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
}
export interface ManagementZoneRuleCondition {
    /**
     * Comparison for `APPLICATION_TYPE` attributes
     *
     * @deprecated You should use 'application_type' instead of 'application_type_comparison'. This attribute still exists for backwards compatibility.
     */
    applicationTypeComparisons?: outputs.ManagementZoneRuleConditionApplicationTypeComparison[];
    /**
     * Comparison for `APPLICATION_TYPE` attributes
     */
    applicationTypes?: outputs.ManagementZoneRuleConditionApplicationType[];
    /**
     * Comparison for `AZURE_COMPUTE_MODE` attributes
     */
    azureComputeModeComparisons?: outputs.ManagementZoneRuleConditionAzureComputeModeComparison[];
    /**
     * Comparison for `AZURE_COMPUTE_MODE` attributes
     *
     * @deprecated You should use 'azure_compute_mode' instead of 'azure_compute_mode_comparison'. This attribute still exists for backwards compatibility.
     */
    azureComputeModes?: outputs.ManagementZoneRuleConditionAzureComputeMode[];
    /**
     * Comparison for `AZURE_SKU` attributes
     *
     * @deprecated You should use 'azure_sku' instead of 'azure_sku_comparision'. This attribute still exists for backwards compatibility.
     */
    azureSkuComparisions?: outputs.ManagementZoneRuleConditionAzureSkuComparision[];
    /**
     * Comparison for `AZURE_SKU` attributes
     */
    azureSkus?: outputs.ManagementZoneRuleConditionAzureSkus[];
    /**
     * A comparison that's yet unknown to the provider. Operator and Value need to be encoded using the 'unknowns' property.
     *
     * @deprecated You should use 'comparison' instead of 'base_comparison_basic'. This attribute still exists for backwards compatibility.
     */
    baseComparisonBasics?: outputs.ManagementZoneRuleConditionBaseComparisonBasic[];
    /**
     * Fallback for not yet known type
     *
     * @deprecated 'base_condition_key' is deprecated. You should use 'key'
     */
    baseConditionKeys?: outputs.ManagementZoneRuleConditionBaseConditionKey[];
    /**
     * Comparison for `BITNESS` attributes
     *
     * @deprecated You should use 'bitness' instead of 'bitness_comparision'. This attribute still exists for backwards compatibility.
     */
    bitnessComparisions?: outputs.ManagementZoneRuleConditionBitnessComparision[];
    /**
     * Comparison for `BITNESS` attributes
     */
    bitnesses?: outputs.ManagementZoneRuleConditionBitness[];
    /**
     * Comparison for `CLOUD_TYPE` attributes
     *
     * @deprecated You should use 'cloud_type' instead of 'cloud_type_comparison'. This attribute still exists for backwards compatibility.
     */
    cloudTypeComparisons?: outputs.ManagementZoneRuleConditionCloudTypeComparison[];
    /**
     * Comparison for `CLOUD_TYPE` attributes
     */
    cloudTypes?: outputs.ManagementZoneRuleConditionCloudType[];
    /**
     * A comparison that's yet unknown to the provider. Operator and Value need to be encoded using the 'unknowns' property.
     */
    comparisons?: outputs.ManagementZoneRuleConditionComparison[];
    /**
     * Comparison for `CUSTOM_APPLICATION_TYPE` attributes
     *
     * @deprecated You should use 'custom_application_type' instead of 'custom_application_type_comparison'. This attribute still exists for backwards compatibility.
     */
    customApplicationTypeComparisons?: outputs.ManagementZoneRuleConditionCustomApplicationTypeComparison[];
    /**
     * Comparison for `CUSTOM_APPLICATION_TYPE` attributes
     */
    customApplicationTypes?: outputs.ManagementZoneRuleConditionCustomApplicationType[];
    /**
     * Key for Custom Host Metadata
     *
     * @deprecated 'custom_host_metadata_condition_key' is deprecated. You should use 'custom_host_metadata'
     */
    customHostMetadataConditionKeys?: outputs.ManagementZoneRuleConditionCustomHostMetadataConditionKey[];
    /**
     * Key for Custom Host Metadata
     */
    customHostMetadatas?: outputs.ManagementZoneRuleConditionCustomHostMetadata[];
    /**
     * Key for Custom Process Metadata
     *
     * @deprecated 'custom_process_metadata_condition_key' is deprecated. You should use 'custom_process_metadata'
     */
    customProcessMetadataConditionKeys?: outputs.ManagementZoneRuleConditionCustomProcessMetadataConditionKey[];
    /**
     * Key for Custom Process Metadata
     */
    customProcessMetadatas?: outputs.ManagementZoneRuleConditionCustomProcessMetadata[];
    /**
     * Comparison for `DATABASE_TOPOLOGY` attributes
     */
    databaseTopologies?: outputs.ManagementZoneRuleConditionDatabaseTopology[];
    /**
     * Comparison for `DATABASE_TOPOLOGY` attributes
     *
     * @deprecated You should use 'database_topology' instead of 'database_topology_comparison'. This attribute still exists for backwards compatibility.
     */
    databaseTopologyComparisons?: outputs.ManagementZoneRuleConditionDatabaseTopologyComparison[];
    /**
     * Comparison for `DCRUM_DECODER_TYPE` attributes
     *
     * @deprecated You should use 'dcrum_decoder' instead of 'dcrum_decoder_comparison'. This attribute still exists for backwards compatibility.
     */
    dcrumDecoderComparisons?: outputs.ManagementZoneRuleConditionDcrumDecoderComparison[];
    /**
     * Comparison for `DCRUM_DECODER_TYPE` attributes
     */
    dcrumDecoders?: outputs.ManagementZoneRuleConditionDcrumDecoder[];
    /**
     * Comparison for `ENTITY_ID` attributes
     */
    entities?: outputs.ManagementZoneRuleConditionEntity[];
    /**
     * Comparison for `ENTITY_ID` attributes
     *
     * @deprecated You should use 'entity' instead of 'entity_id_comparison'. This attribute still exists for backwards compatibility.
     */
    entityIdComparisons?: outputs.ManagementZoneRuleConditionEntityIdComparison[];
    /**
     * Comparison for `SIMPLE_HOST_TECH` attributes
     */
    hostTeches?: outputs.ManagementZoneRuleConditionHostTech[];
    /**
     * `hypervisorTypeComparision` is deprecated. Use `hypervisor` instead
     *
     * @deprecated `hypervisorTypeComparision` is deprecated. Use `hypervisor` instead
     */
    hypervisorTypeComparisions?: outputs.ManagementZoneRuleConditionHypervisorTypeComparision[];
    /**
     * Comparison for `HYPERVISOR_TYPE` attributes
     */
    hypervisors?: outputs.ManagementZoneRuleConditionHypervisor[];
    /**
     * Comparison for `INDEXED_NAME` attributes
     *
     * @deprecated You should use 'indexed_name' instead of 'indexed_name_comparison'. This attribute still exists for backwards compatibility.
     */
    indexedNameComparisons?: outputs.ManagementZoneRuleConditionIndexedNameComparison[];
    /**
     * Comparison for `INDEXED_NAME` attributes
     */
    indexedNames?: outputs.ManagementZoneRuleConditionIndexedName[];
    /**
     * Comparison for `INDEXED_STRING` attributes
     *
     * @deprecated You should use 'indexed_string' instead of 'indexed_string_comparison'. This attribute still exists for backwards compatibility.
     */
    indexedStringComparisons?: outputs.ManagementZoneRuleConditionIndexedStringComparison[];
    /**
     * Comparison for `INDEXED_STRING` attributes
     */
    indexedStrings?: outputs.ManagementZoneRuleConditionIndexedString[];
    /**
     * Comparison for `INDEXED_TAG` attributes
     *
     * @deprecated You should use 'indexed_tag' instead of 'indexed_tag_comparison'. This attribute still exists for backwards compatibility.
     */
    indexedTagComparisons?: outputs.ManagementZoneRuleConditionIndexedTagComparison[];
    /**
     * Comparison for `INDEXED_TAG` attributes
     */
    indexedTags?: outputs.ManagementZoneRuleConditionIndexedTag[];
    /**
     * Comparison for `INTEGER` attributes
     *
     * @deprecated You should use 'integer' instead of 'integer_comparison'. This attribute still exists for backwards compatibility.
     */
    integerComparisons?: outputs.ManagementZoneRuleConditionIntegerComparison[];
    /**
     * Comparison for `INTEGER` attributes
     */
    integers?: outputs.ManagementZoneRuleConditionInteger[];
    /**
     * Comparison for `IP_ADDRESS` attributes
     *
     * @deprecated You should use 'ipaddress' instead of 'ipaddress_comparison'. This attribute still exists for backwards compatibility.
     */
    ipaddressComparisons?: outputs.ManagementZoneRuleConditionIpaddressComparison[];
    /**
     * Comparison for `IP_ADDRESS` attributes
     */
    ipaddresses?: outputs.ManagementZoneRuleConditionIpaddress[];
    /**
     * Fallback for not yet known type
     */
    keys?: outputs.ManagementZoneRuleConditionKey[];
    /**
     * Comparison for `MOBILE_PLATFORM` attributes
     *
     * @deprecated You should use 'mobile_platform' instead of 'mobile_platform_comparison'. This attribute still exists for backwards compatibility.
     */
    mobilePlatformComparisons?: outputs.ManagementZoneRuleConditionMobilePlatformComparison[];
    /**
     * Comparison for `MOBILE_PLATFORM` attributes
     */
    mobilePlatforms?: outputs.ManagementZoneRuleConditionMobilePlatform[];
    /**
     * Comparison for `OS_ARCHITECTURE` attributes
     */
    osArches?: outputs.ManagementZoneRuleConditionOsArch[];
    /**
     * Comparison for `OS_TYPE` attributes
     */
    osTypes?: outputs.ManagementZoneRuleConditionOsType[];
    /**
     * Comparison for `OS_ARCHITECTURE` attributes
     *
     * @deprecated You should use 'os_arch' instead of 'osarchitecture_comparison'. This attribute still exists for backwards compatibility.
     */
    osarchitectureComparisons?: outputs.ManagementZoneRuleConditionOsarchitectureComparison[];
    /**
     * Comparison for `OS_TYPE` attributes
     *
     * @deprecated You should use 'os_type' instead of 'ostype_comparison'. This attribute still exists for backwards compatibility.
     */
    ostypeComparisons?: outputs.ManagementZoneRuleConditionOstypeComparison[];
    /**
     * Comparison for `PAAS_TYPE` attributes
     *
     * @deprecated You should use 'paas_type' instead of 'paas_type_comparison'. This attribute still exists for backwards compatibility.
     */
    paasTypeComparisons?: outputs.ManagementZoneRuleConditionPaasTypeComparison[];
    /**
     * Comparison for `PAAS_TYPE` attributes
     */
    paasTypes?: outputs.ManagementZoneRuleConditionPaasType[];
    /**
     * The key for dynamic attributes of the `PROCESS_PREDEFINED_METADATA_KEY` type
     *
     * @deprecated 'process_metadata_condition_key' is deprecated. You should use 'process_metadata'
     */
    processMetadataConditionKeys?: outputs.ManagementZoneRuleConditionProcessMetadataConditionKey[];
    /**
     * The key for dynamic attributes of the `PROCESS_PREDEFINED_METADATA_KEY` type
     */
    processMetadatas?: outputs.ManagementZoneRuleConditionProcessMetadata[];
    /**
     * Comparison for `SERVICE_TOPOLOGY` attributes
     */
    serviceTopologies?: outputs.ManagementZoneRuleConditionServiceTopology[];
    /**
     * Comparison for `SERVICE_TOPOLOGY` attributes
     *
     * @deprecated You should use 'service_topology' instead of 'service_topology_comparison'. This attribute still exists for backwards compatibility.
     */
    serviceTopologyComparisons?: outputs.ManagementZoneRuleConditionServiceTopologyComparison[];
    /**
     * Comparison for `SERVICE_TYPE` attributes
     *
     * @deprecated You should use 'service_type' instead of 'service_type_comparison'. This attribute still exists for backwards compatibility.
     */
    serviceTypeComparisons?: outputs.ManagementZoneRuleConditionServiceTypeComparison[];
    /**
     * Comparison for `SERVICE_TYPE` attributes
     */
    serviceTypes?: outputs.ManagementZoneRuleConditionServiceType[];
    /**
     * Comparison for `SIMPLE_HOST_TECH` attributes
     *
     * @deprecated You should use 'host_tech' instead of 'simple_host_tech_comparison'. This attribute still exists for backwards compatibility.
     */
    simpleHostTechComparisons?: outputs.ManagementZoneRuleConditionSimpleHostTechComparison[];
    /**
     * Comparison for `SIMPLE_TECH` attributes
     *
     * @deprecated You should use 'tech' instead of 'simple_tech_comparison'. This attribute still exists for backwards compatibility.
     */
    simpleTechComparisons?: outputs.ManagementZoneRuleConditionSimpleTechComparison[];
    /**
     * Comparison for `STRING` attributes
     *
     * @deprecated You should use 'string' instead of 'string_comparison'. This attribute still exists for backwards compatibility.
     */
    stringComparisons?: outputs.ManagementZoneRuleConditionStringComparison[];
    /**
     * The key for dynamic attributes of the `STRING` type
     *
     * @deprecated 'string_condition_key' is deprecated. You should use 'string_key'
     */
    stringConditionKeys?: outputs.ManagementZoneRuleConditionStringConditionKey[];
    /**
     * The key for dynamic attributes of the `STRING` type
     */
    stringKeys?: outputs.ManagementZoneRuleConditionStringKey[];
    /**
     * Comparison for `STRING` attributes
     */
    strings?: outputs.ManagementZoneRuleConditionString[];
    /**
     * Comparison for `SYNTHETIC_ENGINE_TYPE` attributes
     *
     * @deprecated You should use 'synthetic_engine' instead of 'synthetic_engine_type_comparison'. This attribute still exists for backwards compatibility.
     */
    syntheticEngineTypeComparisons?: outputs.ManagementZoneRuleConditionSyntheticEngineTypeComparison[];
    /**
     * Comparison for `SYNTHETIC_ENGINE_TYPE` attributes
     */
    syntheticEngines?: outputs.ManagementZoneRuleConditionSyntheticEngine[];
    /**
     * Comparison for `TAG` attributes
     *
     * @deprecated You should use 'tag' instead of 'tag_comparison'. This attribute still exists for backwards compatibility.
     */
    tagComparisons?: outputs.ManagementZoneRuleConditionTagComparison[];
    /**
     * Comparison for `TAG` attributes
     */
    tags?: outputs.ManagementZoneRuleConditionTag[];
    /**
     * Comparison for `SIMPLE_TECH` attributes
     */
    teches?: outputs.ManagementZoneRuleConditionTech[];
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
}
export interface ManagementZoneRuleConditionApplicationType {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value?: string;
}
export interface ManagementZoneRuleConditionApplicationTypeComparison {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be APPLICATION_TYPE
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value?: string;
}
export interface ManagementZoneRuleConditionAzureComputeMode {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are DEDICATED or SHARED.
     */
    value?: string;
}
export interface ManagementZoneRuleConditionAzureComputeModeComparison {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are DEDICATED or SHARED.
     */
    value?: string;
}
export interface ManagementZoneRuleConditionAzureSkuComparision {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be AZURE_SKU
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are BASIC, DYNAMIC, FREE, PREMIUM, SHARED and STANDARD.
     */
    value?: string;
}
export interface ManagementZoneRuleConditionAzureSkus {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are BASIC, DYNAMIC, FREE, PREMIUM, SHARED and STANDARD.
     */
    value?: string;
}
export interface ManagementZoneRuleConditionBaseComparisonBasic {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * The type of comparison
     */
    type: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
}
export interface ManagementZoneRuleConditionBaseConditionKey {
    /**
     * The attribute to be used for comparision
     */
    attribute: string;
    /**
     * Defines the actual set of fields depending on the value
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
}
export interface ManagementZoneRuleConditionBitness {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are 32 and 64.
     */
    value?: string;
}
export interface ManagementZoneRuleConditionBitnessComparision {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be BITNESS
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are 32 and 64.
     */
    value?: string;
}
export interface ManagementZoneRuleConditionCloudType {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are AZURE, EC2, GOOGLE_CLOUD_PLATFORM, OPENSTACK, ORACLE and UNRECOGNIZED.
     */
    value?: string;
}
export interface ManagementZoneRuleConditionCloudTypeComparison {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be CLOUD_TYPE
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are AZURE, EC2, GOOGLE_CLOUD_PLATFORM, OPENSTACK, ORACLE and UNRECOGNIZED.
     */
    value?: string;
}
export interface ManagementZoneRuleConditionComparison {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * The type of comparison
     */
    type: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
}
export interface ManagementZoneRuleConditionCustomApplicationType {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are AMAZON_ECHO, DESKTOP, EMBEDDED, IOT, MICROSOFT_HOLOLENS and UFO.
     */
    value?: string;
}
export interface ManagementZoneRuleConditionCustomApplicationTypeComparison {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be CUSTOM_APPLICATION_TYPE
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are AMAZON_ECHO, DESKTOP, EMBEDDED, IOT, MICROSOFT_HOLOLENS and UFO.
     */
    value?: string;
}
export interface ManagementZoneRuleConditionCustomHostMetadata {
    /**
     * The attribute to be used for comparision
     */
    attribute: string;
    /**
     * The key of the attribute, which need dynamic keys. Not applicable otherwise, as the attibute itself acts as a key
     */
    dynamicKey: outputs.ManagementZoneRuleConditionCustomHostMetadataDynamicKey;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
}
export interface ManagementZoneRuleConditionCustomHostMetadataConditionKey {
    /**
     * The attribute to be used for comparision
     */
    attribute: string;
    /**
     * The key of the attribute, which need dynamic keys. Not applicable otherwise, as the attibute itself acts as a key
     */
    dynamicKey: outputs.ManagementZoneRuleConditionCustomHostMetadataConditionKeyDynamicKey;
    /**
     * if specified, needs to be HOST_CUSTOM_METADATA_KEY
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
}
export interface ManagementZoneRuleConditionCustomHostMetadataConditionKeyDynamicKey {
    /**
     * The actual key of the custom metadata
     */
    key: string;
    /**
     * The source of the custom metadata. Possible values are ENVIRONMENT, GOOGLE_COMPUTE_ENGINE and PLUGIN
     */
    source: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
}
export interface ManagementZoneRuleConditionCustomHostMetadataDynamicKey {
    /**
     * The actual key of the custom metadata
     */
    key: string;
    /**
     * The source of the custom metadata. Possible values are ENVIRONMENT, GOOGLE_COMPUTE_ENGINE and PLUGIN
     */
    source: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
}
export interface ManagementZoneRuleConditionCustomProcessMetadata {
    /**
     * The attribute to be used for comparision
     */
    attribute: string;
    /**
     * The key of the attribute, which need dynamic keys. Not applicable otherwise, as the attibute itself acts as a key
     */
    dynamicKey: outputs.ManagementZoneRuleConditionCustomProcessMetadataDynamicKey;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
}
export interface ManagementZoneRuleConditionCustomProcessMetadataConditionKey {
    /**
     * The attribute to be used for comparision
     */
    attribute: string;
    /**
     * The key of the attribute, which need dynamic keys. Not applicable otherwise, as the attibute itself acts as a key
     */
    dynamicKey: outputs.ManagementZoneRuleConditionCustomProcessMetadataConditionKeyDynamicKey;
    /**
     * if specified, needs to be PROCESS_CUSTOM_METADATA_KEY
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
}
export interface ManagementZoneRuleConditionCustomProcessMetadataConditionKeyDynamicKey {
    /**
     * The actual key of the custom metadata
     */
    key: string;
    /**
     * The source of the custom metadata. Possible values are CLOUD_FOUNDRY, ENVIRONMENT, GOOGLE_CLOUD, KUBERNETES and PLUGIN
     */
    source: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
}
export interface ManagementZoneRuleConditionCustomProcessMetadataDynamicKey {
    /**
     * The actual key of the custom metadata
     */
    key: string;
    /**
     * The source of the custom metadata. Possible values are CLOUD_FOUNDRY, ENVIRONMENT, GOOGLE_CLOUD, KUBERNETES and PLUGIN
     */
    source: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
}
export interface ManagementZoneRuleConditionDatabaseTopology {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are CLUSTER, EMBEDDED, FAILOVER, IPC, LOAD_BALANCING, SINGLE_SERVER and UNSPECIFIED.
     */
    value?: string;
}
export interface ManagementZoneRuleConditionDatabaseTopologyComparison {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be DATABASE_TOPOLOGY
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are CLUSTER, EMBEDDED, FAILOVER, IPC, LOAD_BALANCING, SINGLE_SERVER and UNSPECIFIED.
     */
    value?: string;
}
export interface ManagementZoneRuleConditionDcrumDecoder {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are ALL_OTHER, CITRIX_APPFLOW, CITRIX_ICA, CITRIX_ICA_OVER_SSL, DB2_DRDA, HTTP, HTTPS, HTTP_EXPRESS, INFORMIX, MYSQL, ORACLE, SAP_GUI, SAP_GUI_OVER_HTTP, SAP_GUI_OVER_HTTPS, SAP_HANA_DB, SAP_RFC, SSL and TDS.
     */
    value?: string;
}
export interface ManagementZoneRuleConditionDcrumDecoderComparison {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be DCRUM_DECODER_TYPE
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are ALL_OTHER, CITRIX_APPFLOW, CITRIX_ICA, CITRIX_ICA_OVER_SSL, DB2_DRDA, HTTP, HTTPS, HTTP_EXPRESS, INFORMIX, MYSQL, ORACLE, SAP_GUI, SAP_GUI_OVER_HTTP, SAP_GUI_OVER_HTTPS, SAP_HANA_DB, SAP_RFC, SSL and TDS.
     */
    value?: string;
}
export interface ManagementZoneRuleConditionEntity {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Currently only EQUALS is supported. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value?: string;
}
export interface ManagementZoneRuleConditionEntityIdComparison {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Currently only EQUALS is supported. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be ENTITY_ID
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value?: string;
}
export interface ManagementZoneRuleConditionHostTech {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are EQUALS and EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value?: outputs.ManagementZoneRuleConditionHostTechValue;
}
export interface ManagementZoneRuleConditionHostTechValue {
    /**
     * Predefined technology, if technology is not predefined, then the verbatim type must be set. Possible values are APPARMOR, BOSH, BOSHBPM, CLOUDFOUNDRY, CONTAINERD, CRIO, DIEGO_CELL, DOCKER, GARDEN, GRSECURITY, KUBERNETES, OPENSHIFT, OPENSTACK_COMPUTE, OPENSTACK_CONTROLLER and SELINUX
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * Non-predefined technology, use for custom technologies
     */
    verbatimType?: string;
}
export interface ManagementZoneRuleConditionHypervisor {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are AHV, HYPER_V, KVM, LPAR, QEMU, VIRTUAL_BOX, VMWARE, WPAR and XEN.
     */
    value?: string;
}
export interface ManagementZoneRuleConditionHypervisorTypeComparision {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be HYPERVISOR_TYPE
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are AHV, HYPER_V, KVM, LPAR, QEMU, VIRTUAL_BOX, VMWARE, WPAR and XEN.
     */
    value?: string;
}
export interface ManagementZoneRuleConditionIndexedName {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS, CONTAINS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value?: string;
}
export interface ManagementZoneRuleConditionIndexedNameComparison {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS, CONTAINS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be INDEXED_NAME
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value?: string;
}
export interface ManagementZoneRuleConditionIndexedString {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value?: string;
}
export interface ManagementZoneRuleConditionIndexedStringComparison {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be INDEXED_STRING
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value?: string;
}
export interface ManagementZoneRuleConditionIndexedTag {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * Tag of a Dynatrace entity
     */
    value?: outputs.ManagementZoneRuleConditionIndexedTagValue;
}
export interface ManagementZoneRuleConditionIndexedTagComparison {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be INDEXED_TAG
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * Tag of a Dynatrace entity
     */
    value?: outputs.ManagementZoneRuleConditionIndexedTagComparisonValue;
}
export interface ManagementZoneRuleConditionIndexedTagComparisonValue {
    /**
     * The origin of the tag, such as AWS or Cloud Foundry. Possible values are AWS, AWS_GENERIC, AZURE, CLOUD_FOUNDRY, CONTEXTLESS, ENVIRONMENT, GOOGLE_CLOUD and KUBERNETES. Custom tags use the `CONTEXTLESS` value
     */
    context: string;
    /**
     * The key of the tag. Custom tags have the tag value here
     */
    key: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value of the tag. Not applicable to custom tags
     */
    value?: string;
}
export interface ManagementZoneRuleConditionIndexedTagValue {
    /**
     * The origin of the tag, such as AWS or Cloud Foundry. Possible values are AWS, AWS_GENERIC, AZURE, CLOUD_FOUNDRY, CONTEXTLESS, ENVIRONMENT, GOOGLE_CLOUD and KUBERNETES. Custom tags use the `CONTEXTLESS` value
     */
    context: string;
    /**
     * The key of the tag. Custom tags have the tag value here
     */
    key: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value of the tag. Not applicable to custom tags
     */
    value?: string;
}
export interface ManagementZoneRuleConditionInteger {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are EQUALS, EXISTS, GREATER_THAN, GREATER_THAN_OR_EQUAL, LOWER_THAN and LOWER_THAN_OR_EQUAL. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value?: number;
}
export interface ManagementZoneRuleConditionIntegerComparison {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are EQUALS, EXISTS, GREATER_THAN, GREATER_THAN_OR_EQUAL, LOWER_THAN and LOWER_THAN_OR_EQUAL. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be INTEGER
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value?: number;
}
export interface ManagementZoneRuleConditionIpaddress {
    /**
     * The comparison is case-sensitive (`true`) or insensitive (`false`)
     */
    caseSensitive?: boolean;
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are BEGINS_WITH, CONTAINS, ENDS_WITH, EQUALS, EXISTS, IS_IP_IN_RANGE and REGEX_MATCHES. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value?: string;
}
export interface ManagementZoneRuleConditionIpaddressComparison {
    /**
     * The comparison is case-sensitive (`true`) or insensitive (`false`)
     */
    caseSensitive?: boolean;
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are BEGINS_WITH, CONTAINS, ENDS_WITH, EQUALS, EXISTS, IS_IP_IN_RANGE and REGEX_MATCHES. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be IP_ADDRESS
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value?: string;
}
export interface ManagementZoneRuleConditionKey {
    /**
     * The attribute to be used for comparision
     */
    attribute: string;
    /**
     * Defines the actual set of fields depending on the value
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
}
export interface ManagementZoneRuleConditionMobilePlatform {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are EQUALS and EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are ANDROID, IOS, LINUX, MAC_OS, OTHER, TVOS and WINDOWS.
     */
    value?: string;
}
export interface ManagementZoneRuleConditionMobilePlatformComparison {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are EQUALS and EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be MOBILE_PLATFORM
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are ANDROID, IOS, LINUX, MAC_OS, OTHER, TVOS and WINDOWS.
     */
    value?: string;
}
export interface ManagementZoneRuleConditionOsArch {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are EQUALS and EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are ARM, IA64, PARISC, PPC, PPCLE, S390, SPARC, X86 and ZOS.
     */
    value?: string;
}
export interface ManagementZoneRuleConditionOsType {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are EQUALS and EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are AIX, DARWIN, HPUX, LINUX, SOLARIS, WINDOWS and ZOS.
     */
    value?: string;
}
export interface ManagementZoneRuleConditionOsarchitectureComparison {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are EQUALS and EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be OS_ARCHITECTURE
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are ARM, IA64, PARISC, PPC, PPCLE, S390, SPARC, X86 and ZOS.
     */
    value?: string;
}
export interface ManagementZoneRuleConditionOstypeComparison {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are EQUALS and EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be OS_TYPE
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are AIX, DARWIN, HPUX, LINUX, SOLARIS, WINDOWS and ZOS.
     */
    value?: string;
}
export interface ManagementZoneRuleConditionPaasType {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are EQUALS and EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are AWS_ECS_EC2, AWS_ECS_FARGATE, AWS_LAMBDA, AZURE_FUNCTIONS, AZURE_WEBSITES, CLOUD_FOUNDRY, GOOGLE_APP_ENGINE, HEROKU, KUBERNETES and OPENSHIFT.
     */
    value?: string;
}
export interface ManagementZoneRuleConditionPaasTypeComparison {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are EQUALS and EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be PAAS_TYPE
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are AWS_ECS_EC2, AWS_ECS_FARGATE, AWS_LAMBDA, AZURE_FUNCTIONS, AZURE_WEBSITES, CLOUD_FOUNDRY, GOOGLE_APP_ENGINE, HEROKU, KUBERNETES and OPENSHIFT.
     */
    value?: string;
}
export interface ManagementZoneRuleConditionProcessMetadata {
    /**
     * The attribute to be used for comparision
     */
    attribute: string;
    /**
     * The key of the attribute, which need dynamic keys. Not applicable otherwise, as the attibute itself acts as a key. Possible values are AMAZON_ECR_IMAGE_ACCOUNT_ID,AMAZON_ECR_IMAGE_REGION, AMAZON_LAMBDA_FUNCTION_NAME, AMAZON_REGION, APACHE_CONFIG_PATH, APACHE_SPARK_MASTER_IP_ADDRESS, ASP_DOT_NET_CORE_APPLICATION_PATH, AWS_ECS_CLUSTER, AWS_ECS_CONTAINERNAME, AWS_ECS_FAMILY, AWS_ECS_REVISION, CASSANDRA_CLUSTER_NAME, CATALINA_BASE, CATALINA_HOME, CLOUD_FOUNDRY_APP_ID, CLOUD_FOUNDRY_APP_NAME, CLOUD_FOUNDRY_INSTANCE_INDEX, CLOUD_FOUNDRY_SPACE_ID, CLOUD_FOUNDRY_SPACE_NAME, COLDFUSION_JVM_CONFIG_FILE, COLDFUSION_SERVICE_NAME, COMMAND_LINE_ARGS, DOTNET_COMMAND, DOTNET_COMMAND_PATH, DYNATRACE_CLUSTER_ID, DYNATRACE_NODE_ID, ELASTICSEARCH_CLUSTER_NAME, ELASTICSEARCH_NODE_NAME, EQUINOX_CONFIG_PATH, EXE_NAME, EXE_PATH, GLASS_FISH_DOMAIN_NAME, GLASS_FISH_INSTANCE_NAME, GOOGLE_APP_ENGINE_INSTANCE, GOOGLE_APP_ENGINE_SERVICE, GOOGLE_CLOUD_PROJECT, HYBRIS_BIN_DIRECTORY, HYBRIS_CONFIG_DIRECTORY, HYBRIS_DATA_DIRECTORY, IBM_CICS_REGION, IBM_CTG_NAME, IBM_IMS_CONNECT_REGION, IBM_IMS_CONTROL_REGION, IBM_IMS_MESSAGE_PROCESSING_REGION, IBM_IMS_SOAP_GW_NAME, IBM_INTEGRATION_NODE_NAME, IBM_INTEGRATION_SERVER_NAME, IIS_APP_POOL, IIS_ROLE_NAME, JAVA_JAR_FILE, JAVA_JAR_PATH, JAVA_MAIN_CLASS, JAVA_MAIN_MODULE, JBOSS_HOME, JBOSS_MODE, JBOSS_SERVER_NAME, KUBERNETES_BASE_POD_NAME, KUBERNETES_CONTAINER_NAME, KUBERNETES_FULL_POD_NAME, KUBERNETES_NAMESPACE, KUBERNETES_POD_UID, MSSQL_INSTANCE_NAME, NODE_JS_APP_BASE_DIRECTORY, NODE_JS_APP_NAME, NODE_JS_SCRIPT_NAME, ORACLE_SID, PG_ID_CALC_INPUT_KEY_LINKAGE, PHP_SCRIPT_PATH, PHP_WORKING_DIRECTORY, RUBY_APP_ROOT_PATH, RUBY_SCRIPT_PATH, RULE_RESULT, SOFTWAREAG_INSTALL_ROOT, SOFTWAREAG_PRODUCTPROPNAME, SPRINGBOOT_APP_NAME, SPRINGBOOT_PROFILE_NAME, SPRINGBOOT_STARTUP_CLASS, TIBCO_BUSINESSWORKS_CE_APP_NAME, TIBCO_BUSINESSWORKS_CE_VERSION, TIBCO_BUSINESS_WORKS_APP_NODE_NAME, TIBCO_BUSINESS_WORKS_APP_SPACE_NAME, TIBCO_BUSINESS_WORKS_DOMAIN_NAME, TIBCO_BUSINESS_WORKS_ENGINE_PROPERTY_FILE, TIBCO_BUSINESS_WORKS_ENGINE_PROPERTY_FILE_PATH, TIBCO_BUSINESS_WORKS_HOME, VARNISH_INSTANCE_NAME, WEB_LOGIC_CLUSTER_NAME, WEB_LOGIC_DOMAIN_NAME, WEB_LOGIC_HOME, WEB_LOGIC_NAME, WEB_SPHERE_CELL_NAME, WEB_SPHERE_CLUSTER_NAME, WEB_SPHERE_NODE_NAME and WEB_SPHERE_SERVER_NAME
     */
    dynamicKey: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
}
export interface ManagementZoneRuleConditionProcessMetadataConditionKey {
    /**
     * The attribute to be used for comparision
     */
    attribute: string;
    /**
     * The key of the attribute, which need dynamic keys. Not applicable otherwise, as the attibute itself acts as a key. Possible values are AMAZON_ECR_IMAGE_ACCOUNT_ID,AMAZON_ECR_IMAGE_REGION, AMAZON_LAMBDA_FUNCTION_NAME, AMAZON_REGION, APACHE_CONFIG_PATH, APACHE_SPARK_MASTER_IP_ADDRESS, ASP_DOT_NET_CORE_APPLICATION_PATH, AWS_ECS_CLUSTER, AWS_ECS_CONTAINERNAME, AWS_ECS_FAMILY, AWS_ECS_REVISION, CASSANDRA_CLUSTER_NAME, CATALINA_BASE, CATALINA_HOME, CLOUD_FOUNDRY_APP_ID, CLOUD_FOUNDRY_APP_NAME, CLOUD_FOUNDRY_INSTANCE_INDEX, CLOUD_FOUNDRY_SPACE_ID, CLOUD_FOUNDRY_SPACE_NAME, COLDFUSION_JVM_CONFIG_FILE, COLDFUSION_SERVICE_NAME, COMMAND_LINE_ARGS, DOTNET_COMMAND, DOTNET_COMMAND_PATH, DYNATRACE_CLUSTER_ID, DYNATRACE_NODE_ID, ELASTICSEARCH_CLUSTER_NAME, ELASTICSEARCH_NODE_NAME, EQUINOX_CONFIG_PATH, EXE_NAME, EXE_PATH, GLASS_FISH_DOMAIN_NAME, GLASS_FISH_INSTANCE_NAME, GOOGLE_APP_ENGINE_INSTANCE, GOOGLE_APP_ENGINE_SERVICE, GOOGLE_CLOUD_PROJECT, HYBRIS_BIN_DIRECTORY, HYBRIS_CONFIG_DIRECTORY, HYBRIS_DATA_DIRECTORY, IBM_CICS_REGION, IBM_CTG_NAME, IBM_IMS_CONNECT_REGION, IBM_IMS_CONTROL_REGION, IBM_IMS_MESSAGE_PROCESSING_REGION, IBM_IMS_SOAP_GW_NAME, IBM_INTEGRATION_NODE_NAME, IBM_INTEGRATION_SERVER_NAME, IIS_APP_POOL, IIS_ROLE_NAME, JAVA_JAR_FILE, JAVA_JAR_PATH, JAVA_MAIN_CLASS, JAVA_MAIN_MODULE, JBOSS_HOME, JBOSS_MODE, JBOSS_SERVER_NAME, KUBERNETES_BASE_POD_NAME, KUBERNETES_CONTAINER_NAME, KUBERNETES_FULL_POD_NAME, KUBERNETES_NAMESPACE, KUBERNETES_POD_UID, MSSQL_INSTANCE_NAME, NODE_JS_APP_BASE_DIRECTORY, NODE_JS_APP_NAME, NODE_JS_SCRIPT_NAME, ORACLE_SID, PG_ID_CALC_INPUT_KEY_LINKAGE, PHP_SCRIPT_PATH, PHP_WORKING_DIRECTORY, RUBY_APP_ROOT_PATH, RUBY_SCRIPT_PATH, RULE_RESULT, SOFTWAREAG_INSTALL_ROOT, SOFTWAREAG_PRODUCTPROPNAME, SPRINGBOOT_APP_NAME, SPRINGBOOT_PROFILE_NAME, SPRINGBOOT_STARTUP_CLASS, TIBCO_BUSINESSWORKS_CE_APP_NAME, TIBCO_BUSINESSWORKS_CE_VERSION, TIBCO_BUSINESS_WORKS_APP_NODE_NAME, TIBCO_BUSINESS_WORKS_APP_SPACE_NAME, TIBCO_BUSINESS_WORKS_DOMAIN_NAME, TIBCO_BUSINESS_WORKS_ENGINE_PROPERTY_FILE, TIBCO_BUSINESS_WORKS_ENGINE_PROPERTY_FILE_PATH, TIBCO_BUSINESS_WORKS_HOME, VARNISH_INSTANCE_NAME, WEB_LOGIC_CLUSTER_NAME, WEB_LOGIC_DOMAIN_NAME, WEB_LOGIC_HOME, WEB_LOGIC_NAME, WEB_SPHERE_CELL_NAME, WEB_SPHERE_CLUSTER_NAME, WEB_SPHERE_NODE_NAME and WEB_SPHERE_SERVER_NAME
     */
    dynamicKey: string;
    /**
     * if specified, needs to be PROCESS_PREDEFINED_METADATA_KEY
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
}
export interface ManagementZoneRuleConditionServiceTopology {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are EQUALS and EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are EXTERNAL_SERVICE, FULLY_MONITORED and OPAQUE_SERVICE.
     */
    value?: string;
}
export interface ManagementZoneRuleConditionServiceTopologyComparison {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are EQUALS and EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be SERVICE_TOPOLOGY
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are EXTERNAL_SERVICE, FULLY_MONITORED and OPAQUE_SERVICE.
     */
    value?: string;
}
export interface ManagementZoneRuleConditionServiceType {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are EQUALS and EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are BACKGROUND_ACTIVITY, CICS_SERVICE, CUSTOM_SERVICE, DATABASE_SERVICE, ENTERPRISE_SERVICE_BUS_SERVICE, EXTERNAL, IBM_INTEGRATION_BUS_SERVICE, IMS_SERVICE, MESSAGING_SERVICE, QUEUE_LISTENER_SERVICE, RMI_SERVICE, RPC_SERVICE, WEB_REQUEST_SERVICE and WEB_SERVICE.
     */
    value?: string;
}
export interface ManagementZoneRuleConditionServiceTypeComparison {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are EQUALS and EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be SERVICE_TYPE
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are BACKGROUND_ACTIVITY, CICS_SERVICE, CUSTOM_SERVICE, DATABASE_SERVICE, ENTERPRISE_SERVICE_BUS_SERVICE, EXTERNAL, IBM_INTEGRATION_BUS_SERVICE, IMS_SERVICE, MESSAGING_SERVICE, QUEUE_LISTENER_SERVICE, RMI_SERVICE, RPC_SERVICE, WEB_REQUEST_SERVICE and WEB_SERVICE.
     */
    value?: string;
}
export interface ManagementZoneRuleConditionSimpleHostTechComparison {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are EQUALS and EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be SIMPLE_HOST_TECH
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value?: outputs.ManagementZoneRuleConditionSimpleHostTechComparisonValue;
}
export interface ManagementZoneRuleConditionSimpleHostTechComparisonValue {
    /**
     * Predefined technology, if technology is not predefined, then the verbatim type must be set. Possible values are APPARMOR, BOSH, BOSHBPM, CLOUDFOUNDRY, CONTAINERD, CRIO, DIEGO_CELL, DOCKER, GARDEN, GRSECURITY, KUBERNETES, OPENSHIFT, OPENSTACK_COMPUTE, OPENSTACK_CONTROLLER and SELINUX
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * Non-predefined technology, use for custom technologies
     */
    verbatimType?: string;
}
export interface ManagementZoneRuleConditionSimpleTechComparison {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are EQUALS and EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be SIMPLE_TECH
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value?: outputs.ManagementZoneRuleConditionSimpleTechComparisonValue;
}
export interface ManagementZoneRuleConditionSimpleTechComparisonValue {
    /**
     * Predefined technology, if technology is not predefined, then the verbatim type must be set.
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * Non-predefined technology, use for custom technologies
     */
    verbatimType?: string;
}
export interface ManagementZoneRuleConditionString {
    /**
     * The comparison is case-sensitive (`true`) or insensitive (`false`)
     */
    caseSensitive?: boolean;
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are BEGINS_WITH, CONTAINS, ENDS_WITH, EQUALS, EXISTS and REGEX_MATCHES. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value?: string;
}
export interface ManagementZoneRuleConditionStringComparison {
    /**
     * The comparison is case-sensitive (`true`) or insensitive (`false`)
     */
    caseSensitive?: boolean;
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are BEGINS_WITH, CONTAINS, ENDS_WITH, EQUALS, EXISTS and REGEX_MATCHES. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be STRING
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value?: string;
}
export interface ManagementZoneRuleConditionStringConditionKey {
    /**
     * The attribute to be used for comparision
     */
    attribute: string;
    /**
     * The key of the attribute, which need dynamic keys. Not applicable otherwise, as the attibute itself acts as a key. Possible values are
     *    - `AMAZON_ECR_IMAGE_ACCOUNT_ID`
     *    - `AMAZON_ECR_IMAGE_REGION`
     *    - `AMAZON_LAMBDA_FUNCTION_NAME`
     *    - `AMAZON_REGION`
     *    - `APACHE_CONFIG_PATH`
     *    - `APACHE_SPARK_MASTER_IP_ADDRESS`
     *    - `ASP_DOT_NET_CORE_APPLICATION_PATH`
     *    - `AWS_ECS_CLUSTER`
     *    - `AWS_ECS_CONTAINERNAME`
     *    - `AWS_ECS_FAMILY`
     *    - `AWS_ECS_REVISION`
     *    - `CASSANDRA_CLUSTER_NAME`
     *    - `CATALINA_BASE`
     *    - `CATALINA_HOME`
     *    - `CLOUD_FOUNDRY_APP_ID`
     *    - `CLOUD_FOUNDRY_APP_NAME`
     *    - `CLOUD_FOUNDRY_INSTANCE_INDEX`
     *    - `CLOUD_FOUNDRY_SPACE_ID`
     *    - `CLOUD_FOUNDRY_SPACE_NAME`
     *    - `COLDFUSION_JVM_CONFIG_FILE`
     *    - `COLDFUSION_SERVICE_NAME`
     *    - `COMMAND_LINE_ARGS`
     *    - `DOTNET_COMMAND`
     *    - `DOTNET_COMMAND_PATH`
     *    - `DYNATRACE_CLUSTER_ID`
     *    - `DYNATRACE_NODE_ID`
     *    - `ELASTICSEARCH_CLUSTER_NAME`
     *    - `ELASTICSEARCH_NODE_NAME`
     *    - `EQUINOX_CONFIG_PATH`
     *    - `EXE_NAME`
     *    - `EXE_PATH`
     *    - `GLASS_FISH_DOMAIN_NAME`
     *    - `GLASS_FISH_INSTANCE_NAME`
     *    - `GOOGLE_APP_ENGINE_INSTANCE`
     *    - `GOOGLE_APP_ENGINE_SERVICE`
     *    - `GOOGLE_CLOUD_PROJECT`
     *    - `HYBRIS_BIN_DIRECTORY`
     *    - `HYBRIS_CONFIG_DIRECTORY`
     *    - `HYBRIS_DATA_DIRECTORY`
     *    - `IBM_CICS_REGION`
     *    - `IBM_CTG_NAME`
     *    - `IBM_IMS_CONNECT_REGION`
     *    - `IBM_IMS_CONTROL_REGION`
     *    - `IBM_IMS_MESSAGE_PROCESSING_REGION`
     *    - `IBM_IMS_SOAP_GW_NAME`
     *    - `IBM_INTEGRATION_NODE_NAME`
     *    - `IBM_INTEGRATION_SERVER_NAME`
     *    - `IIS_APP_POOL`
     *    - `IIS_ROLE_NAME`
     *    - `JAVA_JAR_FILE`
     *    - `JAVA_JAR_PATH`
     *    - `JAVA_MAIN_CLASS`
     *    - `JAVA_MAIN_MODULE`
     *    - `JBOSS_HOME`
     *    - `JBOSS_MODE`
     *    - `JBOSS_SERVER_NAME`
     *    - `KUBERNETES_BASE_POD_NAME`
     *    - `KUBERNETES_CONTAINER_NAME`
     *    - `KUBERNETES_FULL_POD_NAME`
     *    - `KUBERNETES_NAMESPACE`
     *    - `KUBERNETES_POD_UID`
     *    - `MSSQL_INSTANCE_NAME`
     *    - `NODE_JS_APP_BASE_DIRECTORY`
     *    - `NODE_JS_APP_NAME`
     *    - `NODE_JS_SCRIPT_NAME`
     *    - `ORACLE_SID`
     *    - `PG_ID_CALC_INPUT_KEY_LINKAGE`
     *    - `PHP_SCRIPT_PATH`
     *    - `PHP_WORKING_DIRECTORY`
     *    - `RUBY_APP_ROOT_PATH`
     *    - `RUBY_SCRIPT_PATH`
     *    - `RULE_RESULT`
     *    - `SOFTWAREAG_INSTALL_ROOT`
     *    - `SOFTWAREAG_PRODUCTPROPNAME`
     *    - `SPRINGBOOT_APP_NAME`
     *    - `SPRINGBOOT_PROFILE_NAME`
     *    - `SPRINGBOOT_STARTUP_CLASS`
     *    - `TIBCO_BUSINESSWORKS_CE_APP_NAME`
     *    - `TIBCO_BUSINESSWORKS_CE_VERSION`
     *    - `TIBCO_BUSINESS_WORKS_APP_NODE_NAME`
     *    - `TIBCO_BUSINESS_WORKS_APP_SPACE_NAME`
     *    - `TIBCO_BUSINESS_WORKS_DOMAIN_NAME`
     *    - `TIBCO_BUSINESS_WORKS_ENGINE_PROPERTY_FILE`
     *    - `TIBCO_BUSINESS_WORKS_ENGINE_PROPERTY_FILE_PATH`
     *    - `TIBCO_BUSINESS_WORKS_HOME`
     *    - `VARNISH_INSTANCE_NAME`
     *    - `WEB_LOGIC_CLUSTER_NAME`
     *    - `WEB_LOGIC_DOMAIN_NAME`
     *    - `WEB_LOGIC_HOME`
     *    - `WEB_LOGIC_NAME`
     *    - `WEB_SPHERE_CELL_NAME`
     *    - `WEB_SPHERE_CLUSTER_NAME`
     *    - `WEB_SPHERE_NODE_NAME and WEB_SPHERE_SERVER_NAME`
     */
    dynamicKey: string;
    /**
     * if specified, needs to be `STRING`
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
}
export interface ManagementZoneRuleConditionStringKey {
    /**
     * The attribute to be used for comparision
     */
    attribute: string;
    /**
     * The key of the attribute, which need dynamic keys. Not applicable otherwise, as the attibute itself acts as a key. Possible values are
     *    - `AMAZON_ECR_IMAGE_ACCOUNT_ID`
     *    - `AMAZON_ECR_IMAGE_REGION`
     *    - `AMAZON_LAMBDA_FUNCTION_NAME`
     *    - `AMAZON_REGION`
     *    - `APACHE_CONFIG_PATH`
     *    - `APACHE_SPARK_MASTER_IP_ADDRESS`
     *    - `ASP_DOT_NET_CORE_APPLICATION_PATH`
     *    - `AWS_ECS_CLUSTER`
     *    - `AWS_ECS_CONTAINERNAME`
     *    - `AWS_ECS_FAMILY`
     *    - `AWS_ECS_REVISION`
     *    - `CASSANDRA_CLUSTER_NAME`
     *    - `CATALINA_BASE`
     *    - `CATALINA_HOME`
     *    - `CLOUD_FOUNDRY_APP_ID`
     *    - `CLOUD_FOUNDRY_APP_NAME`
     *    - `CLOUD_FOUNDRY_INSTANCE_INDEX`
     *    - `CLOUD_FOUNDRY_SPACE_ID`
     *    - `CLOUD_FOUNDRY_SPACE_NAME`
     *    - `COLDFUSION_JVM_CONFIG_FILE`
     *    - `COLDFUSION_SERVICE_NAME`
     *    - `COMMAND_LINE_ARGS`
     *    - `DOTNET_COMMAND`
     *    - `DOTNET_COMMAND_PATH`
     *    - `DYNATRACE_CLUSTER_ID`
     *    - `DYNATRACE_NODE_ID`
     *    - `ELASTICSEARCH_CLUSTER_NAME`
     *    - `ELASTICSEARCH_NODE_NAME`
     *    - `EQUINOX_CONFIG_PATH`
     *    - `EXE_NAME`
     *    - `EXE_PATH`
     *    - `GLASS_FISH_DOMAIN_NAME`
     *    - `GLASS_FISH_INSTANCE_NAME`
     *    - `GOOGLE_APP_ENGINE_INSTANCE`
     *    - `GOOGLE_APP_ENGINE_SERVICE`
     *    - `GOOGLE_CLOUD_PROJECT`
     *    - `HYBRIS_BIN_DIRECTORY`
     *    - `HYBRIS_CONFIG_DIRECTORY`
     *    - `HYBRIS_DATA_DIRECTORY`
     *    - `IBM_CICS_REGION`
     *    - `IBM_CTG_NAME`
     *    - `IBM_IMS_CONNECT_REGION`
     *    - `IBM_IMS_CONTROL_REGION`
     *    - `IBM_IMS_MESSAGE_PROCESSING_REGION`
     *    - `IBM_IMS_SOAP_GW_NAME`
     *    - `IBM_INTEGRATION_NODE_NAME`
     *    - `IBM_INTEGRATION_SERVER_NAME`
     *    - `IIS_APP_POOL`
     *    - `IIS_ROLE_NAME`
     *    - `JAVA_JAR_FILE`
     *    - `JAVA_JAR_PATH`
     *    - `JAVA_MAIN_CLASS`
     *    - `JAVA_MAIN_MODULE`
     *    - `JBOSS_HOME`
     *    - `JBOSS_MODE`
     *    - `JBOSS_SERVER_NAME`
     *    - `KUBERNETES_BASE_POD_NAME`
     *    - `KUBERNETES_CONTAINER_NAME`
     *    - `KUBERNETES_FULL_POD_NAME`
     *    - `KUBERNETES_NAMESPACE`
     *    - `KUBERNETES_POD_UID`
     *    - `MSSQL_INSTANCE_NAME`
     *    - `NODE_JS_APP_BASE_DIRECTORY`
     *    - `NODE_JS_APP_NAME`
     *    - `NODE_JS_SCRIPT_NAME`
     *    - `ORACLE_SID`
     *    - `PG_ID_CALC_INPUT_KEY_LINKAGE`
     *    - `PHP_SCRIPT_PATH`
     *    - `PHP_WORKING_DIRECTORY`
     *    - `RUBY_APP_ROOT_PATH`
     *    - `RUBY_SCRIPT_PATH`
     *    - `RULE_RESULT`
     *    - `SOFTWAREAG_INSTALL_ROOT`
     *    - `SOFTWAREAG_PRODUCTPROPNAME`
     *    - `SPRINGBOOT_APP_NAME`
     *    - `SPRINGBOOT_PROFILE_NAME`
     *    - `SPRINGBOOT_STARTUP_CLASS`
     *    - `TIBCO_BUSINESSWORKS_CE_APP_NAME`
     *    - `TIBCO_BUSINESSWORKS_CE_VERSION`
     *    - `TIBCO_BUSINESS_WORKS_APP_NODE_NAME`
     *    - `TIBCO_BUSINESS_WORKS_APP_SPACE_NAME`
     *    - `TIBCO_BUSINESS_WORKS_DOMAIN_NAME`
     *    - `TIBCO_BUSINESS_WORKS_ENGINE_PROPERTY_FILE`
     *    - `TIBCO_BUSINESS_WORKS_ENGINE_PROPERTY_FILE_PATH`
     *    - `TIBCO_BUSINESS_WORKS_HOME`
     *    - `VARNISH_INSTANCE_NAME`
     *    - `WEB_LOGIC_CLUSTER_NAME`
     *    - `WEB_LOGIC_DOMAIN_NAME`
     *    - `WEB_LOGIC_HOME`
     *    - `WEB_LOGIC_NAME`
     *    - `WEB_SPHERE_CELL_NAME`
     *    - `WEB_SPHERE_CLUSTER_NAME`
     *    - `WEB_SPHERE_NODE_NAME and WEB_SPHERE_SERVER_NAME`
     */
    dynamicKey: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
}
export interface ManagementZoneRuleConditionSyntheticEngine {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are  EQUALS and EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are CLASSIC and CUSTOM
     */
    value?: string;
}
export interface ManagementZoneRuleConditionSyntheticEngineTypeComparison {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are  EQUALS and EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be SYNTHETIC_ENGINE_TYPE
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are CLASSIC and CUSTOM
     */
    value?: string;
}
export interface ManagementZoneRuleConditionTag {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are EQUALS and TAG_KEY_EQUALS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * Tag of a Dynatrace entity
     */
    value?: outputs.ManagementZoneRuleConditionTagValue;
}
export interface ManagementZoneRuleConditionTagComparison {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are EQUALS and TAG_KEY_EQUALS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be TAG
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * Tag of a Dynatrace entity
     */
    value?: outputs.ManagementZoneRuleConditionTagComparisonValue;
}
export interface ManagementZoneRuleConditionTagComparisonValue {
    /**
     * The origin of the tag, such as AWS or Cloud Foundry. Possible values are AWS, AWS_GENERIC, AZURE, CLOUD_FOUNDRY, CONTEXTLESS, ENVIRONMENT, GOOGLE_CLOUD and KUBERNETES. Custom tags use the `CONTEXTLESS` value
     */
    context: string;
    /**
     * The key of the tag. Custom tags have the tag value here
     */
    key: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value of the tag. Not applicable to custom tags
     */
    value?: string;
}
export interface ManagementZoneRuleConditionTagValue {
    /**
     * The origin of the tag, such as AWS or Cloud Foundry. Possible values are AWS, AWS_GENERIC, AZURE, CLOUD_FOUNDRY, CONTEXTLESS, ENVIRONMENT, GOOGLE_CLOUD and KUBERNETES. Custom tags use the `CONTEXTLESS` value
     */
    context: string;
    /**
     * The key of the tag. Custom tags have the tag value here
     */
    key: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value of the tag. Not applicable to custom tags
     */
    value?: string;
}
export interface ManagementZoneRuleConditionTech {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are EQUALS and EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value?: outputs.ManagementZoneRuleConditionTechValue;
}
export interface ManagementZoneRuleConditionTechValue {
    /**
     * Predefined technology, if technology is not predefined, then the verbatim type must be set.
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * Non-predefined technology, use for custom technologies
     */
    verbatimType?: string;
}
export interface ManagementZoneV2Rules {
    /**
     * A management zone rule
     */
    rules: outputs.ManagementZoneV2RulesRule[];
}
export interface ManagementZoneV2RulesRule {
    /**
     * no documentation available
     */
    attributeRule?: outputs.ManagementZoneV2RulesRuleAttributeRule;
    /**
     * no documentation available
     */
    dimensionRule?: outputs.ManagementZoneV2RulesRuleDimensionRule;
    /**
     * This setting is enabled (`true`) or disabled (`false`)
     */
    enabled: boolean;
    /**
     * The documentation of the entity selector can be found [here](https://dt-url.net/apientityselector).
     */
    entitySelector?: string;
    /**
     * Possible Values: `DIMENSION`, `ME`, `SELECTOR`
     */
    type: string;
}
export interface ManagementZoneV2RulesRuleAttributeRule {
    /**
     * no documentation available
     */
    attributeConditions: outputs.ManagementZoneV2RulesRuleAttributeRuleAttributeConditions;
    /**
     * Apply to process groups connected to matching Azure entities
     */
    azureToPgpropagation?: boolean;
    /**
     * Apply to services provided by matching Azure entities
     */
    azureToServicePropagation?: boolean;
    /**
     * Apply to custom devices in a custom device group
     */
    customDeviceGroupToCustomDevicePropagation?: boolean;
    /**
     * Possible Values: `APPMON_SERVER`, `APPMON_SYSTEM_PROFILE`, `AWS_ACCOUNT`, `AWS_APPLICATION_LOAD_BALANCER`, `AWS_AUTO_SCALING_GROUP`, `AWS_CLASSIC_LOAD_BALANCER`, `AWS_NETWORK_LOAD_BALANCER`, `AWS_RELATIONAL_DATABASE_SERVICE`, `AZURE`, `BROWSER_MONITOR`, `CLOUD_APPLICATION`, `CLOUD_APPLICATION_NAMESPACE`, `CLOUD_FOUNDRY_FOUNDATION`, `CUSTOM_APPLICATION`, `CUSTOM_DEVICE`, `CUSTOM_DEVICE_GROUP`, `DATA_CENTER_SERVICE`, `ENTERPRISE_APPLICATION`, `ESXI_HOST`, `EXTERNAL_MONITOR`, `HOST`, `HOST_GROUP`, `HTTP_MONITOR`, `KUBERNETES_CLUSTER`, `KUBERNETES_SERVICE`, `MOBILE_APPLICATION`, `OPENSTACK_ACCOUNT`, `PROCESS_GROUP`, `QUEUE`, `SERVICE`, `WEB_APPLICATION`
     */
    entityType: string;
    /**
     * Apply to processes running on matching hosts. `entityType` must be set to `HOST`
     */
    hostToPgpropagation?: boolean;
    /**
     * Apply to underlying hosts of matching process groups. `entityType` must be set to `PROCESS_GROUP`
     */
    pgToHostPropagation?: boolean;
    /**
     * Apply to all services provided by the process groups. `entityType` must be set to `PROCESS_GROUP`
     */
    pgToServicePropagation?: boolean;
    /**
     * Apply to underlying hosts of matching services. `entityType` must be set to `SERVICE`
     */
    serviceToHostPropagation?: boolean;
    /**
     * Apply to underlying process groups of matching services. `entityType` must be set to `SERVICE`
     */
    serviceToPgpropagation?: boolean;
}
export interface ManagementZoneV2RulesRuleAttributeRuleAttributeConditions {
    /**
     * Attribute conditions
     */
    conditions: outputs.ManagementZoneV2RulesRuleAttributeRuleAttributeConditionsCondition[];
}
export interface ManagementZoneV2RulesRuleAttributeRuleAttributeConditionsCondition {
    /**
     * Case sensitive
     */
    caseSensitive?: boolean;
    /**
     * Dynamic key
     */
    dynamicKey?: string;
    /**
     * Key source
     */
    dynamicKeySource?: string;
    /**
     * Value
     */
    entityId?: string;
    /**
     * Value
     */
    enumValue?: string;
    /**
     * Value
     */
    integerValue?: number;
    /**
     * Possible Values: `APPMON_SERVER_NAME`, `APPMON_SYSTEM_PROFILE_NAME`, `AWS_ACCOUNT_ID`, `AWS_ACCOUNT_NAME`, `AWS_APPLICATION_LOAD_BALANCER_NAME`, `AWS_APPLICATION_LOAD_BALANCER_TAGS`, `AWS_AUTO_SCALING_GROUP_NAME`, `AWS_AUTO_SCALING_GROUP_TAGS`, `AWS_AVAILABILITY_ZONE_NAME`, `AWS_CLASSIC_LOAD_BALANCER_FRONTEND_PORTS`, `AWS_CLASSIC_LOAD_BALANCER_NAME`, `AWS_CLASSIC_LOAD_BALANCER_TAGS`, `AWS_NETWORK_LOAD_BALANCER_NAME`, `AWS_NETWORK_LOAD_BALANCER_TAGS`, `AWS_RELATIONAL_DATABASE_SERVICE_DB_NAME`, `AWS_RELATIONAL_DATABASE_SERVICE_ENDPOINT`, `AWS_RELATIONAL_DATABASE_SERVICE_ENGINE`, `AWS_RELATIONAL_DATABASE_SERVICE_INSTANCE_CLASS`, `AWS_RELATIONAL_DATABASE_SERVICE_NAME`, `AWS_RELATIONAL_DATABASE_SERVICE_PORT`, `AWS_RELATIONAL_DATABASE_SERVICE_TAGS`, `AZURE_ENTITY_NAME`, `AZURE_ENTITY_TAGS`, `AZURE_MGMT_GROUP_NAME`, `AZURE_MGMT_GROUP_UUID`, `AZURE_REGION_NAME`, `AZURE_SCALE_SET_NAME`, `AZURE_SUBSCRIPTION_NAME`, `AZURE_SUBSCRIPTION_UUID`, `AZURE_TENANT_NAME`, `AZURE_TENANT_UUID`, `AZURE_VM_NAME`, `BROWSER_MONITOR_NAME`, `BROWSER_MONITOR_TAGS`, `CLOUD_APPLICATION_LABELS`, `CLOUD_APPLICATION_NAME`, `CLOUD_APPLICATION_NAMESPACE_LABELS`, `CLOUD_APPLICATION_NAMESPACE_NAME`, `CLOUD_FOUNDRY_FOUNDATION_NAME`, `CLOUD_FOUNDRY_ORG_NAME`, `CUSTOM_APPLICATION_NAME`, `CUSTOM_APPLICATION_PLATFORM`, `CUSTOM_APPLICATION_TAGS`, `CUSTOM_APPLICATION_TYPE`, `CUSTOM_DEVICE_DNS_ADDRESS`, `CUSTOM_DEVICE_GROUP_NAME`, `CUSTOM_DEVICE_GROUP_TAGS`, `CUSTOM_DEVICE_IP_ADDRESS`, `CUSTOM_DEVICE_METADATA`, `CUSTOM_DEVICE_NAME`, `CUSTOM_DEVICE_PORT`, `CUSTOM_DEVICE_TAGS`, `CUSTOM_DEVICE_TECHNOLOGY`, `DATA_CENTER_SERVICE_DECODER_TYPE`, `DATA_CENTER_SERVICE_IP_ADDRESS`, `DATA_CENTER_SERVICE_METADATA`, `DATA_CENTER_SERVICE_NAME`, `DATA_CENTER_SERVICE_PORT`, `DATA_CENTER_SERVICE_TAGS`, `DOCKER_CONTAINER_NAME`, `DOCKER_FULL_IMAGE_NAME`, `DOCKER_IMAGE_VERSION`, `EC2_INSTANCE_AMI_ID`, `EC2_INSTANCE_AWS_INSTANCE_TYPE`, `EC2_INSTANCE_AWS_SECURITY_GROUP`, `EC2_INSTANCE_BEANSTALK_ENV_NAME`, `EC2_INSTANCE_ID`, `EC2_INSTANCE_NAME`, `EC2_INSTANCE_PRIVATE_HOST_NAME`, `EC2_INSTANCE_PUBLIC_HOST_NAME`, `EC2_INSTANCE_TAGS`, `ENTERPRISE_APPLICATION_DECODER_TYPE`, `ENTERPRISE_APPLICATION_IP_ADDRESS`, `ENTERPRISE_APPLICATION_METADATA`, `ENTERPRISE_APPLICATION_NAME`, `ENTERPRISE_APPLICATION_PORT`, `ENTERPRISE_APPLICATION_TAGS`, `ESXI_HOST_CLUSTER_NAME`, `ESXI_HOST_HARDWARE_MODEL`, `ESXI_HOST_HARDWARE_VENDOR`, `ESXI_HOST_NAME`, `ESXI_HOST_PRODUCT_NAME`, `ESXI_HOST_PRODUCT_VERSION`, `ESXI_HOST_TAGS`, `EXTERNAL_MONITOR_ENGINE_DESCRIPTION`, `EXTERNAL_MONITOR_ENGINE_NAME`, `EXTERNAL_MONITOR_ENGINE_TYPE`, `EXTERNAL_MONITOR_NAME`, `EXTERNAL_MONITOR_TAGS`, `GEOLOCATION_SITE_NAME`, `GOOGLE_CLOUD_PLATFORM_ZONE_NAME`, `GOOGLE_COMPUTE_INSTANCE_ID`, `GOOGLE_COMPUTE_INSTANCE_MACHINE_TYPE`, `GOOGLE_COMPUTE_INSTANCE_NAME`, `GOOGLE_COMPUTE_INSTANCE_PROJECT`, `GOOGLE_COMPUTE_INSTANCE_PROJECT_ID`, `GOOGLE_COMPUTE_INSTANCE_PUBLIC_IP_ADDRESSES`, `HOST_AIX_LOGICAL_CPU_COUNT`, `HOST_AIX_SIMULTANEOUS_THREADS`, `HOST_AIX_VIRTUAL_CPU_COUNT`, `HOST_ARCHITECTURE`, `HOST_AWS_NAME_TAG`, `HOST_AZURE_COMPUTE_MODE`, `HOST_AZURE_SKU`, `HOST_AZURE_WEB_APPLICATION_HOST_NAMES`, `HOST_AZURE_WEB_APPLICATION_SITE_NAMES`, `HOST_BITNESS`, `HOST_BOSH_AVAILABILITY_ZONE`, `HOST_BOSH_DEPLOYMENT_ID`, `HOST_BOSH_INSTANCE_ID`, `HOST_BOSH_INSTANCE_NAME`, `HOST_BOSH_NAME`, `HOST_BOSH_STEMCELL_VERSION`, `HOST_CLOUD_TYPE`, `HOST_CPU_CORES`, `HOST_CUSTOM_METADATA`, `HOST_DETECTED_NAME`, `HOST_GROUP_ID`, `HOST_GROUP_NAME`, `HOST_HYPERVISOR_TYPE`, `HOST_IP_ADDRESS`, `HOST_KUBERNETES_LABELS`, `HOST_LOGICAL_CPU_CORES`, `HOST_NAME`, `HOST_ONEAGENT_CUSTOM_HOST_NAME`, `HOST_OS_TYPE`, `HOST_OS_VERSION`, `HOST_PAAS_MEMORY_LIMIT`, `HOST_PAAS_TYPE`, `HOST_TAGS`, `HOST_TECHNOLOGY`, `HTTP_MONITOR_NAME`, `HTTP_MONITOR_TAGS`, `KUBERNETES_CLUSTER_NAME`, `KUBERNETES_NODE_NAME`, `KUBERNETES_SERVICE_NAME`, `MOBILE_APPLICATION_NAME`, `MOBILE_APPLICATION_PLATFORM`, `MOBILE_APPLICATION_TAGS`, `NAME_OF_COMPUTE_NODE`, `OPENSTACK_ACCOUNT_NAME`, `OPENSTACK_ACCOUNT_PROJECT_NAME`, `OPENSTACK_AVAILABILITY_ZONE_NAME`, `OPENSTACK_PROJECT_NAME`, `OPENSTACK_REGION_NAME`, `OPENSTACK_VM_INSTANCE_TYPE`, `OPENSTACK_VM_NAME`, `OPENSTACK_VM_SECURITY_GROUP`, `PROCESS_GROUP_AZURE_HOST_NAME`, `PROCESS_GROUP_AZURE_SITE_NAME`, `PROCESS_GROUP_CUSTOM_METADATA`, `PROCESS_GROUP_DETECTED_NAME`, `PROCESS_GROUP_ID`, `PROCESS_GROUP_LISTEN_PORT`, `PROCESS_GROUP_NAME`, `PROCESS_GROUP_PREDEFINED_METADATA`, `PROCESS_GROUP_TAGS`, `PROCESS_GROUP_TECHNOLOGY`, `PROCESS_GROUP_TECHNOLOGY_EDITION`, `PROCESS_GROUP_TECHNOLOGY_VERSION`, `QUEUE_NAME`, `QUEUE_TECHNOLOGY`, `QUEUE_VENDOR`, `SERVICE_AKKA_ACTOR_SYSTEM`, `SERVICE_CTG_SERVICE_NAME`, `SERVICE_DATABASE_HOST_NAME`, `SERVICE_DATABASE_NAME`, `SERVICE_DATABASE_TOPOLOGY`, `SERVICE_DATABASE_VENDOR`, `SERVICE_DETECTED_NAME`, `SERVICE_ESB_APPLICATION_NAME`, `SERVICE_IBM_CTG_GATEWAY_URL`, `SERVICE_MESSAGING_LISTENER_CLASS_NAME`, `SERVICE_NAME`, `SERVICE_PORT`, `SERVICE_PUBLIC_DOMAIN_NAME`, `SERVICE_REMOTE_ENDPOINT`, `SERVICE_REMOTE_SERVICE_NAME`, `SERVICE_TAGS`, `SERVICE_TECHNOLOGY`, `SERVICE_TECHNOLOGY_EDITION`, `SERVICE_TECHNOLOGY_VERSION`, `SERVICE_TOPOLOGY`, `SERVICE_TYPE`, `SERVICE_WEB_APPLICATION_ID`, `SERVICE_WEB_CONTEXT_ROOT`, `SERVICE_WEB_SERVER_ENDPOINT`, `SERVICE_WEB_SERVER_NAME`, `SERVICE_WEB_SERVICE_NAME`, `SERVICE_WEB_SERVICE_NAMESPACE`, `VMWARE_DATACENTER_NAME`, `VMWARE_VM_NAME`, `WEB_APPLICATION_NAME`, `WEB_APPLICATION_NAME_PATTERN`, `WEB_APPLICATION_TAGS`, `WEB_APPLICATION_TYPE`
     */
    key: string;
    /**
     * Possible Values: `BEGINS_WITH`, `CONTAINS`, `ENDS_WITH`, `EQUALS`, `EXISTS`, `GREATER_THAN`, `GREATER_THAN_OR_EQUAL`, `IS_IP_IN_RANGE`, `LOWER_THAN`, `LOWER_THAN_OR_EQUAL`, `NOT_BEGINS_WITH`, `NOT_CONTAINS`, `NOT_ENDS_WITH`, `NOT_EQUALS`, `NOT_EXISTS`, `NOT_GREATER_THAN`, `NOT_GREATER_THAN_OR_EQUAL`, `NOT_IS_IP_IN_RANGE`, `NOT_LOWER_THAN`, `NOT_LOWER_THAN_OR_EQUAL`, `NOT_REGEX_MATCHES`, `NOT_TAG_KEY_EQUALS`, `REGEX_MATCHES`, `TAG_KEY_EQUALS`
     */
    operator: string;
    /**
     * Value
     */
    stringValue?: string;
    /**
     * Format: `[CONTEXT]tagKey:tagValue`
     */
    tag?: string;
}
export interface ManagementZoneV2RulesRuleDimensionRule {
    /**
     * Possible Values: `ANY`, `LOG`, `METRIC`
     */
    appliesTo: string;
    /**
     * Conditions
     */
    dimensionConditions?: outputs.ManagementZoneV2RulesRuleDimensionRuleDimensionConditions;
}
export interface ManagementZoneV2RulesRuleDimensionRuleDimensionConditions {
    /**
     * Dimension conditions
     */
    conditions: outputs.ManagementZoneV2RulesRuleDimensionRuleDimensionConditionsCondition[];
}
export interface ManagementZoneV2RulesRuleDimensionRuleDimensionConditionsCondition {
    /**
     * Possible Values: `DIMENSION`, `LOG_FILE_NAME`, `METRIC_KEY`
     */
    conditionType: string;
    /**
     * no documentation available
     */
    key?: string;
    /**
     * Possible Values: `BEGINS_WITH`, `EQUALS`
     */
    ruleMatcher: string;
    /**
     * no documentation available
     */
    value: string;
}
export interface MetricEventsEventTemplate {
    /**
     * Davis® AI will try to merge this event into existing problems, otherwise a new problem will always be created.
     */
    davisMerge?: boolean;
    /**
     * The description of the event to trigger.
     */
    description: string;
    /**
     * Possible Values: `AVAILABILITY`, `CUSTOM_ALERT`, `CUSTOM_ANNOTATION`, `CUSTOM_CONFIGURATION`, `CUSTOM_DEPLOYMENT`, `ERROR`, `INFO`, `MARKED_FOR_TERMINATION`, `RESOURCE`, `SLOWDOWN`
     */
    eventType: string;
    /**
     * Set of additional key-value properties to be attached to the triggered event.
     */
    metadatas?: outputs.MetricEventsEventTemplateMetadata[];
    /**
     * The title of the event to trigger.
     */
    title: string;
}
export interface MetricEventsEventTemplateMetadata {
    /**
     * Type 'dt.' for key hints.
     */
    metadataKey: string;
    /**
     * no documentation available
     */
    metadataValue: string;
}
export interface MetricEventsModelProperties {
    /**
     * Possible Values: `ABOVE`, `BELOW`, `OUTSIDE`
     */
    alertCondition: string;
    /**
     * The ability to set an alert on missing data in a metric. When enabled, missing data samples will contribute as violating samples defined in advanced model properties. We recommend to not alert on missing data for sparse timeseries as this leads to alert spam.
     */
    alertOnNoData: boolean;
    /**
     * The number of one-minute samples within the evaluation window that must go back to normal to close the event.
     */
    dealertingSamples: number;
    /**
     * The number of one-minute samples that form the sliding evaluation window.
     */
    samples: number;
    /**
     * Controls how many times the signal fluctuation is added to the baseline to produce the actual threshold for alerting
     */
    signalFluctuation?: number;
    /**
     * Raise an event if this value is violated
     */
    threshold?: number;
    /**
     * Controls the width of the confidence band and larger values lead to a less sensitive model
     */
    tolerance?: number;
    /**
     * Possible Values: `AUTO_ADAPTIVE_THRESHOLD`, `SEASONAL_BASELINE`, `STATIC_THRESHOLD`
     */
    type: string;
    /**
     * The number of one-minute samples within the evaluation window that must violate to trigger an event.
     */
    violatingSamples: number;
}
export interface MetricEventsQueryDefinition {
    /**
     * Possible Values: `AVG`, `COUNT`, `MAX`, `MEDIAN`, `MIN`, `PERCENTILE90`, `SUM`, `VALUE`
     */
    aggregation?: string;
    /**
     * Dimension filter
     */
    dimensionFilter?: outputs.MetricEventsQueryDefinitionDimensionFilter;
    /**
     * Use rule-based filters to define the scope this event monitors.
     */
    entityFilter?: outputs.MetricEventsQueryDefinitionEntityFilter;
    /**
     * The `legacyId` of a Management Zone (as provided by the resource `dynatrace.ManagementZoneV2` or the data source `dynatrace.ManagementZone`)
     */
    managementZone?: string;
    /**
     * Metric key
     */
    metricKey?: string;
    /**
     * To learn more, visit [Metric Selector](https://dt-url.net/metselad)
     */
    metricSelector?: string;
    /**
     * Minute offset of sliding evaluation window for metrics with latency
     */
    queryOffset?: number;
    /**
     * Possible Values: `METRIC_KEY`, `METRIC_SELECTOR`
     */
    type: string;
}
export interface MetricEventsQueryDefinitionDimensionFilter {
    filters: outputs.MetricEventsQueryDefinitionDimensionFilterFilter[];
}
export interface MetricEventsQueryDefinitionDimensionFilterFilter {
    /**
     * Dimension key
     */
    dimensionKey: string;
    /**
     * Dimension value
     */
    dimensionValue: string;
    /**
     * Possible Values: `CONTAINS_CASE_SENSITIVE`, `DOES_NOT_CONTAIN_CASE_SENSITIVE`, `DOES_NOT_EQUAL`, `DOES_NOT_START_WITH`, `EQUALS`, `STARTS_WITH`
     */
    operator?: string;
}
export interface MetricEventsQueryDefinitionEntityFilter {
    /**
     * no documentation available
     */
    conditions?: outputs.MetricEventsQueryDefinitionEntityFilterConditions;
    /**
     * Dimension key of entity type to filter
     */
    dimensionKey?: string;
}
export interface MetricEventsQueryDefinitionEntityFilterConditions {
    conditions: outputs.MetricEventsQueryDefinitionEntityFilterConditionsCondition[];
}
export interface MetricEventsQueryDefinitionEntityFilterConditionsCondition {
    /**
     * Possible Values: `CONTAINS_CASE_INSENSITIVE`, `CONTAINS_CASE_SENSITIVE`, `DOES_NOT_CONTAIN_CASE_INSENSITIVE`, `DOES_NOT_CONTAIN_CASE_SENSITIVE`, `DOES_NOT_EQUAL`, `DOES_NOT_START_WITH`, `EQUALS`, `STARTS_WITH`
     */
    operator: string;
    /**
     * Possible Values: `CUSTOM_DEVICE_GROUP_NAME`, `ENTITY_ID`, `HOST_GROUP_NAME`, `HOST_NAME`, `MANAGEMENT_ZONE`, `NAME`, `PROCESS_GROUP_ID`, `PROCESS_GROUP_NAME`, `TAG`
     */
    type: string;
    /**
     * no documentation available
     */
    value: string;
}
export interface MetricMetadataDimensions {
    dimensions: outputs.MetricMetadataDimensionsDimension[];
}
export interface MetricMetadataDimensionsDimension {
    /**
     * Display name
     */
    displayName?: string;
    /**
     * Dimension key
     */
    key: string;
}
export interface MetricMetadataMetricProperties {
    /**
     * Whether (true or false) the metric is relevant to a problem's impact.
     */
    impactRelevant?: boolean;
    /**
     * The latency of the metric, in minutes.
     *
     *  The latency is the expected reporting delay (for example, caused by constraints of cloud vendors or other third-party data sources) between the observation of a metric data point and its availability in Dynatrace.
     *
     * The allowed value range is from 1 to 60 minutes.
     */
    latency?: number;
    /**
     * The maximum allowed value of the metric.
     */
    maxValue?: number;
    /**
     * The minimum allowed value of the metric.
     */
    minValue?: number;
    /**
     * Whether (true or false) the metric is related to a root cause of a problem.
     *
     * A root-cause relevant metric represents a strong indicator for a faulty component.
     */
    rootCauseRelevant?: boolean;
    /**
     * Possible Values: `Error`, `Score`, `Unknown`
     */
    valueType: string;
}
export interface MobileAppAnomaliesErrorRateIncrease {
    /**
     * Possible Values: `Auto`, `Fixed`
     */
    detectionMode?: string;
    /**
     * This setting is enabled (`true`) or disabled (`false`)
     */
    enabled: boolean;
    /**
     * Alert if the percentage of user actions affected by reported errors exceeds **both** the absolute threshold and the relative threshold
     */
    errorRateIncreaseAuto?: outputs.MobileAppAnomaliesErrorRateIncreaseErrorRateIncreaseAuto;
    /**
     * Alert if the custom reported error rate threshold is exceeded during any 5-minute period
     */
    errorRateIncreaseFixed?: outputs.MobileAppAnomaliesErrorRateIncreaseErrorRateIncreaseFixed;
}
export interface MobileAppAnomaliesErrorRateIncreaseErrorRateIncreaseAuto {
    /**
     * Absolute threshold
     */
    thresholdAbsolute: number;
    /**
     * Relative threshold
     */
    thresholdRelative: number;
}
export interface MobileAppAnomaliesErrorRateIncreaseErrorRateIncreaseFixed {
    /**
     * Possible Values: `Low`, `Medium`, `High`
     */
    sensitivity: string;
    /**
     * Absolute threshold
     */
    thresholdAbsolute: number;
}
export interface MobileAppAnomaliesSlowUserActions {
    /**
     * Possible Values: `Auto`, `Fixed`
     */
    detectionMode?: string;
    /**
     * This setting is enabled (`true`) or disabled (`false`)
     */
    enabled: boolean;
    /**
     * no documentation available
     */
    slowUserActionsAuto?: outputs.MobileAppAnomaliesSlowUserActionsSlowUserActionsAuto;
    /**
     * no documentation available
     */
    slowUserActionsFixed?: outputs.MobileAppAnomaliesSlowUserActionsSlowUserActionsFixed;
}
export interface MobileAppAnomaliesSlowUserActionsSlowUserActionsAuto {
    /**
     * To avoid over-alerting do not alert for low traffic applications with less than
     */
    durationAvoidOveralerting: outputs.MobileAppAnomaliesSlowUserActionsSlowUserActionsAutoDurationAvoidOveralerting;
    /**
     * Alert if the action duration of all user actions degrades beyond **both** the absolute and relative threshold:
     */
    durationThresholdAll: outputs.MobileAppAnomaliesSlowUserActionsSlowUserActionsAutoDurationThresholdAll;
    /**
     * Alert if the action duration of the slowest 10% of user actions degrades beyond **both** the absolute and relative threshold:
     */
    durationThresholdSlowest: outputs.MobileAppAnomaliesSlowUserActionsSlowUserActionsAutoDurationThresholdSlowest;
}
export interface MobileAppAnomaliesSlowUserActionsSlowUserActionsAutoDurationAvoidOveralerting {
    /**
     * no documentation available
     */
    minActionRate: number;
}
export interface MobileAppAnomaliesSlowUserActionsSlowUserActionsAutoDurationThresholdAll {
    /**
     * Absolute threshold
     */
    durationThreshold: number;
    /**
     * Relative threshold
     */
    slowdownPercentage: number;
}
export interface MobileAppAnomaliesSlowUserActionsSlowUserActionsAutoDurationThresholdSlowest {
    /**
     * Absolute threshold
     */
    durationThreshold: number;
    /**
     * Relative threshold
     */
    slowdownPercentage: number;
}
export interface MobileAppAnomaliesSlowUserActionsSlowUserActionsFixed {
    /**
     * To avoid over-alerting do not alert for low traffic applications with less than
     */
    durationAvoidOveralerting: outputs.MobileAppAnomaliesSlowUserActionsSlowUserActionsFixedDurationAvoidOveralerting;
    /**
     * Alert if the action duration of all user actions degrades beyond the absolute threshold:
     */
    durationThresholdAllFixed: outputs.MobileAppAnomaliesSlowUserActionsSlowUserActionsFixedDurationThresholdAllFixed;
    /**
     * Alert if the action duration of the slowest 10% of user actions degrades beyond the absolute threshold:
     */
    durationThresholdSlowest: outputs.MobileAppAnomaliesSlowUserActionsSlowUserActionsFixedDurationThresholdSlowest;
    /**
     * Possible Values: `Low`, `Medium`, `High`
     */
    sensitivity: string;
}
export interface MobileAppAnomaliesSlowUserActionsSlowUserActionsFixedDurationAvoidOveralerting {
    /**
     * no documentation available
     */
    minActionRate: number;
}
export interface MobileAppAnomaliesSlowUserActionsSlowUserActionsFixedDurationThresholdAllFixed {
    /**
     * Absolute threshold
     */
    durationThreshold: number;
}
export interface MobileAppAnomaliesSlowUserActionsSlowUserActionsFixedDurationThresholdSlowest {
    /**
     * Absolute threshold
     */
    durationThreshold: number;
}
export interface MobileAppAnomaliesUnexpectedHighLoad {
    /**
     * This setting is enabled (`true`) or disabled (`false`)
     */
    enabled: boolean;
    /**
     * Dynatrace learns your typical application traffic over an observation period of one week. Depending on this expected value Dynatrace detects abnormal traffic spikes within your application.
     */
    thresholdPercentage?: number;
}
export interface MobileAppAnomaliesUnexpectedLowLoad {
    /**
     * This setting is enabled (`true`) or disabled (`false`)
     */
    enabled: boolean;
    /**
     * Dynatrace learns your typical application traffic over an observation period of one week. Depending on this expected value Dynatrace detects abnormal traffic drops within your application.
     */
    thresholdPercentage?: number;
}
export interface MobileAppCrashRateCrashRateIncrease {
    /**
     * Alert crash rate increases when auto-detected baseline is exceeded by a certain number of users
     */
    crashRateIncreaseAuto?: outputs.MobileAppCrashRateCrashRateIncreaseCrashRateIncreaseAuto;
    /**
     * Alert crash rate increases when the defined threshold is exceeded by a certain number of users
     */
    crashRateIncreaseFixed?: outputs.MobileAppCrashRateCrashRateIncreaseCrashRateIncreaseFixed;
    /**
     * Possible Values: `Auto`, `Fixed`
     */
    detectionMode?: string;
    /**
     * This setting is enabled (`true`) or disabled (`false`)
     */
    enabled: boolean;
}
export interface MobileAppCrashRateCrashRateIncreaseCrashRateIncreaseAuto {
    /**
     * Dynatrace learns the typical crash rate for all app versions and will create an alert if the baseline is violated by more than a specified threshold. Analysis happens based on a sliding window of 10 minutes.
     */
    baselineViolationPercentage: number;
    /**
     * Amount of users
     */
    concurrentUsers: number;
    /**
     * Possible Values: `Low`, `Medium`, `High`
     */
    sensitivity: string;
}
export interface MobileAppCrashRateCrashRateIncreaseCrashRateIncreaseFixed {
    /**
     * Absolute threshold
     */
    absoluteCrashRate: number;
    /**
     * Amount of users
     */
    concurrentUsers: number;
}
export interface MobileAppEnablementRum {
    /**
     * Percentage of user sessions captured and analyzed. By default, Dynatrace captures all user actions and user sessions for analysis. This approach ensures complete insight into your application’s performance and customer experience. You can optionally reduce the granularity of user-action and user-session analysis by capturing a lower percentage of user sessions. While this approach can reduce monitoring costs, it also results in lower visibility into how your customers are using your applications. For example, a setting of 10% results in Dynatrace analyzing only every tenth user session.
     */
    costAndTrafficControl: number;
    /**
     * This setting is enabled (`true`) or disabled (`false`)
     */
    enabled: boolean;
    /**
     * Please be aware that only mobile agents with version **8.303 or higher** can ingest Grail events
     */
    enabledOnGrail?: boolean;
}
export interface MobileAppEnablementSessionReplay {
    /**
     * Before enabling, Dynatrace checks your system against the [prerequisites for Session Replay](https://dt-url.net/t23s0ppi).
     */
    onCrash: boolean;
}
export interface MobileAppKeyPerformanceThresholds {
    /**
     * If the action duration is above this value, the Apdex is considered to be **Frustrating**.
     */
    frustratingThresholdSeconds: number;
    /**
     * If the action duration is below this value, the Apdex is considered to be **Satisfactory**.
     */
    tolerableThresholdSeconds: number;
}
export interface MobileAppRequestErrorsErrorRules {
    errorRules: outputs.MobileAppRequestErrorsErrorRulesErrorRule[];
}
export interface MobileAppRequestErrorsErrorRulesErrorRule {
    /**
     * Exclude response codes
     */
    errorCodes: string;
}
export interface MobileApplicationApdex {
    /**
     * Apdex **frustrated** threshold, in milliseconds: a duration greater than or equal to this value is considered frustrated
     */
    frustrated: number;
    /**
     * Apdex error condition: if `true` the user session is considered frustrated when an error is reported
     */
    frustratedOnError?: boolean;
    /**
     * Apdex **tolerable** threshold, in milliseconds: a duration greater than or equal to this value is considered tolerable
     */
    tolerable: number;
}
export interface MobileApplicationProperties {
    /**
     * A User Action / Session Property based on a value reported by the API
     */
    apiValues?: outputs.MobileApplicationPropertiesApiValue[];
    /**
     * A User Action / Session Property based on a Server Side Request Attribute
     */
    requestAttributes?: outputs.MobileApplicationPropertiesRequestAttribute[];
}
export interface MobileApplicationPropertiesApiValue {
    /**
     * The aggregation type of the property. It defines how multiple values of the property are aggregated. Possible values are `SUM`, `MIN`, `MAX`, `FIRST` and `LAST`
     */
    aggregation?: string;
    /**
     * The cleanup rule of the property. Defines how to extract the data you need from a string value. Specify the [regular expression](https://dt-url.net/k9e0iaq) for the data you need there
     */
    cleanupRule?: string;
    /**
     * The display name of the property
     */
    displayName?: string;
    /**
     * The unique key of the mobile session or user action property
     */
    key: string;
    /**
     * The name of the reported value
     */
    name?: string;
    /**
     * If `true`, the property is stored as a session property
     */
    storeAsSessionProperty?: boolean;
    /**
     * If `true`, the property is stored as a user action property
     */
    storeAsUserActionProperty?: boolean;
    /**
     * The data type of the property. Possible values are `DOUBLE`, `LONG` and `STRING`
     */
    type: string;
}
export interface MobileApplicationPropertiesRequestAttribute {
    /**
     * The aggregation type of the property. It defines how multiple values of the property are aggregated. Possible values are `SUM`, `MIN`, `MAX`, `FIRST` and `LAST`
     */
    aggregation?: string;
    /**
     * The cleanup rule of the property. Defines how to extract the data you need from a string value. Specify the [regular expression](https://dt-url.net/k9e0iaq) for the data you need there
     */
    cleanupRule?: string;
    /**
     * The display name of the property
     */
    displayName?: string;
    /**
     * The ID of the request attribute
     */
    id: string;
    /**
     * The unique key of the mobile session or user action property
     */
    key: string;
    /**
     * If `true`, the property is stored as a session property
     */
    storeAsSessionProperty?: boolean;
    /**
     * If `true`, the property is stored as a user action property
     */
    storeAsUserActionProperty?: boolean;
    /**
     * The data type of the property. Possible values are `DOUBLE`, `LONG` and `STRING`. The value MUST match the data type of the Request Attribute.
     */
    type: string;
}
export interface NetworkMonitorOutageHandling {
    /**
     * Number of consecutive failures for all locations
     */
    globalConsecutiveOutageCountThreshold?: number;
    /**
     * Generate a problem and send an alert when the monitor is unavailable at all configured locations
     */
    globalOutages?: boolean;
    /**
     * Number of consecutive failures
     */
    localConsecutiveOutageCountThreshold?: number;
    /**
     * Number of failing locations
     */
    localLocationOutageCountThreshold?: number;
    /**
     * Generate a problem and send an alert when the monitor is unavailable for one or more consecutive runs at any location
     */
    localOutages?: boolean;
}
export interface NetworkMonitorPerformanceThresholds {
    /**
     * Performance threshold is enabled (true) or disabled (false)
     */
    enabled?: boolean;
    /**
     * The list of performance threshold rules
     */
    thresholds?: outputs.NetworkMonitorPerformanceThresholdsThresholds;
}
export interface NetworkMonitorPerformanceThresholdsThresholds {
    /**
     * The list of performance threshold rules
     */
    thresholds?: outputs.NetworkMonitorPerformanceThresholdsThresholdsThreshold[];
}
export interface NetworkMonitorPerformanceThresholdsThresholdsThreshold {
    /**
     * Aggregation type, possible values: `AVG`, `MAX`, `MIN`
     */
    aggregation?: string;
    /**
     * Number of most recent non-violating request executions that closes the problem
     */
    dealertingSamples?: number;
    /**
     * Number of request executions in analyzed sliding window (sliding window size)
     */
    samples?: number;
    /**
     * Specify the step's index to which a threshold applies
     */
    stepIndex?: number;
    /**
     * Notify if monitor request takes longer than X milliseconds to execute
     */
    threshold?: number;
    /**
     * Number of violating request executions in analyzed sliding window
     */
    violatingSamples?: number;
}
export interface NetworkMonitorStep {
    /**
     * The step of a network availability monitor
     */
    steps: outputs.NetworkMonitorStepStep[];
}
export interface NetworkMonitorStepStep {
    /**
     * The list of constraints which apply to all requests in the step
     */
    constraints: outputs.NetworkMonitorStepStepConstraint[];
    /**
     * Step name
     */
    name: string;
    /**
     * Key/value pairs of properties which apply to all requests in the step
     */
    properties: {
        [key: string]: string;
    };
    /**
     * Request configurations
     */
    requestConfigurations?: outputs.NetworkMonitorStepStepRequestConfiguration[];
    /**
     * Request type, possible values `ICMP`, `TCP`, `DNS`
     */
    requestType: string;
    /**
     * Target filter
     */
    targetFilter?: string;
    /**
     * Target list
     */
    targetLists: string[];
}
export interface NetworkMonitorStepStepConstraint {
    /**
     * The network availability monitor constraint
     */
    constraints: outputs.NetworkMonitorStepStepConstraintConstraint[];
}
export interface NetworkMonitorStepStepConstraintConstraint {
    /**
     * Key/value pairs of constraint properties
     */
    properties: {
        [key: string]: string;
    };
    /**
     * Constraint type
     */
    type: string;
}
export interface NetworkMonitorStepStepRequestConfiguration {
    /**
     * The configuration of a network availability monitor request
     */
    requestConfigurations: outputs.NetworkMonitorStepStepRequestConfigurationRequestConfiguration[];
}
export interface NetworkMonitorStepStepRequestConfigurationRequestConfiguration {
    /**
     * Request constraints
     */
    constraints?: outputs.NetworkMonitorStepStepRequestConfigurationRequestConfigurationConstraint[];
}
export interface NetworkMonitorStepStepRequestConfigurationRequestConfigurationConstraint {
    /**
     * The network availability monitor constraint
     */
    constraints: outputs.NetworkMonitorStepStepRequestConfigurationRequestConfigurationConstraintConstraint[];
}
export interface NetworkMonitorStepStepRequestConfigurationRequestConfigurationConstraintConstraint {
    /**
     * Key/value pairs of constraint properties
     */
    properties: {
        [key: string]: string;
    };
    /**
     * Constraint type
     */
    type: string;
}
export interface NetworkMonitorTag {
    /**
     * Tag with source of a Dynatrace entity.
     */
    tags?: outputs.NetworkMonitorTagTag[];
}
export interface NetworkMonitorTagTag {
    /**
     * The origin of the tag, such as AWS or Cloud Foundry.
     */
    context?: string;
    /**
     * The key of the tag
     */
    key: string;
    /**
     * The source of the tag, possible values: `AUTO`, `RULE_BASED` or `USER`
     */
    source?: string;
    /**
     * The value of the tag
     */
    value?: string;
}
export interface NetworkTrafficExcludeIp {
    ipAddressForms: outputs.NetworkTrafficExcludeIpIpAddressForm[];
}
export interface NetworkTrafficExcludeIpIpAddressForm {
    /**
     * IP address
     */
    ipAddress: string;
}
export interface NetworkTrafficExcludeNic {
    nicForms: outputs.NetworkTrafficExcludeNicNicForm[];
}
export interface NetworkTrafficExcludeNicNicForm {
    /**
     * Network interface
     */
    interface: string;
    /**
     * Possible Values: `OS_TYPE_AIX`, `OS_TYPE_DARWIN`, `OS_TYPE_HPUX`, `OS_TYPE_LINUX`, `OS_TYPE_SOLARIS`, `OS_TYPE_UNKNOWN`, `OS_TYPE_WINDOWS`, `OS_TYPE_ZOS`
     */
    os: string;
}
export interface NotificationAnsibleTower {
    /**
     * Accept any, including self-signed and invalid, SSL certificate (`true`) or only trusted (`false`) certificates
     */
    acceptAnyCertificate: boolean;
    /**
     * The configuration is enabled (`true`) or disabled (`false`)
     */
    active: boolean;
    /**
     * The ID of the associated alerting profile
     */
    alertingProfile: string;
    /**
     * The custom message of the notification.   This message will be displayed in the extra variables **Message** field of your job template.  You can use the following placeholders:  * `{ImpactedEntities}`: Details about the entities impacted by the problem in form of a JSON array.  * `{ImpactedEntity}`: The entity impacted by the problem or *X* impacted entities.  * `{PID}`: The ID of the reported problem.  * `{ProblemDetailsText}`: All problem event details, including root cause, as a text-formatted string.  * `{ProblemID}`: The display number of the reported problem.  * `{ProblemImpact}`: The [impact level](https://www.dynatrace.com/support/help/shortlink/impact-analysis) of the problem. Possible values are `APPLICATION`, `SERVICE`, and `INFRASTRUCTURE`.  * `{ProblemSeverity}`: The [severity level](https://www.dynatrace.com/support/help/shortlink/event-types) of the problem. Possible values are `AVAILABILITY`, `ERROR`, `PERFORMANCE`, `RESOURCE_CONTENTION`, and `CUSTOM_ALERT`.  * `{ProblemTitle}`: A short description of the problem.  * `{ProblemURL}`: The URL of the problem within Dynatrace.  * `{State}`: The state of the problem. Possible values are `OPEN` and `RESOLVED`.  * `{Tags}`: The list of tags that are defined for all impacted entities, separated by commas
     */
    customMessage: string;
    /**
     * The ID of the target Ansible Tower job template
     */
    jobTemplateId: number;
    /**
     * The URL of the target Ansible Tower job template
     */
    jobTemplateUrl: string;
    /**
     * The name of the notification configuration
     */
    name: string;
    /**
     * The password for the Ansible Tower account
     */
    password?: string;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
    /**
     * The username of the Ansible Tower account
     */
    username: string;
}
export interface NotificationConfig {
    /**
     * The configuration is enabled (`true`) or disabled (`false`)
     */
    active: boolean;
    /**
     * The ID of the associated alerting profile
     */
    alertingProfile: string;
    /**
     * The name of the notification configuration
     */
    name: string;
    /**
     * Defines the actual set of fields depending on the value. See one of the following objects:  * `EMAIL` > EmailNotificationConfig  * `PAGER_DUTY` > PagerDutyNotificationConfig  * `WEBHOOK` > WebHookNotificationConfig  * `SLACK` > SlackNotificationConfig  * `HIPCHAT` > HipChatNotificationConfig  * `VICTOROPS` > VictorOpsNotificationConfig  * `SERVICE_NOW` > ServiceNowNotificationConfig  * `XMATTERS` > XMattersNotificationConfig  * `ANSIBLETOWER` > AnsibleTowerNotificationConfig  * `OPS_GENIE` > OpsGenieNotificationConfig  * `JIRA` > JiraNotificationConfig  * `TRELLO` > TrelloNotificationConfig
     */
    type: string;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
}
export interface NotificationEmail {
    /**
     * The configuration is enabled (`true`) or disabled (`false`)
     */
    active: boolean;
    /**
     * The ID of the associated alerting profile
     */
    alertingProfile: string;
    /**
     * The list of the email BCC-recipients
     */
    bccReceivers?: string[];
    /**
     * The template of the email notification.  You can use the following placeholders:  * `{ImpactedEntities}`: Details about the entities impacted by the problem in form of a JSON array.  * `{ImpactedEntity}`: The entity impacted by the problem or *X* impacted entities.  * `{PID}`: The ID of the reported problem.  * `{ProblemDetailsHTML}`: All problem event details, including root cause, as an HTML-formatted string.  * `{ProblemDetailsJSON}`: All problem event details, including root cause, as a JSON object.  * `{ProblemDetailsMarkdown}`: All problem event details, including root cause, as a [Markdown-formatted](https://www.markdownguide.org/cheat-sheet/) string.  * `{ProblemDetailsText}`: All problem event details, including root cause, as a text-formatted string.  * `{ProblemID}`: The display number of the reported problem.  * `{ProblemImpact}`: The [impact level](https://www.dynatrace.com/support/help/shortlink/impact-analysis) of the problem. Possible values are `APPLICATION`, `SERVICE`, and `INFRASTRUCTURE`.  * `{ProblemSeverity}`: The [severity level](https://www.dynatrace.com/support/help/shortlink/event-types) of the problem. Possible values are `AVAILABILITY`, `ERROR`, `PERFORMANCE`, `RESOURCE_CONTENTION`, and `CUSTOM_ALERT`.  * `{ProblemTitle}`: A short description of the problem.  * `{ProblemURL}`: The URL of the problem within Dynatrace.  * `{State}`: The state of the problem. Possible values are `OPEN` and `RESOLVED`.  * `{Tags}`: The list of tags that are defined for all impacted entities, separated by commas
     */
    body: string;
    /**
     * The list of the email CC-recipients
     */
    ccReceivers?: string[];
    /**
     * The name of the notification configuration
     */
    name: string;
    /**
     * The list of the email recipients
     */
    receivers?: string[];
    /**
     * The subject of the email notifications
     */
    subject: string;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
}
export interface NotificationJira {
    /**
     * The configuration is enabled (`true`) or disabled (`false`)
     */
    active: boolean;
    /**
     * The ID of the associated alerting profile
     */
    alertingProfile: string;
    /**
     * The description of the Jira issue to be created by this notification.   You can use same placeholders as in issue summary
     */
    description: string;
    /**
     * The type of the Jira issue to be created by this notification
     */
    issueType: string;
    /**
     * The name of the notification configuration
     */
    name: string;
    /**
     * The password for the Jira profile
     */
    password?: string;
    /**
     * The project key of the Jira issue to be created by this notification
     */
    projectKey: string;
    /**
     * The summary of the Jira issue to be created by this notification.  You can use the following placeholders:  * `{ImpactedEntity}`: The entity impacted by the problem or *X* impacted entities.  * `{PID}`: The ID of the reported problem.  * `{ProblemDetailsText}`: All problem event details, including root cause, as a text-formatted string.  * `{ProblemID}`: The display number of the reported problem.  * `{ProblemImpact}`: The [impact level](https://www.dynatrace.com/support/help/shortlink/impact-analysis) of the problem. Possible values are `APPLICATION`, `SERVICE`, and `INFRASTRUCTURE`.  * `{ProblemSeverity}`: The [severity level](https://www.dynatrace.com/support/help/shortlink/event-types) of the problem. Possible values are `AVAILABILITY`, `ERROR`, `PERFORMANCE`, `RESOURCE_CONTENTION`, and `CUSTOM_ALERT`.  * `{ProblemTitle}`: A short description of the problem.  * `{ProblemURL}`: The URL of the problem within Dynatrace.  * `{State}`: The state of the problem. Possible values are `OPEN` and `RESOLVED`.  * `{Tags}`: The list of tags that are defined for all impacted entities, separated by commas
     */
    summary: string;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
    /**
     * The URL of the Jira API endpoint
     */
    url: string;
    /**
     * The username of the Jira profile
     */
    username: string;
}
export interface NotificationOpsGenie {
    /**
     * The configuration is enabled (`true`) or disabled (`false`)
     */
    active: boolean;
    /**
     * The ID of the associated alerting profile
     */
    alertingProfile: string;
    /**
     * The API key to access OpsGenie
     */
    apiKey?: string;
    /**
     * The region domain of the OpsGenie
     */
    domain: string;
    /**
     * The content of the message.  You can use the following placeholders:  * `{ProblemID}`: The display number of the reported problem.  * `{ProblemImpact}`: The [impact level](https://www.dynatrace.com/support/help/shortlink/impact-analysis) of the problem. Possible values are `APPLICATION`, `SERVICE`, and `INFRASTRUCTURE`.  * `{ProblemSeverity}`: The [severity level](https://www.dynatrace.com/support/help/shortlink/event-types) of the problem. Possible values are `AVAILABILITY`, `ERROR`, `PERFORMANCE`, `RESOURCE_CONTENTION`, and `CUSTOM_ALERT`.  * `{ProblemTitle}`: A short description of the problem
     */
    message: string;
    /**
     * The name of the notification configuration
     */
    name: string;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
}
export interface NotificationPagerDuty {
    /**
     * The name of the PagerDuty account
     */
    account: string;
    /**
     * The configuration is enabled (`true`) or disabled (`false`)
     */
    active: boolean;
    /**
     * The ID of the associated alerting profile
     */
    alertingProfile: string;
    /**
     * The name of the notification configuration
     */
    name: string;
    /**
     * The API key to access PagerDuty
     */
    serviceApiKey?: string;
    /**
     * The name of the service
     */
    serviceName: string;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
}
export interface NotificationServiceNow {
    /**
     * The configuration is enabled (`true`) or disabled (`false`)
     */
    active: boolean;
    /**
     * The ID of the associated alerting profile
     */
    alertingProfile: string;
    /**
     * The ServiceNow instance identifier. It refers to the first part of your own ServiceNow URL.   This field is mutually exclusive with the **url** field. You can only use one of them
     */
    instanceName?: string;
    /**
     * The content of the ServiceNow description.  You can use the following placeholders:  * `{ImpactedEntity}`: The entity impacted by the problem or *X* impacted entities.  * `{PID}`: The ID of the reported problem.  * `{ProblemDetailsHTML}`: All problem event details, including root cause, as an HTML-formatted string.  * `{ProblemID}`: The display number of the reported problem.  * `{ProblemImpact}`: The [impact level](https://www.dynatrace.com/support/help/shortlink/impact-analysis) of the problem. Possible values are `APPLICATION`, `SERVICE`, and `INFRASTRUCTURE`.  * `{ProblemSeverity}`: The [severity level](https://www.dynatrace.com/support/help/shortlink/event-types) of the problem. Possible values are `AVAILABILITY`, `ERROR`, `PERFORMANCE`, `RESOURCE_CONTENTION`, and `CUSTOM_ALERT`.  * `{ProblemTitle}`: A short description of the problem.  * `{ProblemURL}`: The URL of the problem within Dynatrace.  * `{State}`: The state of the problem. Possible values are `OPEN` and `RESOLVED`.  * `{Tags}`: The list of tags that are defined for all impacted entities, separated by commas
     */
    message: string;
    /**
     * The name of the notification configuration
     */
    name: string;
    /**
     * The username to the ServiceNow account
     */
    password?: string;
    /**
     * Send events into ServiceNow ITOM (`true`)
     */
    sendEvents: boolean;
    /**
     * Send incidents into ServiceNow ITSM (`true`)
     */
    sendIncidents: boolean;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
    /**
     * The URL of the on-premise ServiceNow installation.   This field is mutually exclusive with the **instanceName** field. You can only use one of them
     */
    url?: string;
    /**
     * The username of the ServiceNow account.   Make sure that your user account has the `restService`, `webRequestAdmin`, and `x_dynat_ruxit.Integration` roles
     */
    username: string;
}
export interface NotificationSlack {
    /**
     * The configuration is enabled (`true`) or disabled (`false`)
     */
    active: boolean;
    /**
     * The ID of the associated alerting profile
     */
    alertingProfile: string;
    /**
     * The channel (for example, `#general`) or the user (for example, `@john.smith`) to send the message to
     */
    channel: string;
    /**
     * The name of the notification configuration
     */
    name: string;
    /**
     * The content of the message.  You can use the following placeholders:  * `{ImpactedEntity}`: The entity impacted by the problem or *X* impacted entities.  * `{PID}`: The ID of the reported problem.  * `{ProblemDetailsText}`: All problem event details, including root cause, as a text-formatted string.  * `{ProblemID}`: The display number of the reported problem.  * `{ProblemImpact}`: The [impact level](https://www.dynatrace.com/support/help/shortlink/impact-analysis) of the problem. Possible values are `APPLICATION`, `SERVICE`, and `INFRASTRUCTURE`.  * `{ProblemSeverity}`: The [severity level](https://www.dynatrace.com/support/help/shortlink/event-types) of the problem. Possible values are `AVAILABILITY`, `ERROR`, `PERFORMANCE`, `RESOURCE_CONTENTION`, and `CUSTOM_ALERT`.  * `{ProblemTitle}`: A short description of the problem.  * `{ProblemURL}`: The URL of the problem within Dynatrace.  * `{State}`: The state of the problem. Possible values are `OPEN` and `RESOLVED`.  * `{Tags}`: The list of tags that are defined for all impacted entities, separated by commas
     */
    title: string;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
    /**
     * The URL of the Slack WebHook.  This is confidential information, therefore GET requests return this field with the `null` value, and it is optional for PUT requests
     */
    url?: string;
}
export interface NotificationTrello {
    /**
     * The configuration is enabled (`true`) or disabled (`false`)
     */
    active: boolean;
    /**
     * The ID of the associated alerting profile
     */
    alertingProfile: string;
    /**
     * The application key for the Trello account
     */
    applicationKey: string;
    /**
     * The application token for the Trello account
     */
    authorizationToken?: string;
    /**
     * The Trello board to which the card should be assigned
     */
    boardId: string;
    /**
     * The description of the Trello card.   You can use same placeholders as in card text
     */
    description: string;
    /**
     * The Trello list to which the card should be assigned
     */
    listId: string;
    /**
     * The name of the notification configuration
     */
    name: string;
    /**
     * The Trello list to which the card of the resolved problem should be assigned
     */
    resolvedListId: string;
    /**
     * The text of the generated Trello card.  You can use the following placeholders:  * `{ImpactedEntity}`: The entity impacted by the problem or *X* impacted entities.  * `{PID}`: The ID of the reported problem.  * `{ProblemDetailsMarkdown}`: All problem event details, including root cause, as a [Markdown-formatted](https://www.markdownguide.org/cheat-sheet/) string.  * `{ProblemID}`: The display number of the reported problem.  * `{ProblemImpact}`: The [impact level](https://www.dynatrace.com/support/help/shortlink/impact-analysis) of the problem. Possible values are `APPLICATION`, `SERVICE`, and `INFRASTRUCTURE`.  * `{ProblemSeverity}`: The [severity level](https://www.dynatrace.com/support/help/shortlink/event-types) of the problem. Possible values are `AVAILABILITY`, `ERROR`, `PERFORMANCE`, `RESOURCE_CONTENTION`, and `CUSTOM_ALERT`.  * `{ProblemTitle}`: A short description of the problem.  * `{ProblemURL}`: The URL of the problem within Dynatrace.  * `{State}`: The state of the problem. Possible values are `OPEN` and `RESOLVED`.  * `{Tags}`: The list of tags that are defined for all impacted entities, separated by commas
     */
    text: string;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
}
export interface NotificationVictorOps {
    /**
     * The configuration is enabled (`true`) or disabled (`false`)
     */
    active: boolean;
    /**
     * The ID of the associated alerting profile
     */
    alertingProfile: string;
    /**
     * The API key for the target VictorOps account
     */
    apiKey?: string;
    /**
     * The content of the message.  You can use the following placeholders:  * `{ImpactedEntity}`: The entity impacted by the problem or *X* impacted entities.  * `{ProblemDetailsText}`: All problem event details, including root cause, as a text-formatted string.  * `{ProblemID}`: The display number of the reported problem.  * `{ProblemImpact}`: The [impact level](https://www.dynatrace.com/support/help/shortlink/impact-analysis) of the problem. Possible values are `APPLICATION`, `SERVICE`, and `INFRASTRUCTURE`.  * `{ProblemSeverity}`: The [severity level](https://www.dynatrace.com/support/help/shortlink/event-types) of the problem. Possible values are `AVAILABILITY`, `ERROR`, `PERFORMANCE`, `RESOURCE_CONTENTION`, and `CUSTOM_ALERT`.  * `{ProblemTitle}`: A short description of the problem.  * `{ProblemURL}`: The URL of the problem within Dynatrace.  * `{State}`: The state of the problem. Possible values are `OPEN` and `RESOLVED`
     */
    message: string;
    /**
     * The name of the notification configuration
     */
    name: string;
    /**
     * The routing key, defining the group to be notified
     */
    routingKey: string;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
}
export interface NotificationWebHook {
    /**
     * Accept any, including self-signed and invalid, SSL certificate (`true`) or only trusted (`false`) certificates
     */
    acceptAnyCertificate: boolean;
    /**
     * The configuration is enabled (`true`) or disabled (`false`)
     */
    active: boolean;
    /**
     * The ID of the associated alerting profile
     */
    alertingProfile: string;
    /**
     * A list of the additional HTTP headers
     */
    headers?: outputs.NotificationWebHookHeader[];
    /**
     * The name of the notification configuration
     */
    name: string;
    /**
     * Call webhook if new events merge into existing problems
     */
    notifyEventMerges?: boolean;
    /**
     * The content of the notification message.  You can use the following placeholders:  * `{ImpactedEntities}`: Details about the entities impacted by the problem in form of a JSON array.  * `{ImpactedEntity}`: The entity impacted by the problem or *X* impacted entities.  * `{PID}`: The ID of the reported problem.  * `{ProblemDetailsHTML}`: All problem event details, including root cause, as an HTML-formatted string.  * `{ProblemDetailsJSON}`: All problem event details, including root cause, as a JSON object.  * `{ProblemDetailsMarkdown}`: All problem event details, including root cause, as a [Markdown-formatted](https://www.markdownguide.org/cheat-sheet/) string.  * `{ProblemDetailsText}`: All problem event details, including root cause, as a text-formatted string.  * `{ProblemID}`: The display number of the reported problem.  * `{ProblemImpact}`: The [impact level](https://www.dynatrace.com/support/help/shortlink/impact-analysis) of the problem. Possible values are `APPLICATION`, `SERVICE`, and `INFRASTRUCTURE`.  * `{ProblemSeverity}`: The [severity level](https://www.dynatrace.com/support/help/shortlink/event-types) of the problem. Possible values are `AVAILABILITY`, `ERROR`, `PERFORMANCE`, `RESOURCE_CONTENTION`, and `CUSTOM_ALERT`.  * `{ProblemTitle}`: A short description of the problem.  * `{ProblemURL}`: The URL of the problem within Dynatrace.  * `{State}`: The state of the problem. Possible values are `OPEN` and `RESOLVED`.  * `{Tags}`: The list of tags that are defined for all impacted entities, separated by commas
     */
    payload: string;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
    /**
     * The URL of the WebHook endpoint
     */
    url: string;
}
export interface NotificationWebHookHeader {
    /**
     * The name of the HTTP header
     */
    name: string;
    /**
     * The value of the HTTP header. May contain an empty value.   Required when creating a new notification.  For the **Authorization** header, GET requests return the `null` value.  If you want update a notification configuration with an **Authorization** header which you want to remain intact, set the **Authorization** header with the `null` value
     */
    value?: string;
}
export interface NotificationXmatters {
    /**
     * Accept any, including self-signed and invalid, SSL certificate (`true`) or only trusted (`false`) certificates
     */
    acceptAnyCertificate: boolean;
    /**
     * The configuration is enabled (`true`) or disabled (`false`)
     */
    active: boolean;
    /**
     * The ID of the associated alerting profile
     */
    alertingProfile: string;
    /**
     * A list of the additional HTTP headers
     */
    headers?: outputs.NotificationXmattersHeader[];
    /**
     * The name of the notification configuration
     */
    name: string;
    /**
     * The content of the notification message.  You can use the following placeholders:  * `{ImpactedEntities}`: Details about the entities impacted by the problem in form of a JSON array.  * `{ImpactedEntity}`: The entity impacted by the problem or *X* impacted entities.  * `{PID}`: The ID of the reported problem.  * `{ProblemDetailsHTML}`: All problem event details, including root cause, as an HTML-formatted string.  * `{ProblemDetailsJSON}`: All problem event details, including root cause, as a JSON object.  * `{ProblemDetailsMarkdown}`: All problem event details, including root cause, as a [Markdown-formatted](https://www.markdownguide.org/cheat-sheet/) string.  * `{ProblemDetailsText}`: All problem event details, including root cause, as a text-formatted string.  * `{ProblemID}`: The display number of the reported problem.  * `{ProblemImpact}`: The [impact level](https://www.dynatrace.com/support/help/shortlink/impact-analysis) of the problem. Possible values are `APPLICATION`, `SERVICE`, and `INFRASTRUCTURE`.  * `{ProblemSeverity}`: The [severity level](https://www.dynatrace.com/support/help/shortlink/event-types) of the problem. Possible values are `AVAILABILITY`, `ERROR`, `PERFORMANCE`, `RESOURCE_CONTENTION`, and `CUSTOM_ALERT`.  * `{ProblemTitle}`: A short description of the problem.  * `{ProblemURL}`: The URL of the problem within Dynatrace.  * `{State}`: The state of the problem. Possible values are `OPEN` and `RESOLVED`.  * `{Tags}`: The list of tags that are defined for all impacted entities, separated by commas
     */
    payload: string;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
    /**
     * The URL of the xMatters WebHook
     */
    url: string;
}
export interface NotificationXmattersHeader {
    /**
     * The name of the HTTP header
     */
    name: string;
    /**
     * The value of the HTTP header. May contain an empty value.   Required when creating a new notification.  For the **Authorization** header, GET requests return the `null` value.  If you want update a notification configuration with an **Authorization** header which you want to remain intact, set the **Authorization** header with the `null` value
     */
    value?: string;
}
export interface OneagentUpdatesMaintenanceWindows {
    maintenanceWindows: outputs.OneagentUpdatesMaintenanceWindowsMaintenanceWindow[];
}
export interface OneagentUpdatesMaintenanceWindowsMaintenanceWindow {
    /**
     * Select a [maintenance window for OneAgent updates](https://www.terraform.io/ui/settings/builtin:deployment.management.update-windows)
     */
    maintenanceWindow: string;
}
export interface OpenpipelineBusinessEventsEndpoints {
    /**
     * Definition of a single ingest source
     */
    endpoints?: outputs.OpenpipelineBusinessEventsEndpointsEndpoint[];
}
export interface OpenpipelineBusinessEventsEndpointsEndpoint {
    /**
     * The default bucket assigned to records for the ingest source
     */
    defaultBucket?: string;
    /**
     * Display name of the ingest source
     */
    displayName: string;
    /**
     * Indicates if the object is active
     */
    enabled: boolean;
    /**
     * The pre-processing done in the ingest source
     */
    processors?: outputs.OpenpipelineBusinessEventsEndpointsEndpointProcessors;
    /**
     * Routing strategy, either dynamic or static
     */
    routing: outputs.OpenpipelineBusinessEventsEndpointsEndpointRouting;
    /**
     * The segment of the ingest source, which is applied to the base path. Must be unique within a configuration."
     */
    segment: string;
}
export interface OpenpipelineBusinessEventsEndpointsEndpointProcessors {
    /**
     * Groups all processors applicable for processing in the EndpointDefinition.
     * Applicable processors are DqlProcessor, FieldsAddProcessor, FieldsRemoveProcessor, FieldsRenameProcessor and DropProcessor.
     */
    processors?: outputs.OpenpipelineBusinessEventsEndpointsEndpointProcessorsProcessor[];
}
export interface OpenpipelineBusinessEventsEndpointsEndpointProcessorsProcessor {
    /**
     * Processor to apply a DQL script
     */
    dqlProcessor?: outputs.OpenpipelineBusinessEventsEndpointsEndpointProcessorsProcessorDqlProcessor;
    /**
     * Processor to add fields
     */
    fieldsAddProcessor?: outputs.OpenpipelineBusinessEventsEndpointsEndpointProcessorsProcessorFieldsAddProcessor;
    /**
     * Processor to remove fields
     */
    fieldsRemoveProcessor?: outputs.OpenpipelineBusinessEventsEndpointsEndpointProcessorsProcessorFieldsRemoveProcessor;
    /**
     * Processor to rename fields
     */
    fieldsRenameProcessor?: outputs.OpenpipelineBusinessEventsEndpointsEndpointProcessorsProcessorFieldsRenameProcessor;
}
export interface OpenpipelineBusinessEventsEndpointsEndpointProcessorsProcessorDqlProcessor {
    /**
     * Name or description of the processor
     */
    description: string;
    /**
     * The DQL script to apply on the record
     */
    dqlScript: string;
    /**
     * Indicates if the object is active
     */
    enabled: boolean;
    /**
     * Identifier of the processor. Must be unique within a stage.
     */
    id: string;
    /**
     * Matching condition to apply on incoming records
     */
    matcher: string;
    /**
     * Sample data related to the processor for documentation or testing
     */
    sampleData?: string;
}
export interface OpenpipelineBusinessEventsEndpointsEndpointProcessorsProcessorFieldsAddProcessor {
    /**
     * Name or description of the processor
     */
    description: string;
    /**
     * Indicates if the object is active
     */
    enabled: boolean;
    /**
     * Field to add to the record
     */
    fields: outputs.OpenpipelineBusinessEventsEndpointsEndpointProcessorsProcessorFieldsAddProcessorField[];
    /**
     * Identifier of the processor. Must be unique within a stage.
     */
    id: string;
    /**
     * Matching condition to apply on incoming records
     */
    matcher: string;
    /**
     * Sample data related to the processor for documentation or testing
     */
    sampleData?: string;
}
export interface OpenpipelineBusinessEventsEndpointsEndpointProcessorsProcessorFieldsAddProcessorField {
    /**
     * Name of the field
     */
    name: string;
    /**
     * Value to assign to the field
     */
    value: string;
}
export interface OpenpipelineBusinessEventsEndpointsEndpointProcessorsProcessorFieldsRemoveProcessor {
    /**
     * Name or description of the processor
     */
    description: string;
    /**
     * Indicates if the object is active
     */
    enabled: boolean;
    /**
     * Field to add to the record
     */
    fields: string[];
    /**
     * Identifier of the processor. Must be unique within a stage.
     */
    id: string;
    /**
     * Matching condition to apply on incoming records
     */
    matcher: string;
    /**
     * Sample data related to the processor for documentation or testing
     */
    sampleData?: string;
}
export interface OpenpipelineBusinessEventsEndpointsEndpointProcessorsProcessorFieldsRenameProcessor {
    /**
     * Name or description of the processor
     */
    description: string;
    /**
     * Indicates if the object is active
     */
    enabled: boolean;
    /**
     * Field to rename on the record
     */
    fields: outputs.OpenpipelineBusinessEventsEndpointsEndpointProcessorsProcessorFieldsRenameProcessorField[];
    /**
     * Identifier of the processor. Must be unique within a stage.
     */
    id: string;
    /**
     * Matching condition to apply on incoming records
     */
    matcher: string;
    /**
     * Sample data related to the processor for documentation or testing
     */
    sampleData?: string;
}
export interface OpenpipelineBusinessEventsEndpointsEndpointProcessorsProcessorFieldsRenameProcessorField {
    /**
     * The field to rename
     */
    fromName: string;
    /**
     * The new field name
     */
    toName: string;
}
export interface OpenpipelineBusinessEventsEndpointsEndpointRouting {
    /**
     * Pipeline ID of the static routing
     */
    pipelineId?: string;
    /**
     * Type of routing, static or dynamic
     */
    type: string;
}
export interface OpenpipelineBusinessEventsPipelines {
    /**
     * Definition of a single pipeline
     */
    pipelines?: outputs.OpenpipelineBusinessEventsPipelinesPipeline[];
}
export interface OpenpipelineBusinessEventsPipelinesPipeline {
    /**
     * Data extraction stage configuration of the pipeline
     */
    dataExtraction?: outputs.OpenpipelineBusinessEventsPipelinesPipelineDataExtraction;
    /**
     * Display name of the pipeline
     */
    displayName: string;
    /**
     * Indicates if the object is active
     */
    enabled: boolean;
    /**
     * Identifier of the pipeline
     */
    id: string;
    /**
     * Metric extraction stage configuration of the pipeline
     */
    metricExtraction?: outputs.OpenpipelineBusinessEventsPipelinesPipelineMetricExtraction;
    /**
     * Processing stage configuration of the pipeline
     */
    processing?: outputs.OpenpipelineBusinessEventsPipelinesPipelineProcessing;
    /**
     * Security context stage configuration of the pipeline
     */
    securityContext?: outputs.OpenpipelineBusinessEventsPipelinesPipelineSecurityContext;
    /**
     * Data extraction stage configuration of the pipeline
     */
    storage?: outputs.OpenpipelineBusinessEventsPipelinesPipelineStorage;
}
export interface OpenpipelineBusinessEventsPipelinesPipelineDataExtraction {
    /**
     * Groups all processors applicable for the DataExtractionStage.
     * Applicable processors are DavisEventExtractionProcessor and BizeventExtractionProcessor.
     */
    processors?: outputs.OpenpipelineBusinessEventsPipelinesPipelineDataExtractionProcessor[];
}
export interface OpenpipelineBusinessEventsPipelinesPipelineDataExtractionProcessor {
    bizeventExtractionProcessor?: outputs.OpenpipelineBusinessEventsPipelinesPipelineDataExtractionProcessorBizeventExtractionProcessor;
    /**
     * Processor to apply a DQL script
     */
    davisEventExtractionProcessor?: outputs.OpenpipelineBusinessEventsPipelinesPipelineDataExtractionProcessorDavisEventExtractionProcessor;
}
export interface OpenpipelineBusinessEventsPipelinesPipelineDataExtractionProcessorBizeventExtractionProcessor {
    /**
     * Name or description of the processor
     */
    description: string;
    /**
     * Indicates if the object is active
     */
    enabled: boolean;
    /**
     * Strategy to assign a value
     */
    eventProvider: outputs.OpenpipelineBusinessEventsPipelinesPipelineDataExtractionProcessorBizeventExtractionProcessorEventProvider;
    /**
     * Strategy to assign a value
     */
    eventType: outputs.OpenpipelineBusinessEventsPipelinesPipelineDataExtractionProcessorBizeventExtractionProcessorEventType;
    fieldExtraction?: outputs.OpenpipelineBusinessEventsPipelinesPipelineDataExtractionProcessorBizeventExtractionProcessorFieldExtraction;
    /**
     * Identifier of the processor. Must be unique within a stage.
     */
    id: string;
    /**
     * Matching condition to apply on incoming records
     */
    matcher: string;
    /**
     * Sample data related to the processor for documentation or testing
     */
    sampleData?: string;
}
export interface OpenpipelineBusinessEventsPipelinesPipelineDataExtractionProcessorBizeventExtractionProcessorEventProvider {
    /**
     * Strategy to assign a value
     */
    constant?: string;
    /**
     * Strategy to assign a value
     */
    field?: string;
    /**
     * Strategy to assign a value
     */
    type: string;
}
export interface OpenpipelineBusinessEventsPipelinesPipelineDataExtractionProcessorBizeventExtractionProcessorEventType {
    /**
     * Strategy to assign a value
     */
    constant?: string;
    /**
     * Strategy to assign a value
     */
    field?: string;
    /**
     * Strategy to assign a value
     */
    type: string;
}
export interface OpenpipelineBusinessEventsPipelinesPipelineDataExtractionProcessorBizeventExtractionProcessorFieldExtraction {
    fields: string[];
    semantic: string;
}
export interface OpenpipelineBusinessEventsPipelinesPipelineDataExtractionProcessorDavisEventExtractionProcessor {
    /**
     * Name or description of the processor
     */
    description: string;
    /**
     * Indicates if the object is active
     */
    enabled: boolean;
    /**
     * Identifier of the processor. Must be unique within a stage.
     */
    id: string;
    /**
     * Matching condition to apply on incoming records
     */
    matcher: string;
    /**
     * List of properties for the extracted davis event
     */
    properties: outputs.OpenpipelineBusinessEventsPipelinesPipelineDataExtractionProcessorDavisEventExtractionProcessorProperty[];
    /**
     * Sample data related to the processor for documentation or testing
     */
    sampleData?: string;
}
export interface OpenpipelineBusinessEventsPipelinesPipelineDataExtractionProcessorDavisEventExtractionProcessorProperty {
    /**
     * The key to set on the davis event
     */
    key: string;
    /**
     * The value assigned to the key
     */
    value: string;
}
export interface OpenpipelineBusinessEventsPipelinesPipelineMetricExtraction {
    /**
     * Data extraction processor to use
     */
    processors?: outputs.OpenpipelineBusinessEventsPipelinesPipelineMetricExtractionProcessor[];
}
export interface OpenpipelineBusinessEventsPipelinesPipelineMetricExtractionProcessor {
    /**
     * Processor to write the occurrences as a metric
     */
    counterMetricExtractionProcessor?: outputs.OpenpipelineBusinessEventsPipelinesPipelineMetricExtractionProcessorCounterMetricExtractionProcessor;
    /**
     * Processor to extract a value from a field as a metric
     */
    valueMetricExtractionProcessor?: outputs.OpenpipelineBusinessEventsPipelinesPipelineMetricExtractionProcessorValueMetricExtractionProcessor;
}
export interface OpenpipelineBusinessEventsPipelinesPipelineMetricExtractionProcessorCounterMetricExtractionProcessor {
    /**
     * Name or description of the processor
     */
    description: string;
    /**
     * List of dimensions to add to the metric
     */
    dimensions?: string[];
    /**
     * Indicates if the object is active
     */
    enabled: boolean;
    /**
     * Identifier of the processor. Must be unique within a stage.
     */
    id: string;
    /**
     * Matching condition to apply on incoming records
     */
    matcher: string;
    /**
     * The key of the metric to write
     */
    metricKey: string;
    /**
     * Sample data related to the processor for documentation or testing
     */
    sampleData?: string;
}
export interface OpenpipelineBusinessEventsPipelinesPipelineMetricExtractionProcessorValueMetricExtractionProcessor {
    /**
     * Name or description of the processor
     */
    description: string;
    /**
     * List of dimensions to add to the metric
     */
    dimensions?: string[];
    /**
     * Indicates if the object is active
     */
    enabled: boolean;
    /**
     * The field to extract the value for the metric
     */
    field: string;
    /**
     * Identifier of the processor. Must be unique within a stage.
     */
    id: string;
    /**
     * Matching condition to apply on incoming records
     */
    matcher: string;
    /**
     * The key of the metric to write
     */
    metricKey: string;
    /**
     * Sample data related to the processor for documentation or testing
     */
    sampleData?: string;
}
export interface OpenpipelineBusinessEventsPipelinesPipelineProcessing {
    /**
     * Groups all processors applicable for the ProcessingStage.
     * Applicable processors are DqlProcessor, FieldsAddProcessor, FieldsRemoveProcessor, FieldsRenameProcessor, TechnologyProcessor and DropProcessor.
     */
    processors?: outputs.OpenpipelineBusinessEventsPipelinesPipelineProcessingProcessor[];
}
export interface OpenpipelineBusinessEventsPipelinesPipelineProcessingProcessor {
    /**
     * Processor to apply a DQL script
     */
    dqlProcessor?: outputs.OpenpipelineBusinessEventsPipelinesPipelineProcessingProcessorDqlProcessor;
    /**
     * Processor to add fields
     */
    fieldsAddProcessor?: outputs.OpenpipelineBusinessEventsPipelinesPipelineProcessingProcessorFieldsAddProcessor;
    /**
     * Processor to remove fields
     */
    fieldsRemoveProcessor?: outputs.OpenpipelineBusinessEventsPipelinesPipelineProcessingProcessorFieldsRemoveProcessor;
    /**
     * Processor to rename fields
     */
    fieldsRenameProcessor?: outputs.OpenpipelineBusinessEventsPipelinesPipelineProcessingProcessorFieldsRenameProcessor;
    /**
     * Processor to apply a technology processors
     */
    technologyProcessor?: outputs.OpenpipelineBusinessEventsPipelinesPipelineProcessingProcessorTechnologyProcessor;
}
export interface OpenpipelineBusinessEventsPipelinesPipelineProcessingProcessorDqlProcessor {
    /**
     * Name or description of the processor
     */
    description: string;
    /**
     * The DQL script to apply on the record
     */
    dqlScript: string;
    /**
     * Indicates if the object is active
     */
    enabled: boolean;
    /**
     * Identifier of the processor. Must be unique within a stage.
     */
    id: string;
    /**
     * Matching condition to apply on incoming records
     */
    matcher: string;
    /**
     * Sample data related to the processor for documentation or testing
     */
    sampleData?: string;
}
export interface OpenpipelineBusinessEventsPipelinesPipelineProcessingProcessorFieldsAddProcessor {
    /**
     * Name or description of the processor
     */
    description: string;
    /**
     * Indicates if the object is active
     */
    enabled: boolean;
    /**
     * Field to add to the record
     */
    fields: outputs.OpenpipelineBusinessEventsPipelinesPipelineProcessingProcessorFieldsAddProcessorField[];
    /**
     * Identifier of the processor. Must be unique within a stage.
     */
    id: string;
    /**
     * Matching condition to apply on incoming records
     */
    matcher: string;
    /**
     * Sample data related to the processor for documentation or testing
     */
    sampleData?: string;
}
export interface OpenpipelineBusinessEventsPipelinesPipelineProcessingProcessorFieldsAddProcessorField {
    /**
     * Name of the field
     */
    name: string;
    /**
     * Value to assign to the field
     */
    value: string;
}
export interface OpenpipelineBusinessEventsPipelinesPipelineProcessingProcessorFieldsRemoveProcessor {
    /**
     * Name or description of the processor
     */
    description: string;
    /**
     * Indicates if the object is active
     */
    enabled: boolean;
    /**
     * Field to add to the record
     */
    fields: string[];
    /**
     * Identifier of the processor. Must be unique within a stage.
     */
    id: string;
    /**
     * Matching condition to apply on incoming records
     */
    matcher: string;
    /**
     * Sample data related to the processor for documentation or testing
     */
    sampleData?: string;
}
export interface OpenpipelineBusinessEventsPipelinesPipelineProcessingProcessorFieldsRenameProcessor {
    /**
     * Name or description of the processor
     */
    description: string;
    /**
     * Indicates if the object is active
     */
    enabled: boolean;
    /**
     * Field to rename on the record
     */
    fields: outputs.OpenpipelineBusinessEventsPipelinesPipelineProcessingProcessorFieldsRenameProcessorField[];
    /**
     * Identifier of the processor. Must be unique within a stage.
     */
    id: string;
    /**
     * Matching condition to apply on incoming records
     */
    matcher: string;
    /**
     * Sample data related to the processor for documentation or testing
     */
    sampleData?: string;
}
export interface OpenpipelineBusinessEventsPipelinesPipelineProcessingProcessorFieldsRenameProcessorField {
    /**
     * The field to rename
     */
    fromName: string;
    /**
     * The new field name
     */
    toName: string;
}
export interface OpenpipelineBusinessEventsPipelinesPipelineProcessingProcessorTechnologyProcessor {
    /**
     * Name or description of the processor
     */
    description: string;
    /**
     * Indicates if the object is active
     */
    enabled: boolean;
    /**
     * Identifier of the processor. Must be unique within a stage.
     */
    id: string;
    /**
     * Matching condition to apply on incoming records
     */
    matcher: string;
    /**
     * Sample data related to the processor for documentation or testing
     */
    sampleData?: string;
    /**
     * Identifier of the processor. Must be unique within a stage.
     */
    technologyId: string;
}
export interface OpenpipelineBusinessEventsPipelinesPipelineSecurityContext {
    /**
     * Groups all processors applicable for the SecurityContextStage.
     * Applicable processor is SecurityContextProcessor.
     */
    processors?: outputs.OpenpipelineBusinessEventsPipelinesPipelineSecurityContextProcessor[];
}
export interface OpenpipelineBusinessEventsPipelinesPipelineSecurityContextProcessor {
    /**
     * Processor to set the security context field
     */
    securityContextProcessor?: outputs.OpenpipelineBusinessEventsPipelinesPipelineSecurityContextProcessorSecurityContextProcessor;
}
export interface OpenpipelineBusinessEventsPipelinesPipelineSecurityContextProcessorSecurityContextProcessor {
    /**
     * Name or description of the processor
     */
    description: string;
    /**
     * Indicates if the object is active
     */
    enabled: boolean;
    /**
     * Identifier of the processor. Must be unique within a stage.
     */
    id: string;
    /**
     * Matching condition to apply on incoming records
     */
    matcher: string;
    /**
     * Sample data related to the processor for documentation or testing
     */
    sampleData?: string;
    /**
     * Strategy to assign a value
     */
    value: outputs.OpenpipelineBusinessEventsPipelinesPipelineSecurityContextProcessorSecurityContextProcessorValue;
}
export interface OpenpipelineBusinessEventsPipelinesPipelineSecurityContextProcessorSecurityContextProcessorValue {
    /**
     * Strategy to assign a value
     */
    constant?: string;
    /**
     * Strategy to assign a value
     */
    field?: string;
    /**
     * Strategy to assign a value
     */
    type: string;
}
export interface OpenpipelineBusinessEventsPipelinesPipelineStorage {
    /**
     * Default bucket assigned to records which do not match any other storage processor
     */
    catchAllBucketName?: string;
    /**
     * Groups all processors applicable for the StorageStage.
     * Applicable processors are BucketAssignmentProcessor and NoStorageProcessor.
     */
    processors?: outputs.OpenpipelineBusinessEventsPipelinesPipelineStorageProcessor[];
}
export interface OpenpipelineBusinessEventsPipelinesPipelineStorageProcessor {
    /**
     * Processor to assign a bucket
     */
    bucketAssignmentProcessor?: outputs.OpenpipelineBusinessEventsPipelinesPipelineStorageProcessorBucketAssignmentProcessor;
    /**
     * Processor to skip storage assignment
     */
    noStorageProcessor?: outputs.OpenpipelineBusinessEventsPipelinesPipelineStorageProcessorNoStorageProcessor;
}
export interface OpenpipelineBusinessEventsPipelinesPipelineStorageProcessorBucketAssignmentProcessor {
    /**
     * Bucket that is assigned when the record is matched
     */
    bucketName: string;
    /**
     * Name or description of the processor
     */
    description: string;
    /**
     * Indicates if the object is active
     */
    enabled: boolean;
    /**
     * Identifier of the processor. Must be unique within a stage.
     */
    id: string;
    /**
     * Matching condition to apply on incoming records
     */
    matcher: string;
    /**
     * Sample data related to the processor for documentation or testing
     */
    sampleData?: string;
}
export interface OpenpipelineBusinessEventsPipelinesPipelineStorageProcessorNoStorageProcessor {
    /**
     * Name or description of the processor
     */
    description: string;
    /**
     * Indicates if the object is active
     */
    enabled: boolean;
    /**
     * Identifier of the processor. Must be unique within a stage.
     */
    id: string;
    /**
     * Matching condition to apply on incoming records
     */
    matcher: string;
    /**
     * Sample data related to the processor for documentation or testing
     */
    sampleData?: string;
}
export interface OpenpipelineBusinessEventsRouting {
    /**
     * Dynamic routing entry
     */
    entries?: outputs.OpenpipelineBusinessEventsRoutingEntry[];
}
export interface OpenpipelineBusinessEventsRoutingEntry {
    /**
     * Indicates if the object is active
     */
    enabled: boolean;
    /**
     * Matching condition to apply on incoming records
     */
    matcher: string;
    /**
     * Unique note describing the dynamic route
     */
    note: string;
    /**
     * Identifier of the pipeline the record is routed into
     */
    pipelineId: string;
}
export interface OpenpipelineEventsEndpoints {
    /**
     * Definition of a single ingest source
     */
    endpoints?: outputs.OpenpipelineEventsEndpointsEndpoint[];
}
export interface OpenpipelineEventsEndpointsEndpoint {
    /**
     * The default bucket assigned to records for the ingest source
     */
    defaultBucket?: string;
    /**
     * Display name of the ingest source
     */
    displayName: string;
    /**
     * Indicates if the object is active
     */
    enabled: boolean;
    /**
     * The pre-processing done in the ingest source
     */
    processors?: outputs.OpenpipelineEventsEndpointsEndpointProcessors;
    /**
     * Routing strategy, either dynamic or static
     */
    routing: outputs.OpenpipelineEventsEndpointsEndpointRouting;
    /**
     * The segment of the ingest source, which is applied to the base path. Must be unique within a configuration."
     */
    segment: string;
}
export interface OpenpipelineEventsEndpointsEndpointProcessors {
    /**
     * Groups all processors applicable for processing in the EndpointDefinition.
     * Applicable processors are DqlProcessor, FieldsAddProcessor, FieldsRemoveProcessor, FieldsRenameProcessor and DropProcessor.
     */
    processors?: outputs.OpenpipelineEventsEndpointsEndpointProcessorsProcessor[];
}
export interface OpenpipelineEventsEndpointsEndpointProcessorsProcessor {
    /**
     * Processor to apply a DQL script
     */
    dqlProcessor?: outputs.OpenpipelineEventsEndpointsEndpointProcessorsProcessorDqlProcessor;
    /**
     * Processor to add fields
     */
    fieldsAddProcessor?: outputs.OpenpipelineEventsEndpointsEndpointProcessorsProcessorFieldsAddProcessor;
    /**
     * Processor to remove fields
     */
    fieldsRemoveProcessor?: outputs.OpenpipelineEventsEndpointsEndpointProcessorsProcessorFieldsRemoveProcessor;
    /**
     * Processor to rename fields
     */
    fieldsRenameProcessor?: outputs.OpenpipelineEventsEndpointsEndpointProcessorsProcessorFieldsRenameProcessor;
}
export interface OpenpipelineEventsEndpointsEndpointProcessorsProcessorDqlProcessor {
    /**
     * Name or description of the processor
     */
    description: string;
    /**
     * The DQL script to apply on the record
     */
    dqlScript: string;
    /**
     * Indicates if the object is active
     */
    enabled: boolean;
    /**
     * Identifier of the processor. Must be unique within a stage.
     */
    id: string;
    /**
     * Matching condition to apply on incoming records
     */
    matcher: string;
    /**
     * Sample data related to the processor for documentation or testing
     */
    sampleData?: string;
}
export interface OpenpipelineEventsEndpointsEndpointProcessorsProcessorFieldsAddProcessor {
    /**
     * Name or description of the processor
     */
    description: string;
    /**
     * Indicates if the object is active
     */
    enabled: boolean;
    /**
     * Field to add to the record
     */
    fields: outputs.OpenpipelineEventsEndpointsEndpointProcessorsProcessorFieldsAddProcessorField[];
    /**
     * Identifier of the processor. Must be unique within a stage.
     */
    id: string;
    /**
     * Matching condition to apply on incoming records
     */
    matcher: string;
    /**
     * Sample data related to the processor for documentation or testing
     */
    sampleData?: string;
}
export interface OpenpipelineEventsEndpointsEndpointProcessorsProcessorFieldsAddProcessorField {
    /**
     * Name of the field
     */
    name: string;
    /**
     * Value to assign to the field
     */
    value: string;
}
export interface OpenpipelineEventsEndpointsEndpointProcessorsProcessorFieldsRemoveProcessor {
    /**
     * Name or description of the processor
     */
    description: string;
    /**
     * Indicates if the object is active
     */
    enabled: boolean;
    /**
     * Field to add to the record
     */
    fields: string[];
    /**
     * Identifier of the processor. Must be unique within a stage.
     */
    id: string;
    /**
     * Matching condition to apply on incoming records
     */
    matcher: string;
    /**
     * Sample data related to the processor for documentation or testing
     */
    sampleData?: string;
}
export interface OpenpipelineEventsEndpointsEndpointProcessorsProcessorFieldsRenameProcessor {
    /**
     * Name or description of the processor
     */
    description: string;
    /**
     * Indicates if the object is active
     */
    enabled: boolean;
    /**
     * Field to rename on the record
     */
    fields: outputs.OpenpipelineEventsEndpointsEndpointProcessorsProcessorFieldsRenameProcessorField[];
    /**
     * Identifier of the processor. Must be unique within a stage.
     */
    id: string;
    /**
     * Matching condition to apply on incoming records
     */
    matcher: string;
    /**
     * Sample data related to the processor for documentation or testing
     */
    sampleData?: string;
}
export interface OpenpipelineEventsEndpointsEndpointProcessorsProcessorFieldsRenameProcessorField {
    /**
     * The field to rename
     */
    fromName: string;
    /**
     * The new field name
     */
    toName: string;
}
export interface OpenpipelineEventsEndpointsEndpointRouting {
    /**
     * Pipeline ID of the static routing
     */
    pipelineId?: string;
    /**
     * Type of routing, static or dynamic
     */
    type: string;
}
export interface OpenpipelineEventsPipelines {
    /**
     * Definition of a single pipeline
     */
    pipelines?: outputs.OpenpipelineEventsPipelinesPipeline[];
}
export interface OpenpipelineEventsPipelinesPipeline {
    /**
     * Data extraction stage configuration of the pipeline
     */
    dataExtraction?: outputs.OpenpipelineEventsPipelinesPipelineDataExtraction;
    /**
     * Display name of the pipeline
     */
    displayName: string;
    /**
     * Indicates if the object is active
     */
    enabled: boolean;
    /**
     * Identifier of the pipeline
     */
    id: string;
    /**
     * Metric extraction stage configuration of the pipeline
     */
    metricExtraction?: outputs.OpenpipelineEventsPipelinesPipelineMetricExtraction;
    /**
     * Processing stage configuration of the pipeline
     */
    processing?: outputs.OpenpipelineEventsPipelinesPipelineProcessing;
    /**
     * Security context stage configuration of the pipeline
     */
    securityContext?: outputs.OpenpipelineEventsPipelinesPipelineSecurityContext;
    /**
     * Data extraction stage configuration of the pipeline
     */
    storage?: outputs.OpenpipelineEventsPipelinesPipelineStorage;
}
export interface OpenpipelineEventsPipelinesPipelineDataExtraction {
    /**
     * Groups all processors applicable for the DataExtractionStage.
     * Applicable processors are DavisEventExtractionProcessor and BizeventExtractionProcessor.
     */
    processors?: outputs.OpenpipelineEventsPipelinesPipelineDataExtractionProcessor[];
}
export interface OpenpipelineEventsPipelinesPipelineDataExtractionProcessor {
    bizeventExtractionProcessor?: outputs.OpenpipelineEventsPipelinesPipelineDataExtractionProcessorBizeventExtractionProcessor;
    /**
     * Processor to apply a DQL script
     */
    davisEventExtractionProcessor?: outputs.OpenpipelineEventsPipelinesPipelineDataExtractionProcessorDavisEventExtractionProcessor;
}
export interface OpenpipelineEventsPipelinesPipelineDataExtractionProcessorBizeventExtractionProcessor {
    /**
     * Name or description of the processor
     */
    description: string;
    /**
     * Indicates if the object is active
     */
    enabled: boolean;
    /**
     * Strategy to assign a value
     */
    eventProvider: outputs.OpenpipelineEventsPipelinesPipelineDataExtractionProcessorBizeventExtractionProcessorEventProvider;
    /**
     * Strategy to assign a value
     */
    eventType: outputs.OpenpipelineEventsPipelinesPipelineDataExtractionProcessorBizeventExtractionProcessorEventType;
    fieldExtraction?: outputs.OpenpipelineEventsPipelinesPipelineDataExtractionProcessorBizeventExtractionProcessorFieldExtraction;
    /**
     * Identifier of the processor. Must be unique within a stage.
     */
    id: string;
    /**
     * Matching condition to apply on incoming records
     */
    matcher: string;
    /**
     * Sample data related to the processor for documentation or testing
     */
    sampleData?: string;
}
export interface OpenpipelineEventsPipelinesPipelineDataExtractionProcessorBizeventExtractionProcessorEventProvider {
    /**
     * Strategy to assign a value
     */
    constant?: string;
    /**
     * Strategy to assign a value
     */
    field?: string;
    /**
     * Strategy to assign a value
     */
    type: string;
}
export interface OpenpipelineEventsPipelinesPipelineDataExtractionProcessorBizeventExtractionProcessorEventType {
    /**
     * Strategy to assign a value
     */
    constant?: string;
    /**
     * Strategy to assign a value
     */
    field?: string;
    /**
     * Strategy to assign a value
     */
    type: string;
}
export interface OpenpipelineEventsPipelinesPipelineDataExtractionProcessorBizeventExtractionProcessorFieldExtraction {
    fields: string[];
    semantic: string;
}
export interface OpenpipelineEventsPipelinesPipelineDataExtractionProcessorDavisEventExtractionProcessor {
    /**
     * Name or description of the processor
     */
    description: string;
    /**
     * Indicates if the object is active
     */
    enabled: boolean;
    /**
     * Identifier of the processor. Must be unique within a stage.
     */
    id: string;
    /**
     * Matching condition to apply on incoming records
     */
    matcher: string;
    /**
     * List of properties for the extracted davis event
     */
    properties: outputs.OpenpipelineEventsPipelinesPipelineDataExtractionProcessorDavisEventExtractionProcessorProperty[];
    /**
     * Sample data related to the processor for documentation or testing
     */
    sampleData?: string;
}
export interface OpenpipelineEventsPipelinesPipelineDataExtractionProcessorDavisEventExtractionProcessorProperty {
    /**
     * The key to set on the davis event
     */
    key: string;
    /**
     * The value assigned to the key
     */
    value: string;
}
export interface OpenpipelineEventsPipelinesPipelineMetricExtraction {
    /**
     * Data extraction processor to use
     */
    processors?: outputs.OpenpipelineEventsPipelinesPipelineMetricExtractionProcessor[];
}
export interface OpenpipelineEventsPipelinesPipelineMetricExtractionProcessor {
    /**
     * Processor to write the occurrences as a metric
     */
    counterMetricExtractionProcessor?: outputs.OpenpipelineEventsPipelinesPipelineMetricExtractionProcessorCounterMetricExtractionProcessor;
    /**
     * Processor to extract a value from a field as a metric
     */
    valueMetricExtractionProcessor?: outputs.OpenpipelineEventsPipelinesPipelineMetricExtractionProcessorValueMetricExtractionProcessor;
}
export interface OpenpipelineEventsPipelinesPipelineMetricExtractionProcessorCounterMetricExtractionProcessor {
    /**
     * Name or description of the processor
     */
    description: string;
    /**
     * List of dimensions to add to the metric
     */
    dimensions?: string[];
    /**
     * Indicates if the object is active
     */
    enabled: boolean;
    /**
     * Identifier of the processor. Must be unique within a stage.
     */
    id: string;
    /**
     * Matching condition to apply on incoming records
     */
    matcher: string;
    /**
     * The key of the metric to write
     */
    metricKey: string;
    /**
     * Sample data related to the processor for documentation or testing
     */
    sampleData?: string;
}
export interface OpenpipelineEventsPipelinesPipelineMetricExtractionProcessorValueMetricExtractionProcessor {
    /**
     * Name or description of the processor
     */
    description: string;
    /**
     * List of dimensions to add to the metric
     */
    dimensions?: string[];
    /**
     * Indicates if the object is active
     */
    enabled: boolean;
    /**
     * The field to extract the value for the metric
     */
    field: string;
    /**
     * Identifier of the processor. Must be unique within a stage.
     */
    id: string;
    /**
     * Matching condition to apply on incoming records
     */
    matcher: string;
    /**
     * The key of the metric to write
     */
    metricKey: string;
    /**
     * Sample data related to the processor for documentation or testing
     */
    sampleData?: string;
}
export interface OpenpipelineEventsPipelinesPipelineProcessing {
    /**
     * Groups all processors applicable for the ProcessingStage.
     * Applicable processors are DqlProcessor, FieldsAddProcessor, FieldsRemoveProcessor, FieldsRenameProcessor, TechnologyProcessor and DropProcessor.
     */
    processors?: outputs.OpenpipelineEventsPipelinesPipelineProcessingProcessor[];
}
export interface OpenpipelineEventsPipelinesPipelineProcessingProcessor {
    /**
     * Processor to apply a DQL script
     */
    dqlProcessor?: outputs.OpenpipelineEventsPipelinesPipelineProcessingProcessorDqlProcessor;
    /**
     * Processor to add fields
     */
    fieldsAddProcessor?: outputs.OpenpipelineEventsPipelinesPipelineProcessingProcessorFieldsAddProcessor;
    /**
     * Processor to remove fields
     */
    fieldsRemoveProcessor?: outputs.OpenpipelineEventsPipelinesPipelineProcessingProcessorFieldsRemoveProcessor;
    /**
     * Processor to rename fields
     */
    fieldsRenameProcessor?: outputs.OpenpipelineEventsPipelinesPipelineProcessingProcessorFieldsRenameProcessor;
    /**
     * Processor to apply a technology processors
     */
    technologyProcessor?: outputs.OpenpipelineEventsPipelinesPipelineProcessingProcessorTechnologyProcessor;
}
export interface OpenpipelineEventsPipelinesPipelineProcessingProcessorDqlProcessor {
    /**
     * Name or description of the processor
     */
    description: string;
    /**
     * The DQL script to apply on the record
     */
    dqlScript: string;
    /**
     * Indicates if the object is active
     */
    enabled: boolean;
    /**
     * Identifier of the processor. Must be unique within a stage.
     */
    id: string;
    /**
     * Matching condition to apply on incoming records
     */
    matcher: string;
    /**
     * Sample data related to the processor for documentation or testing
     */
    sampleData?: string;
}
export interface OpenpipelineEventsPipelinesPipelineProcessingProcessorFieldsAddProcessor {
    /**
     * Name or description of the processor
     */
    description: string;
    /**
     * Indicates if the object is active
     */
    enabled: boolean;
    /**
     * Field to add to the record
     */
    fields: outputs.OpenpipelineEventsPipelinesPipelineProcessingProcessorFieldsAddProcessorField[];
    /**
     * Identifier of the processor. Must be unique within a stage.
     */
    id: string;
    /**
     * Matching condition to apply on incoming records
     */
    matcher: string;
    /**
     * Sample data related to the processor for documentation or testing
     */
    sampleData?: string;
}
export interface OpenpipelineEventsPipelinesPipelineProcessingProcessorFieldsAddProcessorField {
    /**
     * Name of the field
     */
    name: string;
    /**
     * Value to assign to the field
     */
    value: string;
}
export interface OpenpipelineEventsPipelinesPipelineProcessingProcessorFieldsRemoveProcessor {
    /**
     * Name or description of the processor
     */
    description: string;
    /**
     * Indicates if the object is active
     */
    enabled: boolean;
    /**
     * Field to add to the record
     */
    fields: string[];
    /**
     * Identifier of the processor. Must be unique within a stage.
     */
    id: string;
    /**
     * Matching condition to apply on incoming records
     */
    matcher: string;
    /**
     * Sample data related to the processor for documentation or testing
     */
    sampleData?: string;
}
export interface OpenpipelineEventsPipelinesPipelineProcessingProcessorFieldsRenameProcessor {
    /**
     * Name or description of the processor
     */
    description: string;
    /**
     * Indicates if the object is active
     */
    enabled: boolean;
    /**
     * Field to rename on the record
     */
    fields: outputs.OpenpipelineEventsPipelinesPipelineProcessingProcessorFieldsRenameProcessorField[];
    /**
     * Identifier of the processor. Must be unique within a stage.
     */
    id: string;
    /**
     * Matching condition to apply on incoming records
     */
    matcher: string;
    /**
     * Sample data related to the processor for documentation or testing
     */
    sampleData?: string;
}
export interface OpenpipelineEventsPipelinesPipelineProcessingProcessorFieldsRenameProcessorField {
    /**
     * The field to rename
     */
    fromName: string;
    /**
     * The new field name
     */
    toName: string;
}
export interface OpenpipelineEventsPipelinesPipelineProcessingProcessorTechnologyProcessor {
    /**
     * Name or description of the processor
     */
    description: string;
    /**
     * Indicates if the object is active
     */
    enabled: boolean;
    /**
     * Identifier of the processor. Must be unique within a stage.
     */
    id: string;
    /**
     * Matching condition to apply on incoming records
     */
    matcher: string;
    /**
     * Sample data related to the processor for documentation or testing
     */
    sampleData?: string;
    /**
     * Identifier of the processor. Must be unique within a stage.
     */
    technologyId: string;
}
export interface OpenpipelineEventsPipelinesPipelineSecurityContext {
    /**
     * Groups all processors applicable for the SecurityContextStage.
     * Applicable processor is SecurityContextProcessor.
     */
    processors?: outputs.OpenpipelineEventsPipelinesPipelineSecurityContextProcessor[];
}
export interface OpenpipelineEventsPipelinesPipelineSecurityContextProcessor {
    /**
     * Processor to set the security context field
     */
    securityContextProcessor?: outputs.OpenpipelineEventsPipelinesPipelineSecurityContextProcessorSecurityContextProcessor;
}
export interface OpenpipelineEventsPipelinesPipelineSecurityContextProcessorSecurityContextProcessor {
    /**
     * Name or description of the processor
     */
    description: string;
    /**
     * Indicates if the object is active
     */
    enabled: boolean;
    /**
     * Identifier of the processor. Must be unique within a stage.
     */
    id: string;
    /**
     * Matching condition to apply on incoming records
     */
    matcher: string;
    /**
     * Sample data related to the processor for documentation or testing
     */
    sampleData?: string;
    /**
     * Strategy to assign a value
     */
    value: outputs.OpenpipelineEventsPipelinesPipelineSecurityContextProcessorSecurityContextProcessorValue;
}
export interface OpenpipelineEventsPipelinesPipelineSecurityContextProcessorSecurityContextProcessorValue {
    /**
     * Strategy to assign a value
     */
    constant?: string;
    /**
     * Strategy to assign a value
     */
    field?: string;
    /**
     * Strategy to assign a value
     */
    type: string;
}
export interface OpenpipelineEventsPipelinesPipelineStorage {
    /**
     * Default bucket assigned to records which do not match any other storage processor
     */
    catchAllBucketName?: string;
    /**
     * Groups all processors applicable for the StorageStage.
     * Applicable processors are BucketAssignmentProcessor and NoStorageProcessor.
     */
    processors?: outputs.OpenpipelineEventsPipelinesPipelineStorageProcessor[];
}
export interface OpenpipelineEventsPipelinesPipelineStorageProcessor {
    /**
     * Processor to assign a bucket
     */
    bucketAssignmentProcessor?: outputs.OpenpipelineEventsPipelinesPipelineStorageProcessorBucketAssignmentProcessor;
    /**
     * Processor to skip storage assignment
     */
    noStorageProcessor?: outputs.OpenpipelineEventsPipelinesPipelineStorageProcessorNoStorageProcessor;
}
export interface OpenpipelineEventsPipelinesPipelineStorageProcessorBucketAssignmentProcessor {
    /**
     * Bucket that is assigned when the record is matched
     */
    bucketName: string;
    /**
     * Name or description of the processor
     */
    description: string;
    /**
     * Indicates if the object is active
     */
    enabled: boolean;
    /**
     * Identifier of the processor. Must be unique within a stage.
     */
    id: string;
    /**
     * Matching condition to apply on incoming records
     */
    matcher: string;
    /**
     * Sample data related to the processor for documentation or testing
     */
    sampleData?: string;
}
export interface OpenpipelineEventsPipelinesPipelineStorageProcessorNoStorageProcessor {
    /**
     * Name or description of the processor
     */
    description: string;
    /**
     * Indicates if the object is active
     */
    enabled: boolean;
    /**
     * Identifier of the processor. Must be unique within a stage.
     */
    id: string;
    /**
     * Matching condition to apply on incoming records
     */
    matcher: string;
    /**
     * Sample data related to the processor for documentation or testing
     */
    sampleData?: string;
}
export interface OpenpipelineEventsRouting {
    /**
     * Dynamic routing entry
     */
    entries?: outputs.OpenpipelineEventsRoutingEntry[];
}
export interface OpenpipelineEventsRoutingEntry {
    /**
     * Indicates if the object is active
     */
    enabled: boolean;
    /**
     * Matching condition to apply on incoming records
     */
    matcher: string;
    /**
     * Unique note describing the dynamic route
     */
    note: string;
    /**
     * Identifier of the pipeline the record is routed into
     */
    pipelineId: string;
}
export interface OpenpipelineLogsEndpoints {
    /**
     * Definition of a single ingest source
     */
    endpoints?: outputs.OpenpipelineLogsEndpointsEndpoint[];
}
export interface OpenpipelineLogsEndpointsEndpoint {
    /**
     * The default bucket assigned to records for the ingest source
     */
    defaultBucket?: string;
    /**
     * Display name of the ingest source
     */
    displayName: string;
    /**
     * Indicates if the object is active
     */
    enabled: boolean;
    /**
     * The pre-processing done in the ingest source
     */
    processors?: outputs.OpenpipelineLogsEndpointsEndpointProcessors;
    /**
     * Routing strategy, either dynamic or static
     */
    routing: outputs.OpenpipelineLogsEndpointsEndpointRouting;
    /**
     * The segment of the ingest source, which is applied to the base path. Must be unique within a configuration."
     */
    segment: string;
}
export interface OpenpipelineLogsEndpointsEndpointProcessors {
    /**
     * Groups all processors applicable for processing in the EndpointDefinition.
     * Applicable processors are DqlProcessor, FieldsAddProcessor, FieldsRemoveProcessor, FieldsRenameProcessor and DropProcessor.
     */
    processors?: outputs.OpenpipelineLogsEndpointsEndpointProcessorsProcessor[];
}
export interface OpenpipelineLogsEndpointsEndpointProcessorsProcessor {
    /**
     * Processor to apply a DQL script
     */
    dqlProcessor?: outputs.OpenpipelineLogsEndpointsEndpointProcessorsProcessorDqlProcessor;
    /**
     * Processor to add fields
     */
    fieldsAddProcessor?: outputs.OpenpipelineLogsEndpointsEndpointProcessorsProcessorFieldsAddProcessor;
    /**
     * Processor to remove fields
     */
    fieldsRemoveProcessor?: outputs.OpenpipelineLogsEndpointsEndpointProcessorsProcessorFieldsRemoveProcessor;
    /**
     * Processor to rename fields
     */
    fieldsRenameProcessor?: outputs.OpenpipelineLogsEndpointsEndpointProcessorsProcessorFieldsRenameProcessor;
}
export interface OpenpipelineLogsEndpointsEndpointProcessorsProcessorDqlProcessor {
    /**
     * Name or description of the processor
     */
    description: string;
    /**
     * The DQL script to apply on the record
     */
    dqlScript: string;
    /**
     * Indicates if the object is active
     */
    enabled: boolean;
    /**
     * Identifier of the processor. Must be unique within a stage.
     */
    id: string;
    /**
     * Matching condition to apply on incoming records
     */
    matcher: string;
    /**
     * Sample data related to the processor for documentation or testing
     */
    sampleData?: string;
}
export interface OpenpipelineLogsEndpointsEndpointProcessorsProcessorFieldsAddProcessor {
    /**
     * Name or description of the processor
     */
    description: string;
    /**
     * Indicates if the object is active
     */
    enabled: boolean;
    /**
     * Field to add to the record
     */
    fields: outputs.OpenpipelineLogsEndpointsEndpointProcessorsProcessorFieldsAddProcessorField[];
    /**
     * Identifier of the processor. Must be unique within a stage.
     */
    id: string;
    /**
     * Matching condition to apply on incoming records
     */
    matcher: string;
    /**
     * Sample data related to the processor for documentation or testing
     */
    sampleData?: string;
}
export interface OpenpipelineLogsEndpointsEndpointProcessorsProcessorFieldsAddProcessorField {
    /**
     * Name of the field
     */
    name: string;
    /**
     * Value to assign to the field
     */
    value: string;
}
export interface OpenpipelineLogsEndpointsEndpointProcessorsProcessorFieldsRemoveProcessor {
    /**
     * Name or description of the processor
     */
    description: string;
    /**
     * Indicates if the object is active
     */
    enabled: boolean;
    /**
     * Field to add to the record
     */
    fields: string[];
    /**
     * Identifier of the processor. Must be unique within a stage.
     */
    id: string;
    /**
     * Matching condition to apply on incoming records
     */
    matcher: string;
    /**
     * Sample data related to the processor for documentation or testing
     */
    sampleData?: string;
}
export interface OpenpipelineLogsEndpointsEndpointProcessorsProcessorFieldsRenameProcessor {
    /**
     * Name or description of the processor
     */
    description: string;
    /**
     * Indicates if the object is active
     */
    enabled: boolean;
    /**
     * Field to rename on the record
     */
    fields: outputs.OpenpipelineLogsEndpointsEndpointProcessorsProcessorFieldsRenameProcessorField[];
    /**
     * Identifier of the processor. Must be unique within a stage.
     */
    id: string;
    /**
     * Matching condition to apply on incoming records
     */
    matcher: string;
    /**
     * Sample data related to the processor for documentation or testing
     */
    sampleData?: string;
}
export interface OpenpipelineLogsEndpointsEndpointProcessorsProcessorFieldsRenameProcessorField {
    /**
     * The field to rename
     */
    fromName: string;
    /**
     * The new field name
     */
    toName: string;
}
export interface OpenpipelineLogsEndpointsEndpointRouting {
    /**
     * Pipeline ID of the static routing
     */
    pipelineId?: string;
    /**
     * Type of routing, static or dynamic
     */
    type: string;
}
export interface OpenpipelineLogsPipelines {
    /**
     * Definition of a single pipeline
     */
    pipelines?: outputs.OpenpipelineLogsPipelinesPipeline[];
}
export interface OpenpipelineLogsPipelinesPipeline {
    /**
     * Data extraction stage configuration of the pipeline
     */
    dataExtraction?: outputs.OpenpipelineLogsPipelinesPipelineDataExtraction;
    /**
     * Display name of the pipeline
     */
    displayName: string;
    /**
     * Indicates if the object is active
     */
    enabled: boolean;
    /**
     * Identifier of the pipeline
     */
    id: string;
    /**
     * Metric extraction stage configuration of the pipeline
     */
    metricExtraction?: outputs.OpenpipelineLogsPipelinesPipelineMetricExtraction;
    /**
     * Processing stage configuration of the pipeline
     */
    processing?: outputs.OpenpipelineLogsPipelinesPipelineProcessing;
    /**
     * Security context stage configuration of the pipeline
     */
    securityContext?: outputs.OpenpipelineLogsPipelinesPipelineSecurityContext;
    /**
     * Data extraction stage configuration of the pipeline
     */
    storage?: outputs.OpenpipelineLogsPipelinesPipelineStorage;
}
export interface OpenpipelineLogsPipelinesPipelineDataExtraction {
    /**
     * Groups all processors applicable for the DataExtractionStage.
     * Applicable processors are DavisEventExtractionProcessor and BizeventExtractionProcessor.
     */
    processors?: outputs.OpenpipelineLogsPipelinesPipelineDataExtractionProcessor[];
}
export interface OpenpipelineLogsPipelinesPipelineDataExtractionProcessor {
    bizeventExtractionProcessor?: outputs.OpenpipelineLogsPipelinesPipelineDataExtractionProcessorBizeventExtractionProcessor;
    /**
     * Processor to apply a DQL script
     */
    davisEventExtractionProcessor?: outputs.OpenpipelineLogsPipelinesPipelineDataExtractionProcessorDavisEventExtractionProcessor;
}
export interface OpenpipelineLogsPipelinesPipelineDataExtractionProcessorBizeventExtractionProcessor {
    /**
     * Name or description of the processor
     */
    description: string;
    /**
     * Indicates if the object is active
     */
    enabled: boolean;
    /**
     * Strategy to assign a value
     */
    eventProvider: outputs.OpenpipelineLogsPipelinesPipelineDataExtractionProcessorBizeventExtractionProcessorEventProvider;
    /**
     * Strategy to assign a value
     */
    eventType: outputs.OpenpipelineLogsPipelinesPipelineDataExtractionProcessorBizeventExtractionProcessorEventType;
    fieldExtraction?: outputs.OpenpipelineLogsPipelinesPipelineDataExtractionProcessorBizeventExtractionProcessorFieldExtraction;
    /**
     * Identifier of the processor. Must be unique within a stage.
     */
    id: string;
    /**
     * Matching condition to apply on incoming records
     */
    matcher: string;
    /**
     * Sample data related to the processor for documentation or testing
     */
    sampleData?: string;
}
export interface OpenpipelineLogsPipelinesPipelineDataExtractionProcessorBizeventExtractionProcessorEventProvider {
    /**
     * Strategy to assign a value
     */
    constant?: string;
    /**
     * Strategy to assign a value
     */
    field?: string;
    /**
     * Strategy to assign a value
     */
    type: string;
}
export interface OpenpipelineLogsPipelinesPipelineDataExtractionProcessorBizeventExtractionProcessorEventType {
    /**
     * Strategy to assign a value
     */
    constant?: string;
    /**
     * Strategy to assign a value
     */
    field?: string;
    /**
     * Strategy to assign a value
     */
    type: string;
}
export interface OpenpipelineLogsPipelinesPipelineDataExtractionProcessorBizeventExtractionProcessorFieldExtraction {
    fields: string[];
    semantic: string;
}
export interface OpenpipelineLogsPipelinesPipelineDataExtractionProcessorDavisEventExtractionProcessor {
    /**
     * Name or description of the processor
     */
    description: string;
    /**
     * Indicates if the object is active
     */
    enabled: boolean;
    /**
     * Identifier of the processor. Must be unique within a stage.
     */
    id: string;
    /**
     * Matching condition to apply on incoming records
     */
    matcher: string;
    /**
     * List of properties for the extracted davis event
     */
    properties: outputs.OpenpipelineLogsPipelinesPipelineDataExtractionProcessorDavisEventExtractionProcessorProperty[];
    /**
     * Sample data related to the processor for documentation or testing
     */
    sampleData?: string;
}
export interface OpenpipelineLogsPipelinesPipelineDataExtractionProcessorDavisEventExtractionProcessorProperty {
    /**
     * The key to set on the davis event
     */
    key: string;
    /**
     * The value assigned to the key
     */
    value: string;
}
export interface OpenpipelineLogsPipelinesPipelineMetricExtraction {
    /**
     * Data extraction processor to use
     */
    processors?: outputs.OpenpipelineLogsPipelinesPipelineMetricExtractionProcessor[];
}
export interface OpenpipelineLogsPipelinesPipelineMetricExtractionProcessor {
    /**
     * Processor to write the occurrences as a metric
     */
    counterMetricExtractionProcessor?: outputs.OpenpipelineLogsPipelinesPipelineMetricExtractionProcessorCounterMetricExtractionProcessor;
    /**
     * Processor to extract a value from a field as a metric
     */
    valueMetricExtractionProcessor?: outputs.OpenpipelineLogsPipelinesPipelineMetricExtractionProcessorValueMetricExtractionProcessor;
}
export interface OpenpipelineLogsPipelinesPipelineMetricExtractionProcessorCounterMetricExtractionProcessor {
    /**
     * Name or description of the processor
     */
    description: string;
    /**
     * List of dimensions to add to the metric
     */
    dimensions?: string[];
    /**
     * Indicates if the object is active
     */
    enabled: boolean;
    /**
     * Identifier of the processor. Must be unique within a stage.
     */
    id: string;
    /**
     * Matching condition to apply on incoming records
     */
    matcher: string;
    /**
     * The key of the metric to write
     */
    metricKey: string;
    /**
     * Sample data related to the processor for documentation or testing
     */
    sampleData?: string;
}
export interface OpenpipelineLogsPipelinesPipelineMetricExtractionProcessorValueMetricExtractionProcessor {
    /**
     * Name or description of the processor
     */
    description: string;
    /**
     * List of dimensions to add to the metric
     */
    dimensions?: string[];
    /**
     * Indicates if the object is active
     */
    enabled: boolean;
    /**
     * The field to extract the value for the metric
     */
    field: string;
    /**
     * Identifier of the processor. Must be unique within a stage.
     */
    id: string;
    /**
     * Matching condition to apply on incoming records
     */
    matcher: string;
    /**
     * The key of the metric to write
     */
    metricKey: string;
    /**
     * Sample data related to the processor for documentation or testing
     */
    sampleData?: string;
}
export interface OpenpipelineLogsPipelinesPipelineProcessing {
    /**
     * Groups all processors applicable for the ProcessingStage.
     * Applicable processors are DqlProcessor, FieldsAddProcessor, FieldsRemoveProcessor, FieldsRenameProcessor, TechnologyProcessor and DropProcessor.
     */
    processors?: outputs.OpenpipelineLogsPipelinesPipelineProcessingProcessor[];
}
export interface OpenpipelineLogsPipelinesPipelineProcessingProcessor {
    /**
     * Processor to apply a DQL script
     */
    dqlProcessor?: outputs.OpenpipelineLogsPipelinesPipelineProcessingProcessorDqlProcessor;
    /**
     * Processor to add fields
     */
    fieldsAddProcessor?: outputs.OpenpipelineLogsPipelinesPipelineProcessingProcessorFieldsAddProcessor;
    /**
     * Processor to remove fields
     */
    fieldsRemoveProcessor?: outputs.OpenpipelineLogsPipelinesPipelineProcessingProcessorFieldsRemoveProcessor;
    /**
     * Processor to rename fields
     */
    fieldsRenameProcessor?: outputs.OpenpipelineLogsPipelinesPipelineProcessingProcessorFieldsRenameProcessor;
    /**
     * Processor to apply a technology processors
     */
    technologyProcessor?: outputs.OpenpipelineLogsPipelinesPipelineProcessingProcessorTechnologyProcessor;
}
export interface OpenpipelineLogsPipelinesPipelineProcessingProcessorDqlProcessor {
    /**
     * Name or description of the processor
     */
    description: string;
    /**
     * The DQL script to apply on the record
     */
    dqlScript: string;
    /**
     * Indicates if the object is active
     */
    enabled: boolean;
    /**
     * Identifier of the processor. Must be unique within a stage.
     */
    id: string;
    /**
     * Matching condition to apply on incoming records
     */
    matcher: string;
    /**
     * Sample data related to the processor for documentation or testing
     */
    sampleData?: string;
}
export interface OpenpipelineLogsPipelinesPipelineProcessingProcessorFieldsAddProcessor {
    /**
     * Name or description of the processor
     */
    description: string;
    /**
     * Indicates if the object is active
     */
    enabled: boolean;
    /**
     * Field to add to the record
     */
    fields: outputs.OpenpipelineLogsPipelinesPipelineProcessingProcessorFieldsAddProcessorField[];
    /**
     * Identifier of the processor. Must be unique within a stage.
     */
    id: string;
    /**
     * Matching condition to apply on incoming records
     */
    matcher: string;
    /**
     * Sample data related to the processor for documentation or testing
     */
    sampleData?: string;
}
export interface OpenpipelineLogsPipelinesPipelineProcessingProcessorFieldsAddProcessorField {
    /**
     * Name of the field
     */
    name: string;
    /**
     * Value to assign to the field
     */
    value: string;
}
export interface OpenpipelineLogsPipelinesPipelineProcessingProcessorFieldsRemoveProcessor {
    /**
     * Name or description of the processor
     */
    description: string;
    /**
     * Indicates if the object is active
     */
    enabled: boolean;
    /**
     * Field to add to the record
     */
    fields: string[];
    /**
     * Identifier of the processor. Must be unique within a stage.
     */
    id: string;
    /**
     * Matching condition to apply on incoming records
     */
    matcher: string;
    /**
     * Sample data related to the processor for documentation or testing
     */
    sampleData?: string;
}
export interface OpenpipelineLogsPipelinesPipelineProcessingProcessorFieldsRenameProcessor {
    /**
     * Name or description of the processor
     */
    description: string;
    /**
     * Indicates if the object is active
     */
    enabled: boolean;
    /**
     * Field to rename on the record
     */
    fields: outputs.OpenpipelineLogsPipelinesPipelineProcessingProcessorFieldsRenameProcessorField[];
    /**
     * Identifier of the processor. Must be unique within a stage.
     */
    id: string;
    /**
     * Matching condition to apply on incoming records
     */
    matcher: string;
    /**
     * Sample data related to the processor for documentation or testing
     */
    sampleData?: string;
}
export interface OpenpipelineLogsPipelinesPipelineProcessingProcessorFieldsRenameProcessorField {
    /**
     * The field to rename
     */
    fromName: string;
    /**
     * The new field name
     */
    toName: string;
}
export interface OpenpipelineLogsPipelinesPipelineProcessingProcessorTechnologyProcessor {
    /**
     * Name or description of the processor
     */
    description: string;
    /**
     * Indicates if the object is active
     */
    enabled: boolean;
    /**
     * Identifier of the processor. Must be unique within a stage.
     */
    id: string;
    /**
     * Matching condition to apply on incoming records
     */
    matcher: string;
    /**
     * Sample data related to the processor for documentation or testing
     */
    sampleData?: string;
    /**
     * Identifier of the processor. Must be unique within a stage.
     */
    technologyId: string;
}
export interface OpenpipelineLogsPipelinesPipelineSecurityContext {
    /**
     * Groups all processors applicable for the SecurityContextStage.
     * Applicable processor is SecurityContextProcessor.
     */
    processors?: outputs.OpenpipelineLogsPipelinesPipelineSecurityContextProcessor[];
}
export interface OpenpipelineLogsPipelinesPipelineSecurityContextProcessor {
    /**
     * Processor to set the security context field
     */
    securityContextProcessor?: outputs.OpenpipelineLogsPipelinesPipelineSecurityContextProcessorSecurityContextProcessor;
}
export interface OpenpipelineLogsPipelinesPipelineSecurityContextProcessorSecurityContextProcessor {
    /**
     * Name or description of the processor
     */
    description: string;
    /**
     * Indicates if the object is active
     */
    enabled: boolean;
    /**
     * Identifier of the processor. Must be unique within a stage.
     */
    id: string;
    /**
     * Matching condition to apply on incoming records
     */
    matcher: string;
    /**
     * Sample data related to the processor for documentation or testing
     */
    sampleData?: string;
    /**
     * Strategy to assign a value
     */
    value: outputs.OpenpipelineLogsPipelinesPipelineSecurityContextProcessorSecurityContextProcessorValue;
}
export interface OpenpipelineLogsPipelinesPipelineSecurityContextProcessorSecurityContextProcessorValue {
    /**
     * Strategy to assign a value
     */
    constant?: string;
    /**
     * Strategy to assign a value
     */
    field?: string;
    /**
     * Strategy to assign a value
     */
    type: string;
}
export interface OpenpipelineLogsPipelinesPipelineStorage {
    /**
     * Default bucket assigned to records which do not match any other storage processor
     */
    catchAllBucketName?: string;
    /**
     * Groups all processors applicable for the StorageStage.
     * Applicable processors are BucketAssignmentProcessor and NoStorageProcessor.
     */
    processors?: outputs.OpenpipelineLogsPipelinesPipelineStorageProcessor[];
}
export interface OpenpipelineLogsPipelinesPipelineStorageProcessor {
    /**
     * Processor to assign a bucket
     */
    bucketAssignmentProcessor?: outputs.OpenpipelineLogsPipelinesPipelineStorageProcessorBucketAssignmentProcessor;
    /**
     * Processor to skip storage assignment
     */
    noStorageProcessor?: outputs.OpenpipelineLogsPipelinesPipelineStorageProcessorNoStorageProcessor;
}
export interface OpenpipelineLogsPipelinesPipelineStorageProcessorBucketAssignmentProcessor {
    /**
     * Bucket that is assigned when the record is matched
     */
    bucketName: string;
    /**
     * Name or description of the processor
     */
    description: string;
    /**
     * Indicates if the object is active
     */
    enabled: boolean;
    /**
     * Identifier of the processor. Must be unique within a stage.
     */
    id: string;
    /**
     * Matching condition to apply on incoming records
     */
    matcher: string;
    /**
     * Sample data related to the processor for documentation or testing
     */
    sampleData?: string;
}
export interface OpenpipelineLogsPipelinesPipelineStorageProcessorNoStorageProcessor {
    /**
     * Name or description of the processor
     */
    description: string;
    /**
     * Indicates if the object is active
     */
    enabled: boolean;
    /**
     * Identifier of the processor. Must be unique within a stage.
     */
    id: string;
    /**
     * Matching condition to apply on incoming records
     */
    matcher: string;
    /**
     * Sample data related to the processor for documentation or testing
     */
    sampleData?: string;
}
export interface OpenpipelineLogsRouting {
    /**
     * Dynamic routing entry
     */
    entries?: outputs.OpenpipelineLogsRoutingEntry[];
}
export interface OpenpipelineLogsRoutingEntry {
    /**
     * Indicates if the object is active
     */
    enabled: boolean;
    /**
     * Matching condition to apply on incoming records
     */
    matcher: string;
    /**
     * Unique note describing the dynamic route
     */
    note: string;
    /**
     * Identifier of the pipeline the record is routed into
     */
    pipelineId: string;
}
export interface OpenpipelineSdlcEventsEndpoints {
    /**
     * Definition of a single ingest source
     */
    endpoints?: outputs.OpenpipelineSdlcEventsEndpointsEndpoint[];
}
export interface OpenpipelineSdlcEventsEndpointsEndpoint {
    /**
     * The default bucket assigned to records for the ingest source
     */
    defaultBucket?: string;
    /**
     * Display name of the ingest source
     */
    displayName: string;
    /**
     * Indicates if the object is active
     */
    enabled: boolean;
    /**
     * The pre-processing done in the ingest source
     */
    processors?: outputs.OpenpipelineSdlcEventsEndpointsEndpointProcessors;
    /**
     * Routing strategy, either dynamic or static
     */
    routing: outputs.OpenpipelineSdlcEventsEndpointsEndpointRouting;
    /**
     * The segment of the ingest source, which is applied to the base path. Must be unique within a configuration."
     */
    segment: string;
}
export interface OpenpipelineSdlcEventsEndpointsEndpointProcessors {
    /**
     * Groups all processors applicable for processing in the EndpointDefinition.
     * Applicable processors are DqlProcessor, FieldsAddProcessor, FieldsRemoveProcessor, FieldsRenameProcessor and DropProcessor.
     */
    processors?: outputs.OpenpipelineSdlcEventsEndpointsEndpointProcessorsProcessor[];
}
export interface OpenpipelineSdlcEventsEndpointsEndpointProcessorsProcessor {
    /**
     * Processor to apply a DQL script
     */
    dqlProcessor?: outputs.OpenpipelineSdlcEventsEndpointsEndpointProcessorsProcessorDqlProcessor;
    /**
     * Processor to add fields
     */
    fieldsAddProcessor?: outputs.OpenpipelineSdlcEventsEndpointsEndpointProcessorsProcessorFieldsAddProcessor;
    /**
     * Processor to remove fields
     */
    fieldsRemoveProcessor?: outputs.OpenpipelineSdlcEventsEndpointsEndpointProcessorsProcessorFieldsRemoveProcessor;
    /**
     * Processor to rename fields
     */
    fieldsRenameProcessor?: outputs.OpenpipelineSdlcEventsEndpointsEndpointProcessorsProcessorFieldsRenameProcessor;
}
export interface OpenpipelineSdlcEventsEndpointsEndpointProcessorsProcessorDqlProcessor {
    /**
     * Name or description of the processor
     */
    description: string;
    /**
     * The DQL script to apply on the record
     */
    dqlScript: string;
    /**
     * Indicates if the object is active
     */
    enabled: boolean;
    /**
     * Identifier of the processor. Must be unique within a stage.
     */
    id: string;
    /**
     * Matching condition to apply on incoming records
     */
    matcher: string;
    /**
     * Sample data related to the processor for documentation or testing
     */
    sampleData?: string;
}
export interface OpenpipelineSdlcEventsEndpointsEndpointProcessorsProcessorFieldsAddProcessor {
    /**
     * Name or description of the processor
     */
    description: string;
    /**
     * Indicates if the object is active
     */
    enabled: boolean;
    /**
     * Field to add to the record
     */
    fields: outputs.OpenpipelineSdlcEventsEndpointsEndpointProcessorsProcessorFieldsAddProcessorField[];
    /**
     * Identifier of the processor. Must be unique within a stage.
     */
    id: string;
    /**
     * Matching condition to apply on incoming records
     */
    matcher: string;
    /**
     * Sample data related to the processor for documentation or testing
     */
    sampleData?: string;
}
export interface OpenpipelineSdlcEventsEndpointsEndpointProcessorsProcessorFieldsAddProcessorField {
    /**
     * Name of the field
     */
    name: string;
    /**
     * Value to assign to the field
     */
    value: string;
}
export interface OpenpipelineSdlcEventsEndpointsEndpointProcessorsProcessorFieldsRemoveProcessor {
    /**
     * Name or description of the processor
     */
    description: string;
    /**
     * Indicates if the object is active
     */
    enabled: boolean;
    /**
     * Field to add to the record
     */
    fields: string[];
    /**
     * Identifier of the processor. Must be unique within a stage.
     */
    id: string;
    /**
     * Matching condition to apply on incoming records
     */
    matcher: string;
    /**
     * Sample data related to the processor for documentation or testing
     */
    sampleData?: string;
}
export interface OpenpipelineSdlcEventsEndpointsEndpointProcessorsProcessorFieldsRenameProcessor {
    /**
     * Name or description of the processor
     */
    description: string;
    /**
     * Indicates if the object is active
     */
    enabled: boolean;
    /**
     * Field to rename on the record
     */
    fields: outputs.OpenpipelineSdlcEventsEndpointsEndpointProcessorsProcessorFieldsRenameProcessorField[];
    /**
     * Identifier of the processor. Must be unique within a stage.
     */
    id: string;
    /**
     * Matching condition to apply on incoming records
     */
    matcher: string;
    /**
     * Sample data related to the processor for documentation or testing
     */
    sampleData?: string;
}
export interface OpenpipelineSdlcEventsEndpointsEndpointProcessorsProcessorFieldsRenameProcessorField {
    /**
     * The field to rename
     */
    fromName: string;
    /**
     * The new field name
     */
    toName: string;
}
export interface OpenpipelineSdlcEventsEndpointsEndpointRouting {
    /**
     * Pipeline ID of the static routing
     */
    pipelineId?: string;
    /**
     * Type of routing, static or dynamic
     */
    type: string;
}
export interface OpenpipelineSdlcEventsPipelines {
    /**
     * Definition of a single pipeline
     */
    pipelines?: outputs.OpenpipelineSdlcEventsPipelinesPipeline[];
}
export interface OpenpipelineSdlcEventsPipelinesPipeline {
    /**
     * Data extraction stage configuration of the pipeline
     */
    dataExtraction?: outputs.OpenpipelineSdlcEventsPipelinesPipelineDataExtraction;
    /**
     * Display name of the pipeline
     */
    displayName: string;
    /**
     * Indicates if the object is active
     */
    enabled: boolean;
    /**
     * Identifier of the pipeline
     */
    id: string;
    /**
     * Metric extraction stage configuration of the pipeline
     */
    metricExtraction?: outputs.OpenpipelineSdlcEventsPipelinesPipelineMetricExtraction;
    /**
     * Processing stage configuration of the pipeline
     */
    processing?: outputs.OpenpipelineSdlcEventsPipelinesPipelineProcessing;
    /**
     * Security context stage configuration of the pipeline
     */
    securityContext?: outputs.OpenpipelineSdlcEventsPipelinesPipelineSecurityContext;
    /**
     * Data extraction stage configuration of the pipeline
     */
    storage?: outputs.OpenpipelineSdlcEventsPipelinesPipelineStorage;
}
export interface OpenpipelineSdlcEventsPipelinesPipelineDataExtraction {
    /**
     * Groups all processors applicable for the DataExtractionStage.
     * Applicable processors are DavisEventExtractionProcessor and BizeventExtractionProcessor.
     */
    processors?: outputs.OpenpipelineSdlcEventsPipelinesPipelineDataExtractionProcessor[];
}
export interface OpenpipelineSdlcEventsPipelinesPipelineDataExtractionProcessor {
    bizeventExtractionProcessor?: outputs.OpenpipelineSdlcEventsPipelinesPipelineDataExtractionProcessorBizeventExtractionProcessor;
    /**
     * Processor to apply a DQL script
     */
    davisEventExtractionProcessor?: outputs.OpenpipelineSdlcEventsPipelinesPipelineDataExtractionProcessorDavisEventExtractionProcessor;
}
export interface OpenpipelineSdlcEventsPipelinesPipelineDataExtractionProcessorBizeventExtractionProcessor {
    /**
     * Name or description of the processor
     */
    description: string;
    /**
     * Indicates if the object is active
     */
    enabled: boolean;
    /**
     * Strategy to assign a value
     */
    eventProvider: outputs.OpenpipelineSdlcEventsPipelinesPipelineDataExtractionProcessorBizeventExtractionProcessorEventProvider;
    /**
     * Strategy to assign a value
     */
    eventType: outputs.OpenpipelineSdlcEventsPipelinesPipelineDataExtractionProcessorBizeventExtractionProcessorEventType;
    fieldExtraction?: outputs.OpenpipelineSdlcEventsPipelinesPipelineDataExtractionProcessorBizeventExtractionProcessorFieldExtraction;
    /**
     * Identifier of the processor. Must be unique within a stage.
     */
    id: string;
    /**
     * Matching condition to apply on incoming records
     */
    matcher: string;
    /**
     * Sample data related to the processor for documentation or testing
     */
    sampleData?: string;
}
export interface OpenpipelineSdlcEventsPipelinesPipelineDataExtractionProcessorBizeventExtractionProcessorEventProvider {
    /**
     * Strategy to assign a value
     */
    constant?: string;
    /**
     * Strategy to assign a value
     */
    field?: string;
    /**
     * Strategy to assign a value
     */
    type: string;
}
export interface OpenpipelineSdlcEventsPipelinesPipelineDataExtractionProcessorBizeventExtractionProcessorEventType {
    /**
     * Strategy to assign a value
     */
    constant?: string;
    /**
     * Strategy to assign a value
     */
    field?: string;
    /**
     * Strategy to assign a value
     */
    type: string;
}
export interface OpenpipelineSdlcEventsPipelinesPipelineDataExtractionProcessorBizeventExtractionProcessorFieldExtraction {
    fields: string[];
    semantic: string;
}
export interface OpenpipelineSdlcEventsPipelinesPipelineDataExtractionProcessorDavisEventExtractionProcessor {
    /**
     * Name or description of the processor
     */
    description: string;
    /**
     * Indicates if the object is active
     */
    enabled: boolean;
    /**
     * Identifier of the processor. Must be unique within a stage.
     */
    id: string;
    /**
     * Matching condition to apply on incoming records
     */
    matcher: string;
    /**
     * List of properties for the extracted davis event
     */
    properties: outputs.OpenpipelineSdlcEventsPipelinesPipelineDataExtractionProcessorDavisEventExtractionProcessorProperty[];
    /**
     * Sample data related to the processor for documentation or testing
     */
    sampleData?: string;
}
export interface OpenpipelineSdlcEventsPipelinesPipelineDataExtractionProcessorDavisEventExtractionProcessorProperty {
    /**
     * The key to set on the davis event
     */
    key: string;
    /**
     * The value assigned to the key
     */
    value: string;
}
export interface OpenpipelineSdlcEventsPipelinesPipelineMetricExtraction {
    /**
     * Data extraction processor to use
     */
    processors?: outputs.OpenpipelineSdlcEventsPipelinesPipelineMetricExtractionProcessor[];
}
export interface OpenpipelineSdlcEventsPipelinesPipelineMetricExtractionProcessor {
    /**
     * Processor to write the occurrences as a metric
     */
    counterMetricExtractionProcessor?: outputs.OpenpipelineSdlcEventsPipelinesPipelineMetricExtractionProcessorCounterMetricExtractionProcessor;
    /**
     * Processor to extract a value from a field as a metric
     */
    valueMetricExtractionProcessor?: outputs.OpenpipelineSdlcEventsPipelinesPipelineMetricExtractionProcessorValueMetricExtractionProcessor;
}
export interface OpenpipelineSdlcEventsPipelinesPipelineMetricExtractionProcessorCounterMetricExtractionProcessor {
    /**
     * Name or description of the processor
     */
    description: string;
    /**
     * List of dimensions to add to the metric
     */
    dimensions?: string[];
    /**
     * Indicates if the object is active
     */
    enabled: boolean;
    /**
     * Identifier of the processor. Must be unique within a stage.
     */
    id: string;
    /**
     * Matching condition to apply on incoming records
     */
    matcher: string;
    /**
     * The key of the metric to write
     */
    metricKey: string;
    /**
     * Sample data related to the processor for documentation or testing
     */
    sampleData?: string;
}
export interface OpenpipelineSdlcEventsPipelinesPipelineMetricExtractionProcessorValueMetricExtractionProcessor {
    /**
     * Name or description of the processor
     */
    description: string;
    /**
     * List of dimensions to add to the metric
     */
    dimensions?: string[];
    /**
     * Indicates if the object is active
     */
    enabled: boolean;
    /**
     * The field to extract the value for the metric
     */
    field: string;
    /**
     * Identifier of the processor. Must be unique within a stage.
     */
    id: string;
    /**
     * Matching condition to apply on incoming records
     */
    matcher: string;
    /**
     * The key of the metric to write
     */
    metricKey: string;
    /**
     * Sample data related to the processor for documentation or testing
     */
    sampleData?: string;
}
export interface OpenpipelineSdlcEventsPipelinesPipelineProcessing {
    /**
     * Groups all processors applicable for the ProcessingStage.
     * Applicable processors are DqlProcessor, FieldsAddProcessor, FieldsRemoveProcessor, FieldsRenameProcessor, TechnologyProcessor and DropProcessor.
     */
    processors?: outputs.OpenpipelineSdlcEventsPipelinesPipelineProcessingProcessor[];
}
export interface OpenpipelineSdlcEventsPipelinesPipelineProcessingProcessor {
    /**
     * Processor to apply a DQL script
     */
    dqlProcessor?: outputs.OpenpipelineSdlcEventsPipelinesPipelineProcessingProcessorDqlProcessor;
    /**
     * Processor to add fields
     */
    fieldsAddProcessor?: outputs.OpenpipelineSdlcEventsPipelinesPipelineProcessingProcessorFieldsAddProcessor;
    /**
     * Processor to remove fields
     */
    fieldsRemoveProcessor?: outputs.OpenpipelineSdlcEventsPipelinesPipelineProcessingProcessorFieldsRemoveProcessor;
    /**
     * Processor to rename fields
     */
    fieldsRenameProcessor?: outputs.OpenpipelineSdlcEventsPipelinesPipelineProcessingProcessorFieldsRenameProcessor;
    /**
     * Processor to apply a technology processors
     */
    technologyProcessor?: outputs.OpenpipelineSdlcEventsPipelinesPipelineProcessingProcessorTechnologyProcessor;
}
export interface OpenpipelineSdlcEventsPipelinesPipelineProcessingProcessorDqlProcessor {
    /**
     * Name or description of the processor
     */
    description: string;
    /**
     * The DQL script to apply on the record
     */
    dqlScript: string;
    /**
     * Indicates if the object is active
     */
    enabled: boolean;
    /**
     * Identifier of the processor. Must be unique within a stage.
     */
    id: string;
    /**
     * Matching condition to apply on incoming records
     */
    matcher: string;
    /**
     * Sample data related to the processor for documentation or testing
     */
    sampleData?: string;
}
export interface OpenpipelineSdlcEventsPipelinesPipelineProcessingProcessorFieldsAddProcessor {
    /**
     * Name or description of the processor
     */
    description: string;
    /**
     * Indicates if the object is active
     */
    enabled: boolean;
    /**
     * Field to add to the record
     */
    fields: outputs.OpenpipelineSdlcEventsPipelinesPipelineProcessingProcessorFieldsAddProcessorField[];
    /**
     * Identifier of the processor. Must be unique within a stage.
     */
    id: string;
    /**
     * Matching condition to apply on incoming records
     */
    matcher: string;
    /**
     * Sample data related to the processor for documentation or testing
     */
    sampleData?: string;
}
export interface OpenpipelineSdlcEventsPipelinesPipelineProcessingProcessorFieldsAddProcessorField {
    /**
     * Name of the field
     */
    name: string;
    /**
     * Value to assign to the field
     */
    value: string;
}
export interface OpenpipelineSdlcEventsPipelinesPipelineProcessingProcessorFieldsRemoveProcessor {
    /**
     * Name or description of the processor
     */
    description: string;
    /**
     * Indicates if the object is active
     */
    enabled: boolean;
    /**
     * Field to add to the record
     */
    fields: string[];
    /**
     * Identifier of the processor. Must be unique within a stage.
     */
    id: string;
    /**
     * Matching condition to apply on incoming records
     */
    matcher: string;
    /**
     * Sample data related to the processor for documentation or testing
     */
    sampleData?: string;
}
export interface OpenpipelineSdlcEventsPipelinesPipelineProcessingProcessorFieldsRenameProcessor {
    /**
     * Name or description of the processor
     */
    description: string;
    /**
     * Indicates if the object is active
     */
    enabled: boolean;
    /**
     * Field to rename on the record
     */
    fields: outputs.OpenpipelineSdlcEventsPipelinesPipelineProcessingProcessorFieldsRenameProcessorField[];
    /**
     * Identifier of the processor. Must be unique within a stage.
     */
    id: string;
    /**
     * Matching condition to apply on incoming records
     */
    matcher: string;
    /**
     * Sample data related to the processor for documentation or testing
     */
    sampleData?: string;
}
export interface OpenpipelineSdlcEventsPipelinesPipelineProcessingProcessorFieldsRenameProcessorField {
    /**
     * The field to rename
     */
    fromName: string;
    /**
     * The new field name
     */
    toName: string;
}
export interface OpenpipelineSdlcEventsPipelinesPipelineProcessingProcessorTechnologyProcessor {
    /**
     * Name or description of the processor
     */
    description: string;
    /**
     * Indicates if the object is active
     */
    enabled: boolean;
    /**
     * Identifier of the processor. Must be unique within a stage.
     */
    id: string;
    /**
     * Matching condition to apply on incoming records
     */
    matcher: string;
    /**
     * Sample data related to the processor for documentation or testing
     */
    sampleData?: string;
    /**
     * Identifier of the processor. Must be unique within a stage.
     */
    technologyId: string;
}
export interface OpenpipelineSdlcEventsPipelinesPipelineSecurityContext {
    /**
     * Groups all processors applicable for the SecurityContextStage.
     * Applicable processor is SecurityContextProcessor.
     */
    processors?: outputs.OpenpipelineSdlcEventsPipelinesPipelineSecurityContextProcessor[];
}
export interface OpenpipelineSdlcEventsPipelinesPipelineSecurityContextProcessor {
    /**
     * Processor to set the security context field
     */
    securityContextProcessor?: outputs.OpenpipelineSdlcEventsPipelinesPipelineSecurityContextProcessorSecurityContextProcessor;
}
export interface OpenpipelineSdlcEventsPipelinesPipelineSecurityContextProcessorSecurityContextProcessor {
    /**
     * Name or description of the processor
     */
    description: string;
    /**
     * Indicates if the object is active
     */
    enabled: boolean;
    /**
     * Identifier of the processor. Must be unique within a stage.
     */
    id: string;
    /**
     * Matching condition to apply on incoming records
     */
    matcher: string;
    /**
     * Sample data related to the processor for documentation or testing
     */
    sampleData?: string;
    /**
     * Strategy to assign a value
     */
    value: outputs.OpenpipelineSdlcEventsPipelinesPipelineSecurityContextProcessorSecurityContextProcessorValue;
}
export interface OpenpipelineSdlcEventsPipelinesPipelineSecurityContextProcessorSecurityContextProcessorValue {
    /**
     * Strategy to assign a value
     */
    constant?: string;
    /**
     * Strategy to assign a value
     */
    field?: string;
    /**
     * Strategy to assign a value
     */
    type: string;
}
export interface OpenpipelineSdlcEventsPipelinesPipelineStorage {
    /**
     * Default bucket assigned to records which do not match any other storage processor
     */
    catchAllBucketName?: string;
    /**
     * Groups all processors applicable for the StorageStage.
     * Applicable processors are BucketAssignmentProcessor and NoStorageProcessor.
     */
    processors?: outputs.OpenpipelineSdlcEventsPipelinesPipelineStorageProcessor[];
}
export interface OpenpipelineSdlcEventsPipelinesPipelineStorageProcessor {
    /**
     * Processor to assign a bucket
     */
    bucketAssignmentProcessor?: outputs.OpenpipelineSdlcEventsPipelinesPipelineStorageProcessorBucketAssignmentProcessor;
    /**
     * Processor to skip storage assignment
     */
    noStorageProcessor?: outputs.OpenpipelineSdlcEventsPipelinesPipelineStorageProcessorNoStorageProcessor;
}
export interface OpenpipelineSdlcEventsPipelinesPipelineStorageProcessorBucketAssignmentProcessor {
    /**
     * Bucket that is assigned when the record is matched
     */
    bucketName: string;
    /**
     * Name or description of the processor
     */
    description: string;
    /**
     * Indicates if the object is active
     */
    enabled: boolean;
    /**
     * Identifier of the processor. Must be unique within a stage.
     */
    id: string;
    /**
     * Matching condition to apply on incoming records
     */
    matcher: string;
    /**
     * Sample data related to the processor for documentation or testing
     */
    sampleData?: string;
}
export interface OpenpipelineSdlcEventsPipelinesPipelineStorageProcessorNoStorageProcessor {
    /**
     * Name or description of the processor
     */
    description: string;
    /**
     * Indicates if the object is active
     */
    enabled: boolean;
    /**
     * Identifier of the processor. Must be unique within a stage.
     */
    id: string;
    /**
     * Matching condition to apply on incoming records
     */
    matcher: string;
    /**
     * Sample data related to the processor for documentation or testing
     */
    sampleData?: string;
}
export interface OpenpipelineSdlcEventsRouting {
    /**
     * Dynamic routing entry
     */
    entries?: outputs.OpenpipelineSdlcEventsRoutingEntry[];
}
export interface OpenpipelineSdlcEventsRoutingEntry {
    /**
     * Indicates if the object is active
     */
    enabled: boolean;
    /**
     * Matching condition to apply on incoming records
     */
    matcher: string;
    /**
     * Unique note describing the dynamic route
     */
    note: string;
    /**
     * Identifier of the pipeline the record is routed into
     */
    pipelineId: string;
}
export interface OpenpipelineSecurityEventsEndpoints {
    /**
     * Definition of a single ingest source
     */
    endpoints?: outputs.OpenpipelineSecurityEventsEndpointsEndpoint[];
}
export interface OpenpipelineSecurityEventsEndpointsEndpoint {
    /**
     * The default bucket assigned to records for the ingest source
     */
    defaultBucket?: string;
    /**
     * Display name of the ingest source
     */
    displayName: string;
    /**
     * Indicates if the object is active
     */
    enabled: boolean;
    /**
     * The pre-processing done in the ingest source
     */
    processors?: outputs.OpenpipelineSecurityEventsEndpointsEndpointProcessors;
    /**
     * Routing strategy, either dynamic or static
     */
    routing: outputs.OpenpipelineSecurityEventsEndpointsEndpointRouting;
    /**
     * The segment of the ingest source, which is applied to the base path. Must be unique within a configuration."
     */
    segment: string;
}
export interface OpenpipelineSecurityEventsEndpointsEndpointProcessors {
    /**
     * Groups all processors applicable for processing in the EndpointDefinition.
     * Applicable processors are DqlProcessor, FieldsAddProcessor, FieldsRemoveProcessor, FieldsRenameProcessor and DropProcessor.
     */
    processors?: outputs.OpenpipelineSecurityEventsEndpointsEndpointProcessorsProcessor[];
}
export interface OpenpipelineSecurityEventsEndpointsEndpointProcessorsProcessor {
    /**
     * Processor to apply a DQL script
     */
    dqlProcessor?: outputs.OpenpipelineSecurityEventsEndpointsEndpointProcessorsProcessorDqlProcessor;
    /**
     * Processor to add fields
     */
    fieldsAddProcessor?: outputs.OpenpipelineSecurityEventsEndpointsEndpointProcessorsProcessorFieldsAddProcessor;
    /**
     * Processor to remove fields
     */
    fieldsRemoveProcessor?: outputs.OpenpipelineSecurityEventsEndpointsEndpointProcessorsProcessorFieldsRemoveProcessor;
    /**
     * Processor to rename fields
     */
    fieldsRenameProcessor?: outputs.OpenpipelineSecurityEventsEndpointsEndpointProcessorsProcessorFieldsRenameProcessor;
}
export interface OpenpipelineSecurityEventsEndpointsEndpointProcessorsProcessorDqlProcessor {
    /**
     * Name or description of the processor
     */
    description: string;
    /**
     * The DQL script to apply on the record
     */
    dqlScript: string;
    /**
     * Indicates if the object is active
     */
    enabled: boolean;
    /**
     * Identifier of the processor. Must be unique within a stage.
     */
    id: string;
    /**
     * Matching condition to apply on incoming records
     */
    matcher: string;
    /**
     * Sample data related to the processor for documentation or testing
     */
    sampleData?: string;
}
export interface OpenpipelineSecurityEventsEndpointsEndpointProcessorsProcessorFieldsAddProcessor {
    /**
     * Name or description of the processor
     */
    description: string;
    /**
     * Indicates if the object is active
     */
    enabled: boolean;
    /**
     * Field to add to the record
     */
    fields: outputs.OpenpipelineSecurityEventsEndpointsEndpointProcessorsProcessorFieldsAddProcessorField[];
    /**
     * Identifier of the processor. Must be unique within a stage.
     */
    id: string;
    /**
     * Matching condition to apply on incoming records
     */
    matcher: string;
    /**
     * Sample data related to the processor for documentation or testing
     */
    sampleData?: string;
}
export interface OpenpipelineSecurityEventsEndpointsEndpointProcessorsProcessorFieldsAddProcessorField {
    /**
     * Name of the field
     */
    name: string;
    /**
     * Value to assign to the field
     */
    value: string;
}
export interface OpenpipelineSecurityEventsEndpointsEndpointProcessorsProcessorFieldsRemoveProcessor {
    /**
     * Name or description of the processor
     */
    description: string;
    /**
     * Indicates if the object is active
     */
    enabled: boolean;
    /**
     * Field to add to the record
     */
    fields: string[];
    /**
     * Identifier of the processor. Must be unique within a stage.
     */
    id: string;
    /**
     * Matching condition to apply on incoming records
     */
    matcher: string;
    /**
     * Sample data related to the processor for documentation or testing
     */
    sampleData?: string;
}
export interface OpenpipelineSecurityEventsEndpointsEndpointProcessorsProcessorFieldsRenameProcessor {
    /**
     * Name or description of the processor
     */
    description: string;
    /**
     * Indicates if the object is active
     */
    enabled: boolean;
    /**
     * Field to rename on the record
     */
    fields: outputs.OpenpipelineSecurityEventsEndpointsEndpointProcessorsProcessorFieldsRenameProcessorField[];
    /**
     * Identifier of the processor. Must be unique within a stage.
     */
    id: string;
    /**
     * Matching condition to apply on incoming records
     */
    matcher: string;
    /**
     * Sample data related to the processor for documentation or testing
     */
    sampleData?: string;
}
export interface OpenpipelineSecurityEventsEndpointsEndpointProcessorsProcessorFieldsRenameProcessorField {
    /**
     * The field to rename
     */
    fromName: string;
    /**
     * The new field name
     */
    toName: string;
}
export interface OpenpipelineSecurityEventsEndpointsEndpointRouting {
    /**
     * Pipeline ID of the static routing
     */
    pipelineId?: string;
    /**
     * Type of routing, static or dynamic
     */
    type: string;
}
export interface OpenpipelineSecurityEventsPipelines {
    /**
     * Definition of a single pipeline
     */
    pipelines?: outputs.OpenpipelineSecurityEventsPipelinesPipeline[];
}
export interface OpenpipelineSecurityEventsPipelinesPipeline {
    /**
     * Data extraction stage configuration of the pipeline
     */
    dataExtraction?: outputs.OpenpipelineSecurityEventsPipelinesPipelineDataExtraction;
    /**
     * Display name of the pipeline
     */
    displayName: string;
    /**
     * Indicates if the object is active
     */
    enabled: boolean;
    /**
     * Identifier of the pipeline
     */
    id: string;
    /**
     * Metric extraction stage configuration of the pipeline
     */
    metricExtraction?: outputs.OpenpipelineSecurityEventsPipelinesPipelineMetricExtraction;
    /**
     * Processing stage configuration of the pipeline
     */
    processing?: outputs.OpenpipelineSecurityEventsPipelinesPipelineProcessing;
    /**
     * Security context stage configuration of the pipeline
     */
    securityContext?: outputs.OpenpipelineSecurityEventsPipelinesPipelineSecurityContext;
    /**
     * Data extraction stage configuration of the pipeline
     */
    storage?: outputs.OpenpipelineSecurityEventsPipelinesPipelineStorage;
}
export interface OpenpipelineSecurityEventsPipelinesPipelineDataExtraction {
    /**
     * Groups all processors applicable for the DataExtractionStage.
     * Applicable processors are DavisEventExtractionProcessor and BizeventExtractionProcessor.
     */
    processors?: outputs.OpenpipelineSecurityEventsPipelinesPipelineDataExtractionProcessor[];
}
export interface OpenpipelineSecurityEventsPipelinesPipelineDataExtractionProcessor {
    bizeventExtractionProcessor?: outputs.OpenpipelineSecurityEventsPipelinesPipelineDataExtractionProcessorBizeventExtractionProcessor;
    /**
     * Processor to apply a DQL script
     */
    davisEventExtractionProcessor?: outputs.OpenpipelineSecurityEventsPipelinesPipelineDataExtractionProcessorDavisEventExtractionProcessor;
}
export interface OpenpipelineSecurityEventsPipelinesPipelineDataExtractionProcessorBizeventExtractionProcessor {
    /**
     * Name or description of the processor
     */
    description: string;
    /**
     * Indicates if the object is active
     */
    enabled: boolean;
    /**
     * Strategy to assign a value
     */
    eventProvider: outputs.OpenpipelineSecurityEventsPipelinesPipelineDataExtractionProcessorBizeventExtractionProcessorEventProvider;
    /**
     * Strategy to assign a value
     */
    eventType: outputs.OpenpipelineSecurityEventsPipelinesPipelineDataExtractionProcessorBizeventExtractionProcessorEventType;
    fieldExtraction?: outputs.OpenpipelineSecurityEventsPipelinesPipelineDataExtractionProcessorBizeventExtractionProcessorFieldExtraction;
    /**
     * Identifier of the processor. Must be unique within a stage.
     */
    id: string;
    /**
     * Matching condition to apply on incoming records
     */
    matcher: string;
    /**
     * Sample data related to the processor for documentation or testing
     */
    sampleData?: string;
}
export interface OpenpipelineSecurityEventsPipelinesPipelineDataExtractionProcessorBizeventExtractionProcessorEventProvider {
    /**
     * Strategy to assign a value
     */
    constant?: string;
    /**
     * Strategy to assign a value
     */
    field?: string;
    /**
     * Strategy to assign a value
     */
    type: string;
}
export interface OpenpipelineSecurityEventsPipelinesPipelineDataExtractionProcessorBizeventExtractionProcessorEventType {
    /**
     * Strategy to assign a value
     */
    constant?: string;
    /**
     * Strategy to assign a value
     */
    field?: string;
    /**
     * Strategy to assign a value
     */
    type: string;
}
export interface OpenpipelineSecurityEventsPipelinesPipelineDataExtractionProcessorBizeventExtractionProcessorFieldExtraction {
    fields: string[];
    semantic: string;
}
export interface OpenpipelineSecurityEventsPipelinesPipelineDataExtractionProcessorDavisEventExtractionProcessor {
    /**
     * Name or description of the processor
     */
    description: string;
    /**
     * Indicates if the object is active
     */
    enabled: boolean;
    /**
     * Identifier of the processor. Must be unique within a stage.
     */
    id: string;
    /**
     * Matching condition to apply on incoming records
     */
    matcher: string;
    /**
     * List of properties for the extracted davis event
     */
    properties: outputs.OpenpipelineSecurityEventsPipelinesPipelineDataExtractionProcessorDavisEventExtractionProcessorProperty[];
    /**
     * Sample data related to the processor for documentation or testing
     */
    sampleData?: string;
}
export interface OpenpipelineSecurityEventsPipelinesPipelineDataExtractionProcessorDavisEventExtractionProcessorProperty {
    /**
     * The key to set on the davis event
     */
    key: string;
    /**
     * The value assigned to the key
     */
    value: string;
}
export interface OpenpipelineSecurityEventsPipelinesPipelineMetricExtraction {
    /**
     * Data extraction processor to use
     */
    processors?: outputs.OpenpipelineSecurityEventsPipelinesPipelineMetricExtractionProcessor[];
}
export interface OpenpipelineSecurityEventsPipelinesPipelineMetricExtractionProcessor {
    /**
     * Processor to write the occurrences as a metric
     */
    counterMetricExtractionProcessor?: outputs.OpenpipelineSecurityEventsPipelinesPipelineMetricExtractionProcessorCounterMetricExtractionProcessor;
    /**
     * Processor to extract a value from a field as a metric
     */
    valueMetricExtractionProcessor?: outputs.OpenpipelineSecurityEventsPipelinesPipelineMetricExtractionProcessorValueMetricExtractionProcessor;
}
export interface OpenpipelineSecurityEventsPipelinesPipelineMetricExtractionProcessorCounterMetricExtractionProcessor {
    /**
     * Name or description of the processor
     */
    description: string;
    /**
     * List of dimensions to add to the metric
     */
    dimensions?: string[];
    /**
     * Indicates if the object is active
     */
    enabled: boolean;
    /**
     * Identifier of the processor. Must be unique within a stage.
     */
    id: string;
    /**
     * Matching condition to apply on incoming records
     */
    matcher: string;
    /**
     * The key of the metric to write
     */
    metricKey: string;
    /**
     * Sample data related to the processor for documentation or testing
     */
    sampleData?: string;
}
export interface OpenpipelineSecurityEventsPipelinesPipelineMetricExtractionProcessorValueMetricExtractionProcessor {
    /**
     * Name or description of the processor
     */
    description: string;
    /**
     * List of dimensions to add to the metric
     */
    dimensions?: string[];
    /**
     * Indicates if the object is active
     */
    enabled: boolean;
    /**
     * The field to extract the value for the metric
     */
    field: string;
    /**
     * Identifier of the processor. Must be unique within a stage.
     */
    id: string;
    /**
     * Matching condition to apply on incoming records
     */
    matcher: string;
    /**
     * The key of the metric to write
     */
    metricKey: string;
    /**
     * Sample data related to the processor for documentation or testing
     */
    sampleData?: string;
}
export interface OpenpipelineSecurityEventsPipelinesPipelineProcessing {
    /**
     * Groups all processors applicable for the ProcessingStage.
     * Applicable processors are DqlProcessor, FieldsAddProcessor, FieldsRemoveProcessor, FieldsRenameProcessor, TechnologyProcessor and DropProcessor.
     */
    processors?: outputs.OpenpipelineSecurityEventsPipelinesPipelineProcessingProcessor[];
}
export interface OpenpipelineSecurityEventsPipelinesPipelineProcessingProcessor {
    /**
     * Processor to apply a DQL script
     */
    dqlProcessor?: outputs.OpenpipelineSecurityEventsPipelinesPipelineProcessingProcessorDqlProcessor;
    /**
     * Processor to add fields
     */
    fieldsAddProcessor?: outputs.OpenpipelineSecurityEventsPipelinesPipelineProcessingProcessorFieldsAddProcessor;
    /**
     * Processor to remove fields
     */
    fieldsRemoveProcessor?: outputs.OpenpipelineSecurityEventsPipelinesPipelineProcessingProcessorFieldsRemoveProcessor;
    /**
     * Processor to rename fields
     */
    fieldsRenameProcessor?: outputs.OpenpipelineSecurityEventsPipelinesPipelineProcessingProcessorFieldsRenameProcessor;
    /**
     * Processor to apply a technology processors
     */
    technologyProcessor?: outputs.OpenpipelineSecurityEventsPipelinesPipelineProcessingProcessorTechnologyProcessor;
}
export interface OpenpipelineSecurityEventsPipelinesPipelineProcessingProcessorDqlProcessor {
    /**
     * Name or description of the processor
     */
    description: string;
    /**
     * The DQL script to apply on the record
     */
    dqlScript: string;
    /**
     * Indicates if the object is active
     */
    enabled: boolean;
    /**
     * Identifier of the processor. Must be unique within a stage.
     */
    id: string;
    /**
     * Matching condition to apply on incoming records
     */
    matcher: string;
    /**
     * Sample data related to the processor for documentation or testing
     */
    sampleData?: string;
}
export interface OpenpipelineSecurityEventsPipelinesPipelineProcessingProcessorFieldsAddProcessor {
    /**
     * Name or description of the processor
     */
    description: string;
    /**
     * Indicates if the object is active
     */
    enabled: boolean;
    /**
     * Field to add to the record
     */
    fields: outputs.OpenpipelineSecurityEventsPipelinesPipelineProcessingProcessorFieldsAddProcessorField[];
    /**
     * Identifier of the processor. Must be unique within a stage.
     */
    id: string;
    /**
     * Matching condition to apply on incoming records
     */
    matcher: string;
    /**
     * Sample data related to the processor for documentation or testing
     */
    sampleData?: string;
}
export interface OpenpipelineSecurityEventsPipelinesPipelineProcessingProcessorFieldsAddProcessorField {
    /**
     * Name of the field
     */
    name: string;
    /**
     * Value to assign to the field
     */
    value: string;
}
export interface OpenpipelineSecurityEventsPipelinesPipelineProcessingProcessorFieldsRemoveProcessor {
    /**
     * Name or description of the processor
     */
    description: string;
    /**
     * Indicates if the object is active
     */
    enabled: boolean;
    /**
     * Field to add to the record
     */
    fields: string[];
    /**
     * Identifier of the processor. Must be unique within a stage.
     */
    id: string;
    /**
     * Matching condition to apply on incoming records
     */
    matcher: string;
    /**
     * Sample data related to the processor for documentation or testing
     */
    sampleData?: string;
}
export interface OpenpipelineSecurityEventsPipelinesPipelineProcessingProcessorFieldsRenameProcessor {
    /**
     * Name or description of the processor
     */
    description: string;
    /**
     * Indicates if the object is active
     */
    enabled: boolean;
    /**
     * Field to rename on the record
     */
    fields: outputs.OpenpipelineSecurityEventsPipelinesPipelineProcessingProcessorFieldsRenameProcessorField[];
    /**
     * Identifier of the processor. Must be unique within a stage.
     */
    id: string;
    /**
     * Matching condition to apply on incoming records
     */
    matcher: string;
    /**
     * Sample data related to the processor for documentation or testing
     */
    sampleData?: string;
}
export interface OpenpipelineSecurityEventsPipelinesPipelineProcessingProcessorFieldsRenameProcessorField {
    /**
     * The field to rename
     */
    fromName: string;
    /**
     * The new field name
     */
    toName: string;
}
export interface OpenpipelineSecurityEventsPipelinesPipelineProcessingProcessorTechnologyProcessor {
    /**
     * Name or description of the processor
     */
    description: string;
    /**
     * Indicates if the object is active
     */
    enabled: boolean;
    /**
     * Identifier of the processor. Must be unique within a stage.
     */
    id: string;
    /**
     * Matching condition to apply on incoming records
     */
    matcher: string;
    /**
     * Sample data related to the processor for documentation or testing
     */
    sampleData?: string;
    /**
     * Identifier of the processor. Must be unique within a stage.
     */
    technologyId: string;
}
export interface OpenpipelineSecurityEventsPipelinesPipelineSecurityContext {
    /**
     * Groups all processors applicable for the SecurityContextStage.
     * Applicable processor is SecurityContextProcessor.
     */
    processors?: outputs.OpenpipelineSecurityEventsPipelinesPipelineSecurityContextProcessor[];
}
export interface OpenpipelineSecurityEventsPipelinesPipelineSecurityContextProcessor {
    /**
     * Processor to set the security context field
     */
    securityContextProcessor?: outputs.OpenpipelineSecurityEventsPipelinesPipelineSecurityContextProcessorSecurityContextProcessor;
}
export interface OpenpipelineSecurityEventsPipelinesPipelineSecurityContextProcessorSecurityContextProcessor {
    /**
     * Name or description of the processor
     */
    description: string;
    /**
     * Indicates if the object is active
     */
    enabled: boolean;
    /**
     * Identifier of the processor. Must be unique within a stage.
     */
    id: string;
    /**
     * Matching condition to apply on incoming records
     */
    matcher: string;
    /**
     * Sample data related to the processor for documentation or testing
     */
    sampleData?: string;
    /**
     * Strategy to assign a value
     */
    value: outputs.OpenpipelineSecurityEventsPipelinesPipelineSecurityContextProcessorSecurityContextProcessorValue;
}
export interface OpenpipelineSecurityEventsPipelinesPipelineSecurityContextProcessorSecurityContextProcessorValue {
    /**
     * Strategy to assign a value
     */
    constant?: string;
    /**
     * Strategy to assign a value
     */
    field?: string;
    /**
     * Strategy to assign a value
     */
    type: string;
}
export interface OpenpipelineSecurityEventsPipelinesPipelineStorage {
    /**
     * Default bucket assigned to records which do not match any other storage processor
     */
    catchAllBucketName?: string;
    /**
     * Groups all processors applicable for the StorageStage.
     * Applicable processors are BucketAssignmentProcessor and NoStorageProcessor.
     */
    processors?: outputs.OpenpipelineSecurityEventsPipelinesPipelineStorageProcessor[];
}
export interface OpenpipelineSecurityEventsPipelinesPipelineStorageProcessor {
    /**
     * Processor to assign a bucket
     */
    bucketAssignmentProcessor?: outputs.OpenpipelineSecurityEventsPipelinesPipelineStorageProcessorBucketAssignmentProcessor;
    /**
     * Processor to skip storage assignment
     */
    noStorageProcessor?: outputs.OpenpipelineSecurityEventsPipelinesPipelineStorageProcessorNoStorageProcessor;
}
export interface OpenpipelineSecurityEventsPipelinesPipelineStorageProcessorBucketAssignmentProcessor {
    /**
     * Bucket that is assigned when the record is matched
     */
    bucketName: string;
    /**
     * Name or description of the processor
     */
    description: string;
    /**
     * Indicates if the object is active
     */
    enabled: boolean;
    /**
     * Identifier of the processor. Must be unique within a stage.
     */
    id: string;
    /**
     * Matching condition to apply on incoming records
     */
    matcher: string;
    /**
     * Sample data related to the processor for documentation or testing
     */
    sampleData?: string;
}
export interface OpenpipelineSecurityEventsPipelinesPipelineStorageProcessorNoStorageProcessor {
    /**
     * Name or description of the processor
     */
    description: string;
    /**
     * Indicates if the object is active
     */
    enabled: boolean;
    /**
     * Identifier of the processor. Must be unique within a stage.
     */
    id: string;
    /**
     * Matching condition to apply on incoming records
     */
    matcher: string;
    /**
     * Sample data related to the processor for documentation or testing
     */
    sampleData?: string;
}
export interface OpenpipelineSecurityEventsRouting {
    /**
     * Dynamic routing entry
     */
    entries?: outputs.OpenpipelineSecurityEventsRoutingEntry[];
}
export interface OpenpipelineSecurityEventsRoutingEntry {
    /**
     * Indicates if the object is active
     */
    enabled: boolean;
    /**
     * Matching condition to apply on incoming records
     */
    matcher: string;
    /**
     * Unique note describing the dynamic route
     */
    note: string;
    /**
     * Identifier of the pipeline the record is routed into
     */
    pipelineId: string;
}
export interface OpentelemetryMetricsAdditionalAttributes {
    additionalAttributes: outputs.OpentelemetryMetricsAdditionalAttributesAdditionalAttribute[];
}
export interface OpentelemetryMetricsAdditionalAttributesAdditionalAttribute {
    /**
     * Attribute key
     */
    attributeKey: string;
    /**
     * This setting is enabled (`true`) or disabled (`false`)
     */
    enabled: boolean;
}
export interface OpentelemetryMetricsToDropAttributes {
    toDropAttributes: outputs.OpentelemetryMetricsToDropAttributesToDropAttribute[];
}
export interface OpentelemetryMetricsToDropAttributesToDropAttribute {
    /**
     * Attribute key
     */
    attributeKey: string;
    /**
     * This setting is enabled (`true`) or disabled (`false`)
     */
    enabled: boolean;
}
export interface OsServicesDetectionConditionsLinux {
    linuxDetectionConditions: outputs.OsServicesDetectionConditionsLinuxLinuxDetectionCondition[];
}
export interface OsServicesDetectionConditionsLinuxLinuxDetectionCondition {
    /**
     * This string has to match a required format. See [OS services monitoring](https://dt-url.net/vl03xzk).
     */
    condition?: string;
    /**
     * Custom metadata
     */
    hostMetadataCondition?: outputs.OsServicesDetectionConditionsLinuxLinuxDetectionConditionHostMetadataCondition;
    /**
     * Possible Values: `ServiceName`, `StartupType`
     */
    property?: string;
    /**
     * Possible Values: `RuleTypeHost`, `RuleTypeOsService`
     */
    ruleType?: string;
    /**
     * This string has to match a required format. See [OS services monitoring](https://dt-url.net/vl03xzk).
     *
     * - `$eq(enabled)` – Matches services with startup type equal to enabled.
     *
     * Available logic operations:
     * - `$not($eq(enabled))` – Matches services with startup type different from enabled.
     * - `$or($eq(enabled),$eq(disabled))` - Matches services that are either enabled or disabled.
     *
     * Use one of the following values as a parameter for this condition:
     *
     * - `enabled`
     * - `enabled-runtime`
     * - `static`
     * - `disabled`
     */
    startupCondition?: string;
}
export interface OsServicesDetectionConditionsLinuxLinuxDetectionConditionHostMetadataCondition {
    /**
     * When enabled, the condition requires a metadata key to exist and match the constraints; when disabled, the key is optional but must still match the constrains if it is present.
     */
    keyMustExist?: boolean;
    /**
     * This string has to match a required format.
     */
    metadataCondition: string;
    /**
     * Key
     */
    metadataKey: string;
}
export interface OsServicesDetectionConditionsWindows {
    detectionConditionsWindows: outputs.OsServicesDetectionConditionsWindowsDetectionConditionsWindow[];
}
export interface OsServicesDetectionConditionsWindowsDetectionConditionsWindow {
    /**
     * This string has to match a required format. See [OS services monitoring](https://dt-url.net/vl03xzk).
     */
    condition?: string;
    /**
     * Custom metadata
     */
    hostMetadataCondition?: outputs.OsServicesDetectionConditionsWindowsDetectionConditionsWindowHostMetadataCondition;
    /**
     * Possible Values: `DisplayName`, `Manufacturer`, `Path`, `ServiceName`, `StartupType`
     */
    property?: string;
    /**
     * Possible Values: `RuleTypeHost`, `RuleTypeOsService`
     */
    ruleType?: string;
    /**
     * This string has to match a required format. See [OS services monitoring](https://dt-url.net/vl03xzk).
     *
     * - `$eq(manual)` – Matches services that are started manually.
     *
     * Available logic operations:
     * - `$not($eq(auto))` – Matches services with startup type different from Automatic.
     * - `$or($eq(auto),$eq(manual))` – Matches if service's startup type is either Automatic or Manual.
     *
     * Use one of the following values as a parameter for this condition:
     *
     * - `manual` for Manual
     * - `manualTrigger` for Manual (Trigger Start)
     * - `auto` for Automatic
     * - `autoDelay` for Automatic (Delayed Start)
     * - `autoTrigger` for Automatic (Trigger Start)
     * - `autoDelayTrigger` for Automatic (Delayed Start, Trigger Start)
     * - `disabled` for Disabled
     */
    startupCondition?: string;
}
export interface OsServicesDetectionConditionsWindowsDetectionConditionsWindowHostMetadataCondition {
    /**
     * When enabled, the condition requires a metadata key to exist and match the constraints; when disabled, the key is optional but must still match the constrains if it is present.
     */
    keyMustExist?: boolean;
    /**
     * This string has to match a required format.
     */
    metadataCondition: string;
    /**
     * Key
     */
    metadataKey: string;
}
export interface OsServicesMetadata {
    items: outputs.OsServicesMetadataItem[];
}
export interface OsServicesMetadataItem {
    /**
     * Type 'dt.' for key hints.
     */
    metadataKey: string;
    /**
     * no documentation available
     */
    metadataValue: string;
}
export interface OwnershipConfigOwnershipIdentifiers {
    ownershipIdentifiers: outputs.OwnershipConfigOwnershipIdentifiersOwnershipIdentifier[];
}
export interface OwnershipConfigOwnershipIdentifiersOwnershipIdentifier {
    /**
     * This setting is enabled (`true`) or disabled (`false`)
     */
    enabled: boolean;
    /**
     * Key for ownership metadata and tags
     */
    key: string;
}
export interface OwnershipTeamsAdditionalInformation {
    additionalInformations: outputs.OwnershipTeamsAdditionalInformationAdditionalInformation[];
}
export interface OwnershipTeamsAdditionalInformationAdditionalInformation {
    /**
     * Name
     */
    key: string;
    /**
     * no documentation available
     */
    url?: string;
    /**
     * no documentation available
     */
    value: string;
}
export interface OwnershipTeamsContactDetails {
    contactDetails: outputs.OwnershipTeamsContactDetailsContactDetail[];
}
export interface OwnershipTeamsContactDetailsContactDetail {
    /**
     * no documentation available
     */
    email?: string;
    /**
     * Possible Values: `EMAIL`, `JIRA`, `MS_TEAMS`, `SLACK`
     */
    integrationType: string;
    /**
     * no documentation available
     */
    jira?: outputs.OwnershipTeamsContactDetailsContactDetailJira;
    /**
     * Team
     */
    msTeams?: string;
    /**
     * Channel
     */
    slackChannel?: string;
    /**
     * no documentation available
     */
    url?: string;
}
export interface OwnershipTeamsContactDetailsContactDetailJira {
    /**
     * Default Assignee
     */
    defaultAssignee: string;
    /**
     * no documentation available
     */
    project: string;
}
export interface OwnershipTeamsLinks {
    links: outputs.OwnershipTeamsLinksLink[];
}
export interface OwnershipTeamsLinksLink {
    /**
     * Possible Values: `DASHBOARD`, `DOCUMENTATION`, `HEALTH_APP`, `REPOSITORY`, `RUNBOOK`, `URL`, `WIKI`
     */
    linkType: string;
    /**
     * no documentation available
     */
    url: string;
}
export interface OwnershipTeamsResponsibilities {
    /**
     * Responsible for developing and maintaining high quality software. Development teams are responsible for making code changes to address performance regressions, errors, or security vulnerabilities.
     */
    development: boolean;
    /**
     * Responsible for the administration, management, and support of the IT infrastructure including physical servers, virtualization, and cloud. Teams with infrastructure responsibility are responsible for addressing hardware issues, resource limits, and operating system vulnerabilities.
     */
    infrastructure: boolean;
    /**
     * Responsible for ensuring that applications in development align with business needs and meet the usability requirements of users, stakeholders, customers, and external partners. Teams with line of business responsibility are responsible for understanding the customer experience and how it affects business goals.
     */
    lineOfBusiness: boolean;
    /**
     * Responsible for deploying and managing software, with a focus on high availability and performance. Teams with operations responsibilities needs to understand the impact, priority, and team responsible for addressing problems detected by Dynatrace.
     */
    operations: boolean;
    /**
     * Responsible for the security posture of the organization. Teams with security responsibility must understand the impact, priority, and team responsible for addressing security vulnerabilities.
     */
    security: boolean;
}
export interface OwnershipTeamsSupplementaryIdentifiers {
    supplementaryIdentifiers: outputs.OwnershipTeamsSupplementaryIdentifiersSupplementaryIdentifier[];
}
export interface OwnershipTeamsSupplementaryIdentifiersSupplementaryIdentifier {
    /**
     * Supplementary Identifier
     */
    supplementaryIdentifier: string;
}
export interface PgAnomaliesAvailability {
    /**
     * How to monitor the availability of the process group:  * `PROCESS_IMPACT`: Alert if any process of the group becomes unavailable.  * `MINIMUM_THRESHOLD`: Alert if the number of active processes in the group falls below the specified threshold.  * `OFF`: Availability monitoring is disabled.
     */
    method: string;
    /**
     * Alert if the number of active processes in the group is lower than this value.
     */
    minimumThreshold?: number;
}
export interface ProcessAvailabilityMetadata {
    items: outputs.ProcessAvailabilityMetadataItem[];
}
export interface ProcessAvailabilityMetadataItem {
    /**
     * Type 'dt.' for key hints.
     */
    key: string;
    /**
     * no documentation available
     */
    value: string;
}
export interface ProcessAvailabilityRules {
    rules: outputs.ProcessAvailabilityRulesRule[];
}
export interface ProcessAvailabilityRulesRule {
    /**
     * - $contains(svc) – Matches if svc appears anywhere in the process property value.
     * - $eq(svc.exe) – Matches if svc.exe matches the process property value exactly.
     * - $prefix(svc) – Matches if app matches the prefix of the process property value.
     * - $suffix(svc.py) – Matches if svc.py matches the suffix of the process property value.
     *
     * For example, $suffix(svc.py) would detect processes named loyaltysvc.py and paymentssvc.py.
     *
     * For more details, see [Process availability](https://dt-url.net/v923x37).
     */
    condition?: string;
    /**
     * Host custom metadata refers to user-defined key-value pairs that you can assign to hosts monitored by Dynatrace.
     *
     * By defining custom metadata, you can enrich the monitoring data with context specific to your organization's needs, such as environment names, team ownership, application versions, or any other relevant details.
     *
     * See [Define tags and metadata for hosts](https://dt-url.net/w3hv0kbw).
     */
    hostMetadataCondition?: outputs.ProcessAvailabilityRulesRuleHostMetadataCondition;
    /**
     * Possible Values: `CommandLine`, `Executable`, `ExecutablePath`, `User`
     */
    property?: string;
    /**
     * Possible Values: `RuleTypeHost`, `RuleTypeProcess`
     */
    ruleType?: string;
}
export interface ProcessAvailabilityRulesRuleHostMetadataCondition {
    /**
     * When enabled, the condition requires a metadata key to exist and match the constraints; when disabled, the key is optional but must still match the constrains if it is present.
     */
    keyMustExist?: boolean;
    /**
     * This string has to match a required format.
     *
     * - `$contains(production)` – Matches if `production` appears anywhere in the host metadata value.
     * - `$eq(production)` – Matches if `production` matches the host metadata value exactly.
     * - `$prefix(production)` – Matches if `production` matches the prefix of the host metadata value.
     * - `$suffix(production)` – Matches if `production` matches the suffix of the host metadata value.
     *
     * Available logic operations:
     * - `$not($eq(production))` – Matches if the host metadata value is different from `production`.
     * - `$and($prefix(production),$suffix(main))` – Matches if host metadata value starts with `production` and ends with `main`.
     * - `$or($prefix(production),$suffix(main))` – Matches if host metadata value starts with `production` or ends with `main`.
     *
     * Brackets **(** and **)** that are part of the matched property **must be escaped with a tilde (~)**
     */
    metadataCondition: string;
    /**
     * Key
     */
    metadataKey: string;
}
export interface ProcessGroupDetectionGroupExtraction {
    /**
     * Optionally delimit this property between *From* and *To*.
     */
    delimiter: outputs.ProcessGroupDetectionGroupExtractionDelimiter;
    /**
     * Possible values: `DOTNET_COMMAND`, `DOTNET_COMMAND_PATH`, `ASP_NET_CORE_APPLICATION_PATH`, `AWS_ECR_ACCOUNT_ID`, `AWS_ECR_REGION`, `AWS_ECS_CLUSTER`, `AWS_ECS_CONTAINERNAME`, `AWS_ECS_FAMILY`, `AWS_ECS_REVISION`, `AWS_LAMBDA_FUNCTION_NAME`, `AWS_REGION`, `APACHE_SPARK_MASTER_IP_ADDRESS`, `APACHE_CONFIG_PATH`, `CATALINA_BASE`, `CATALINA_HOME`, `CLOUD_FOUNDRY_APP_NAME`, `CLOUD_FOUNDRY_APPLICATION_ID`, `CLOUD_FOUNDRY_INSTANCE_INDEX`, `CLOUD_FOUNDRY_SPACE_NAME`, `CLOUD_FOUNDRY_SPACE_ID`, `COLDFUSION_JVM_CONFIG_FILE`, `SERVICE_NAME`, `COMMAND_LINE_ARGS`, `CONTAINER_ID`, `CONTAINER_IMAGE_VERSION`, `CONTAINER_NAME`, `DECLARATIVE_ID`, `CONTAINER_IMAGE_NAME`, `RUXIT_CLUSTER_ID`, `RUXIT_NODE_ID`, `EXE_NAME`, `EXE_PATH`, `ELASTIC_SEARCH_CLUSTER_NAME`, `ELASTIC_SEARCH_NODE_NAME`, `EQUINOX_CONFIG_PATH`, `GLASSFISH_DOMAIN_NAME`, `GLASSFISH_INSTANCE_NAME`, `PG_ID_CALC_INPUT_KEY_LINKAGE`, `GAE_INSTANCE`, `GAE_SERVICE`, `GOOGLE_CLOUD_PROJECT`, `HYBRIS_BIN_DIR`, `HYBRIS_CONFIG_DIR`, `HYBRIS_DATA_DIR`, `IBM_CICS_REGION`, `IBM_CICS_IMS_APPLID`, `IBM_CICS_IMS_JOBNAME`, `IBM_CTG_NAME`, `IBM_IMS_CONNECT`, `IBM_IMS_CONTROL`, `IBM_IMS_MPR`, `IBM_IMS_SOAP_GW_NAME`, `IIB_BROKER_NAME`, `IIB_EXECUTION_GROUP_NAME`, `IIS_APP_POOL`, `IIS_ROLE_NAME`, `JBOSS_HOME`, `JBOSS_MODE`, `JBOSS_SERVER_NAME`, `JAVA_JAR_FILE`, `JAVA_JAR_PATH`, `JAVA_MAIN_CLASS`, `KUBERNETES_BASEPODNAME`, `KUBERNETES_CONTAINERNAME`, `KUBERNETES_FULLPODNAME`, `KUBERNETES_NAMESPACE`, `KUBERNETES_PODUID`, `MSSQL_INSTANCE_NAME`, `NODEJS_APP_NAME`, `NODEJS_APP_BASE_DIR`, `NODEJS_SCRIPT_NAME`, `ORACLE_SID`, `PHP_CLI_SCRIPT_PATH`, `PHP_CLI_WORKING_DIR`, `SOFTWAREAG_INSTALL_ROOT`, `SOFTWAREAG_PRODUCTPROPNAME`, `SPRINGBOOT_APP_NAME`, `SPRINGBOOT_PROFILE_NAME`, `SPRINGBOOT_STARTUP_CLASS`, `TIBCO_BUSINESSWORKS_CE_APP_NAME`, `TIBCO_BUSINESSWORKS_CE_VERSION`, `TIBCO_BUSINESSWORKS_APP_NODE_NAME`, `TIBCO_BUSINESSWORKS_APP_SPACE_NAME`, `TIBCO_BUSINESSWORKS_DOMAIN_NAME`, `TIPCO_BUSINESSWORKS_PROPERTY_FILE`, `TIPCO_BUSINESSWORKS_PROPERTY_FILE_PATH`, `TIBCO_BUSINESSWORKS_HOME`, `VARNISH_INSTANCE_NAME`, `WEBLOGIC_NAME`, `WEBLOGIC_CLUSTER_NAME`, `WEBLOGIC_DOMAIN_NAME`, `WEBLOGIC_HOME`, `WEBSPHERE_LIBERTY_SERVER_NAME`, `WEBSPHERE_CELL_NAME`, `WEBSPHERE_CLUSTER_NAME`, `WEBSPHERE_NODE_NAME`, `WEBSPHERE_SERVER_NAME`
     */
    property: string;
    /**
     * If this option is selected, the default Dynatrace behavior is disabled for these detected processes. Only this rule is used to separate the process group.
     */
    standaloneRule?: boolean;
}
export interface ProcessGroupDetectionGroupExtractionDelimiter {
    /**
     * Delimit from
     */
    from?: string;
    /**
     * (e.g. versions, hex, dates, and build numbers)
     */
    removeIds: boolean;
    /**
     * Delimit to
     */
    to?: string;
}
export interface ProcessGroupDetectionInstanceExtraction {
    /**
     * Optionally delimit this property between *From* and *To*.
     */
    delimiter?: outputs.ProcessGroupDetectionInstanceExtractionDelimiter;
    /**
     * Possible values: `DOTNET_COMMAND`, `DOTNET_COMMAND_PATH`, `ASP_NET_CORE_APPLICATION_PATH`, `AWS_ECR_ACCOUNT_ID`, `AWS_ECR_REGION`, `AWS_ECS_CLUSTER`, `AWS_ECS_CONTAINERNAME`, `AWS_ECS_FAMILY`, `AWS_ECS_REVISION`, `AWS_LAMBDA_FUNCTION_NAME`, `AWS_REGION`, `APACHE_SPARK_MASTER_IP_ADDRESS`, `APACHE_CONFIG_PATH`, `CATALINA_BASE`, `CATALINA_HOME`, `CLOUD_FOUNDRY_APP_NAME`, `CLOUD_FOUNDRY_APPLICATION_ID`, `CLOUD_FOUNDRY_INSTANCE_INDEX`, `CLOUD_FOUNDRY_SPACE_NAME`, `CLOUD_FOUNDRY_SPACE_ID`, `COLDFUSION_JVM_CONFIG_FILE`, `SERVICE_NAME`, `COMMAND_LINE_ARGS`, `CONTAINER_ID`, `CONTAINER_IMAGE_VERSION`, `CONTAINER_NAME`, `DECLARATIVE_ID`, `CONTAINER_IMAGE_NAME`, `RUXIT_CLUSTER_ID`, `RUXIT_NODE_ID`, `EXE_NAME`, `EXE_PATH`, `ELASTIC_SEARCH_CLUSTER_NAME`, `ELASTIC_SEARCH_NODE_NAME`, `EQUINOX_CONFIG_PATH`, `GLASSFISH_DOMAIN_NAME`, `GLASSFISH_INSTANCE_NAME`, `PG_ID_CALC_INPUT_KEY_LINKAGE`, `GAE_INSTANCE`, `GAE_SERVICE`, `GOOGLE_CLOUD_PROJECT`, `HYBRIS_BIN_DIR`, `HYBRIS_CONFIG_DIR`, `HYBRIS_DATA_DIR`, `IBM_CICS_REGION`, `IBM_CICS_IMS_APPLID`, `IBM_CICS_IMS_JOBNAME`, `IBM_CTG_NAME`, `IBM_IMS_CONNECT`, `IBM_IMS_CONTROL`, `IBM_IMS_MPR`, `IBM_IMS_SOAP_GW_NAME`, `IIB_BROKER_NAME`, `IIB_EXECUTION_GROUP_NAME`, `IIS_APP_POOL`, `IIS_ROLE_NAME`, `JBOSS_HOME`, `JBOSS_MODE`, `JBOSS_SERVER_NAME`, `JAVA_JAR_FILE`, `JAVA_JAR_PATH`, `JAVA_MAIN_CLASS`, `KUBERNETES_BASEPODNAME`, `KUBERNETES_CONTAINERNAME`, `KUBERNETES_FULLPODNAME`, `KUBERNETES_NAMESPACE`, `KUBERNETES_PODUID`, `MSSQL_INSTANCE_NAME`, `NODEJS_APP_NAME`, `NODEJS_APP_BASE_DIR`, `NODEJS_SCRIPT_NAME`, `ORACLE_SID`, `PHP_CLI_SCRIPT_PATH`, `PHP_CLI_WORKING_DIR`, `SOFTWAREAG_INSTALL_ROOT`, `SOFTWAREAG_PRODUCTPROPNAME`, `SPRINGBOOT_APP_NAME`, `SPRINGBOOT_PROFILE_NAME`, `SPRINGBOOT_STARTUP_CLASS`, `TIBCO_BUSINESSWORKS_CE_APP_NAME`, `TIBCO_BUSINESSWORKS_CE_VERSION`, `TIBCO_BUSINESSWORKS_APP_NODE_NAME`, `TIBCO_BUSINESSWORKS_APP_SPACE_NAME`, `TIBCO_BUSINESSWORKS_DOMAIN_NAME`, `TIPCO_BUSINESSWORKS_PROPERTY_FILE`, `TIPCO_BUSINESSWORKS_PROPERTY_FILE_PATH`, `TIBCO_BUSINESSWORKS_HOME`, `VARNISH_INSTANCE_NAME`, `WEBLOGIC_NAME`, `WEBLOGIC_CLUSTER_NAME`, `WEBLOGIC_DOMAIN_NAME`, `WEBLOGIC_HOME`, `WEBSPHERE_LIBERTY_SERVER_NAME`, `WEBSPHERE_CELL_NAME`, `WEBSPHERE_CLUSTER_NAME`, `WEBSPHERE_NODE_NAME`, `WEBSPHERE_SERVER_NAME`
     */
    property?: string;
}
export interface ProcessGroupDetectionInstanceExtractionDelimiter {
    /**
     * Delimit from
     */
    from?: string;
    /**
     * (e.g. versions, hex, dates, and build numbers)
     */
    removeIds: boolean;
    /**
     * Delimit to
     */
    to?: string;
}
export interface ProcessGroupDetectionProcessDetection {
    /**
     * The substring to be contained in the value `property` refers to. Case Sensitive
     */
    containedString: string;
    /**
     * Possible values: `DOTNET_COMMAND`, `DOTNET_COMMAND_PATH`, `ASP_NET_CORE_APPLICATION_PATH`, `AWS_ECR_ACCOUNT_ID`, `AWS_ECR_REGION`, `AWS_ECS_CLUSTER`, `AWS_ECS_CONTAINERNAME`, `AWS_ECS_FAMILY`, `AWS_ECS_REVISION`, `AWS_LAMBDA_FUNCTION_NAME`, `AWS_REGION`, `APACHE_SPARK_MASTER_IP_ADDRESS`, `APACHE_CONFIG_PATH`, `CATALINA_BASE`, `CATALINA_HOME`, `CLOUD_FOUNDRY_APP_NAME`, `CLOUD_FOUNDRY_APPLICATION_ID`, `CLOUD_FOUNDRY_INSTANCE_INDEX`, `CLOUD_FOUNDRY_SPACE_NAME`, `CLOUD_FOUNDRY_SPACE_ID`, `COLDFUSION_JVM_CONFIG_FILE`, `SERVICE_NAME`, `COMMAND_LINE_ARGS`, `CONTAINER_ID`, `CONTAINER_IMAGE_VERSION`, `CONTAINER_NAME`, `DECLARATIVE_ID`, `CONTAINER_IMAGE_NAME`, `RUXIT_CLUSTER_ID`, `RUXIT_NODE_ID`, `EXE_NAME`, `EXE_PATH`, `ELASTIC_SEARCH_CLUSTER_NAME`, `ELASTIC_SEARCH_NODE_NAME`, `EQUINOX_CONFIG_PATH`, `GLASSFISH_DOMAIN_NAME`, `GLASSFISH_INSTANCE_NAME`, `PG_ID_CALC_INPUT_KEY_LINKAGE`, `GAE_INSTANCE`, `GAE_SERVICE`, `GOOGLE_CLOUD_PROJECT`, `HYBRIS_BIN_DIR`, `HYBRIS_CONFIG_DIR`, `HYBRIS_DATA_DIR`, `IBM_CICS_REGION`, `IBM_CICS_IMS_APPLID`, `IBM_CICS_IMS_JOBNAME`, `IBM_CTG_NAME`, `IBM_IMS_CONNECT`, `IBM_IMS_CONTROL`, `IBM_IMS_MPR`, `IBM_IMS_SOAP_GW_NAME`, `IIB_BROKER_NAME`, `IIB_EXECUTION_GROUP_NAME`, `IIS_APP_POOL`, `IIS_ROLE_NAME`, `JBOSS_HOME`, `JBOSS_MODE`, `JBOSS_SERVER_NAME`, `JAVA_JAR_FILE`, `JAVA_JAR_PATH`, `JAVA_MAIN_CLASS`, `KUBERNETES_BASEPODNAME`, `KUBERNETES_CONTAINERNAME`, `KUBERNETES_FULLPODNAME`, `KUBERNETES_NAMESPACE`, `KUBERNETES_PODUID`, `MSSQL_INSTANCE_NAME`, `NODEJS_APP_NAME`, `NODEJS_APP_BASE_DIR`, `NODEJS_SCRIPT_NAME`, `ORACLE_SID`, `PHP_CLI_SCRIPT_PATH`, `PHP_CLI_WORKING_DIR`, `SOFTWAREAG_INSTALL_ROOT`, `SOFTWAREAG_PRODUCTPROPNAME`, `SPRINGBOOT_APP_NAME`, `SPRINGBOOT_PROFILE_NAME`, `SPRINGBOOT_STARTUP_CLASS`, `TIBCO_BUSINESSWORKS_CE_APP_NAME`, `TIBCO_BUSINESSWORKS_CE_VERSION`, `TIBCO_BUSINESSWORKS_APP_NODE_NAME`, `TIBCO_BUSINESSWORKS_APP_SPACE_NAME`, `TIBCO_BUSINESSWORKS_DOMAIN_NAME`, `TIPCO_BUSINESSWORKS_PROPERTY_FILE`, `TIPCO_BUSINESSWORKS_PROPERTY_FILE_PATH`, `TIBCO_BUSINESSWORKS_HOME`, `VARNISH_INSTANCE_NAME`, `WEBLOGIC_NAME`, `WEBLOGIC_CLUSTER_NAME`, `WEBLOGIC_DOMAIN_NAME`, `WEBLOGIC_HOME`, `WEBSPHERE_LIBERTY_SERVER_NAME`, `WEBSPHERE_CELL_NAME`, `WEBSPHERE_CLUSTER_NAME`, `WEBSPHERE_NODE_NAME`, `WEBSPHERE_SERVER_NAME`
     */
    property: string;
    /**
     * Restrict this rule to specific process types. Note: Not all types can be detected at startup. Possible values: `PROCESS_TYPE_APACHE_HTTPD`, `PROCESS_TYPE_GLASSFISH`, `PROCESS_TYPE_GO`, `PROCESS_TYPE_IIS_APP_POOL`, `PROCESS_TYPE_JBOSS`, `PROCESS_TYPE_JAVA`, `PROCESS_TYPE_NGINX`, `PROCESS_TYPE_NODE_JS`, `PROCESS_TYPE_PHP`, `PROCESS_TYPE_TOMCAT`, `PROCESS_TYPE_WEBLOGIC`, `PROCESS_TYPE_WEBSPHERE`
     */
    restrictToProcessType?: string;
}
export interface ProcessMonitoringRuleCondition {
    /**
     * supported only with OneAgent 1.167+
     */
    envVar?: string;
    /**
     * Condition target
     */
    item: string;
    /**
     * Condition operator
     */
    operator: string;
    /**
     * Condition value
     */
    value?: string;
}
export interface ProcessgroupNamingCondition {
    /**
     * A conditions for the metric usage
     */
    conditions?: outputs.ProcessgroupNamingConditionCondition[];
}
export interface ProcessgroupNamingConditionCondition {
    /**
     * Comparison for `APPLICATION_TYPE` attributes
     *
     * @deprecated You should use 'application_type' instead of 'application_type_comparison'. This attribute still exists for backwards compatibility.
     */
    applicationTypeComparisons?: outputs.ProcessgroupNamingConditionConditionApplicationTypeComparison[];
    /**
     * Comparison for `APPLICATION_TYPE` attributes
     */
    applicationTypes?: outputs.ProcessgroupNamingConditionConditionApplicationType[];
    /**
     * Comparison for `AZURE_COMPUTE_MODE` attributes
     */
    azureComputeModeComparisons?: outputs.ProcessgroupNamingConditionConditionAzureComputeModeComparison[];
    /**
     * Comparison for `AZURE_COMPUTE_MODE` attributes
     *
     * @deprecated You should use 'azure_compute_mode' instead of 'azure_compute_mode_comparison'. This attribute still exists for backwards compatibility.
     */
    azureComputeModes?: outputs.ProcessgroupNamingConditionConditionAzureComputeMode[];
    /**
     * Comparison for `AZURE_SKU` attributes
     *
     * @deprecated You should use 'azure_sku' instead of 'azure_sku_comparision'. This attribute still exists for backwards compatibility.
     */
    azureSkuComparisions?: outputs.ProcessgroupNamingConditionConditionAzureSkuComparision[];
    /**
     * Comparison for `AZURE_SKU` attributes
     */
    azureSkus?: outputs.ProcessgroupNamingConditionConditionAzureSkus[];
    /**
     * A comparison that's yet unknown to the provider. Operator and Value need to be encoded using the 'unknowns' property.
     *
     * @deprecated You should use 'comparison' instead of 'base_comparison_basic'. This attribute still exists for backwards compatibility.
     */
    baseComparisonBasics?: outputs.ProcessgroupNamingConditionConditionBaseComparisonBasic[];
    /**
     * Fallback for not yet known type
     *
     * @deprecated 'base_condition_key' is deprecated. You should use 'key'
     */
    baseConditionKeys?: outputs.ProcessgroupNamingConditionConditionBaseConditionKey[];
    /**
     * Comparison for `BITNESS` attributes
     *
     * @deprecated You should use 'bitness' instead of 'bitness_comparision'. This attribute still exists for backwards compatibility.
     */
    bitnessComparisions?: outputs.ProcessgroupNamingConditionConditionBitnessComparision[];
    /**
     * Comparison for `BITNESS` attributes
     */
    bitnesses?: outputs.ProcessgroupNamingConditionConditionBitness[];
    /**
     * Comparison for `CLOUD_TYPE` attributes
     *
     * @deprecated You should use 'cloud_type' instead of 'cloud_type_comparison'. This attribute still exists for backwards compatibility.
     */
    cloudTypeComparisons?: outputs.ProcessgroupNamingConditionConditionCloudTypeComparison[];
    /**
     * Comparison for `CLOUD_TYPE` attributes
     */
    cloudTypes?: outputs.ProcessgroupNamingConditionConditionCloudType[];
    /**
     * A comparison that's yet unknown to the provider. Operator and Value need to be encoded using the 'unknowns' property.
     */
    comparisons?: outputs.ProcessgroupNamingConditionConditionComparison[];
    /**
     * Comparison for `CUSTOM_APPLICATION_TYPE` attributes
     *
     * @deprecated You should use 'custom_application_type' instead of 'custom_application_type_comparison'. This attribute still exists for backwards compatibility.
     */
    customApplicationTypeComparisons?: outputs.ProcessgroupNamingConditionConditionCustomApplicationTypeComparison[];
    /**
     * Comparison for `CUSTOM_APPLICATION_TYPE` attributes
     */
    customApplicationTypes?: outputs.ProcessgroupNamingConditionConditionCustomApplicationType[];
    /**
     * Key for Custom Host Metadata
     *
     * @deprecated 'custom_host_metadata_condition_key' is deprecated. You should use 'custom_host_metadata'
     */
    customHostMetadataConditionKeys?: outputs.ProcessgroupNamingConditionConditionCustomHostMetadataConditionKey[];
    /**
     * Key for Custom Host Metadata
     */
    customHostMetadatas?: outputs.ProcessgroupNamingConditionConditionCustomHostMetadata[];
    /**
     * Key for Custom Process Metadata
     *
     * @deprecated 'custom_process_metadata_condition_key' is deprecated. You should use 'custom_process_metadata'
     */
    customProcessMetadataConditionKeys?: outputs.ProcessgroupNamingConditionConditionCustomProcessMetadataConditionKey[];
    /**
     * Key for Custom Process Metadata
     */
    customProcessMetadatas?: outputs.ProcessgroupNamingConditionConditionCustomProcessMetadata[];
    /**
     * Comparison for `DATABASE_TOPOLOGY` attributes
     */
    databaseTopologies?: outputs.ProcessgroupNamingConditionConditionDatabaseTopology[];
    /**
     * Comparison for `DATABASE_TOPOLOGY` attributes
     *
     * @deprecated You should use 'database_topology' instead of 'database_topology_comparison'. This attribute still exists for backwards compatibility.
     */
    databaseTopologyComparisons?: outputs.ProcessgroupNamingConditionConditionDatabaseTopologyComparison[];
    /**
     * Comparison for `DCRUM_DECODER_TYPE` attributes
     *
     * @deprecated You should use 'dcrum_decoder' instead of 'dcrum_decoder_comparison'. This attribute still exists for backwards compatibility.
     */
    dcrumDecoderComparisons?: outputs.ProcessgroupNamingConditionConditionDcrumDecoderComparison[];
    /**
     * Comparison for `DCRUM_DECODER_TYPE` attributes
     */
    dcrumDecoders?: outputs.ProcessgroupNamingConditionConditionDcrumDecoder[];
    /**
     * Comparison for `ENTITY_ID` attributes
     */
    entities?: outputs.ProcessgroupNamingConditionConditionEntity[];
    /**
     * Comparison for `ENTITY_ID` attributes
     *
     * @deprecated You should use 'entity' instead of 'entity_id_comparison'. This attribute still exists for backwards compatibility.
     */
    entityIdComparisons?: outputs.ProcessgroupNamingConditionConditionEntityIdComparison[];
    /**
     * Comparison for `SIMPLE_HOST_TECH` attributes
     */
    hostTeches?: outputs.ProcessgroupNamingConditionConditionHostTech[];
    /**
     * `hypervisorTypeComparision` is deprecated. Use `hypervisor` instead
     *
     * @deprecated `hypervisorTypeComparision` is deprecated. Use `hypervisor` instead
     */
    hypervisorTypeComparisions?: outputs.ProcessgroupNamingConditionConditionHypervisorTypeComparision[];
    /**
     * Comparison for `HYPERVISOR_TYPE` attributes
     */
    hypervisors?: outputs.ProcessgroupNamingConditionConditionHypervisor[];
    /**
     * Comparison for `INDEXED_NAME` attributes
     *
     * @deprecated You should use 'indexed_name' instead of 'indexed_name_comparison'. This attribute still exists for backwards compatibility.
     */
    indexedNameComparisons?: outputs.ProcessgroupNamingConditionConditionIndexedNameComparison[];
    /**
     * Comparison for `INDEXED_NAME` attributes
     */
    indexedNames?: outputs.ProcessgroupNamingConditionConditionIndexedName[];
    /**
     * Comparison for `INDEXED_STRING` attributes
     *
     * @deprecated You should use 'indexed_string' instead of 'indexed_string_comparison'. This attribute still exists for backwards compatibility.
     */
    indexedStringComparisons?: outputs.ProcessgroupNamingConditionConditionIndexedStringComparison[];
    /**
     * Comparison for `INDEXED_STRING` attributes
     */
    indexedStrings?: outputs.ProcessgroupNamingConditionConditionIndexedString[];
    /**
     * Comparison for `INDEXED_TAG` attributes
     *
     * @deprecated You should use 'indexed_tag' instead of 'indexed_tag_comparison'. This attribute still exists for backwards compatibility.
     */
    indexedTagComparisons?: outputs.ProcessgroupNamingConditionConditionIndexedTagComparison[];
    /**
     * Comparison for `INDEXED_TAG` attributes
     */
    indexedTags?: outputs.ProcessgroupNamingConditionConditionIndexedTag[];
    /**
     * Comparison for `INTEGER` attributes
     *
     * @deprecated You should use 'integer' instead of 'integer_comparison'. This attribute still exists for backwards compatibility.
     */
    integerComparisons?: outputs.ProcessgroupNamingConditionConditionIntegerComparison[];
    /**
     * Comparison for `INTEGER` attributes
     */
    integers?: outputs.ProcessgroupNamingConditionConditionInteger[];
    /**
     * Comparison for `IP_ADDRESS` attributes
     *
     * @deprecated You should use 'ipaddress' instead of 'ipaddress_comparison'. This attribute still exists for backwards compatibility.
     */
    ipaddressComparisons?: outputs.ProcessgroupNamingConditionConditionIpaddressComparison[];
    /**
     * Comparison for `IP_ADDRESS` attributes
     */
    ipaddresses?: outputs.ProcessgroupNamingConditionConditionIpaddress[];
    /**
     * Fallback for not yet known type
     */
    keys?: outputs.ProcessgroupNamingConditionConditionKey[];
    /**
     * Comparison for `MOBILE_PLATFORM` attributes
     *
     * @deprecated You should use 'mobile_platform' instead of 'mobile_platform_comparison'. This attribute still exists for backwards compatibility.
     */
    mobilePlatformComparisons?: outputs.ProcessgroupNamingConditionConditionMobilePlatformComparison[];
    /**
     * Comparison for `MOBILE_PLATFORM` attributes
     */
    mobilePlatforms?: outputs.ProcessgroupNamingConditionConditionMobilePlatform[];
    /**
     * Comparison for `OS_ARCHITECTURE` attributes
     */
    osArches?: outputs.ProcessgroupNamingConditionConditionOsArch[];
    /**
     * Comparison for `OS_TYPE` attributes
     */
    osTypes?: outputs.ProcessgroupNamingConditionConditionOsType[];
    /**
     * Comparison for `OS_ARCHITECTURE` attributes
     *
     * @deprecated You should use 'os_arch' instead of 'osarchitecture_comparison'. This attribute still exists for backwards compatibility.
     */
    osarchitectureComparisons?: outputs.ProcessgroupNamingConditionConditionOsarchitectureComparison[];
    /**
     * Comparison for `OS_TYPE` attributes
     *
     * @deprecated You should use 'os_type' instead of 'ostype_comparison'. This attribute still exists for backwards compatibility.
     */
    ostypeComparisons?: outputs.ProcessgroupNamingConditionConditionOstypeComparison[];
    /**
     * Comparison for `PAAS_TYPE` attributes
     *
     * @deprecated You should use 'paas_type' instead of 'paas_type_comparison'. This attribute still exists for backwards compatibility.
     */
    paasTypeComparisons?: outputs.ProcessgroupNamingConditionConditionPaasTypeComparison[];
    /**
     * Comparison for `PAAS_TYPE` attributes
     */
    paasTypes?: outputs.ProcessgroupNamingConditionConditionPaasType[];
    /**
     * The key for dynamic attributes of the `PROCESS_PREDEFINED_METADATA_KEY` type
     *
     * @deprecated 'process_metadata_condition_key' is deprecated. You should use 'process_metadata'
     */
    processMetadataConditionKeys?: outputs.ProcessgroupNamingConditionConditionProcessMetadataConditionKey[];
    /**
     * The key for dynamic attributes of the `PROCESS_PREDEFINED_METADATA_KEY` type
     */
    processMetadatas?: outputs.ProcessgroupNamingConditionConditionProcessMetadata[];
    /**
     * Comparison for `SERVICE_TOPOLOGY` attributes
     */
    serviceTopologies?: outputs.ProcessgroupNamingConditionConditionServiceTopology[];
    /**
     * Comparison for `SERVICE_TOPOLOGY` attributes
     *
     * @deprecated You should use 'service_topology' instead of 'service_topology_comparison'. This attribute still exists for backwards compatibility.
     */
    serviceTopologyComparisons?: outputs.ProcessgroupNamingConditionConditionServiceTopologyComparison[];
    /**
     * Comparison for `SERVICE_TYPE` attributes
     *
     * @deprecated You should use 'service_type' instead of 'service_type_comparison'. This attribute still exists for backwards compatibility.
     */
    serviceTypeComparisons?: outputs.ProcessgroupNamingConditionConditionServiceTypeComparison[];
    /**
     * Comparison for `SERVICE_TYPE` attributes
     */
    serviceTypes?: outputs.ProcessgroupNamingConditionConditionServiceType[];
    /**
     * Comparison for `SIMPLE_HOST_TECH` attributes
     *
     * @deprecated You should use 'host_tech' instead of 'simple_host_tech_comparison'. This attribute still exists for backwards compatibility.
     */
    simpleHostTechComparisons?: outputs.ProcessgroupNamingConditionConditionSimpleHostTechComparison[];
    /**
     * Comparison for `SIMPLE_TECH` attributes
     *
     * @deprecated You should use 'tech' instead of 'simple_tech_comparison'. This attribute still exists for backwards compatibility.
     */
    simpleTechComparisons?: outputs.ProcessgroupNamingConditionConditionSimpleTechComparison[];
    /**
     * Comparison for `STRING` attributes
     *
     * @deprecated You should use 'string' instead of 'string_comparison'. This attribute still exists for backwards compatibility.
     */
    stringComparisons?: outputs.ProcessgroupNamingConditionConditionStringComparison[];
    /**
     * The key for dynamic attributes of the `STRING` type
     *
     * @deprecated 'string_condition_key' is deprecated. You should use 'string_key'
     */
    stringConditionKeys?: outputs.ProcessgroupNamingConditionConditionStringConditionKey[];
    /**
     * The key for dynamic attributes of the `STRING` type
     */
    stringKeys?: outputs.ProcessgroupNamingConditionConditionStringKey[];
    /**
     * Comparison for `STRING` attributes
     */
    strings?: outputs.ProcessgroupNamingConditionConditionString[];
    /**
     * Comparison for `SYNTHETIC_ENGINE_TYPE` attributes
     *
     * @deprecated You should use 'synthetic_engine' instead of 'synthetic_engine_type_comparison'. This attribute still exists for backwards compatibility.
     */
    syntheticEngineTypeComparisons?: outputs.ProcessgroupNamingConditionConditionSyntheticEngineTypeComparison[];
    /**
     * Comparison for `SYNTHETIC_ENGINE_TYPE` attributes
     */
    syntheticEngines?: outputs.ProcessgroupNamingConditionConditionSyntheticEngine[];
    /**
     * Comparison for `TAG` attributes
     *
     * @deprecated You should use 'tag' instead of 'tag_comparison'. This attribute still exists for backwards compatibility.
     */
    tagComparisons?: outputs.ProcessgroupNamingConditionConditionTagComparison[];
    /**
     * Comparison for `TAG` attributes
     */
    tags?: outputs.ProcessgroupNamingConditionConditionTag[];
    /**
     * Comparison for `SIMPLE_TECH` attributes
     */
    teches?: outputs.ProcessgroupNamingConditionConditionTech[];
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
}
export interface ProcessgroupNamingConditionConditionApplicationType {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value?: string;
}
export interface ProcessgroupNamingConditionConditionApplicationTypeComparison {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be APPLICATION_TYPE
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value?: string;
}
export interface ProcessgroupNamingConditionConditionAzureComputeMode {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are DEDICATED or SHARED.
     */
    value?: string;
}
export interface ProcessgroupNamingConditionConditionAzureComputeModeComparison {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are DEDICATED or SHARED.
     */
    value?: string;
}
export interface ProcessgroupNamingConditionConditionAzureSkuComparision {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be AZURE_SKU
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are BASIC, DYNAMIC, FREE, PREMIUM, SHARED and STANDARD.
     */
    value?: string;
}
export interface ProcessgroupNamingConditionConditionAzureSkus {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are BASIC, DYNAMIC, FREE, PREMIUM, SHARED and STANDARD.
     */
    value?: string;
}
export interface ProcessgroupNamingConditionConditionBaseComparisonBasic {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * The type of comparison
     */
    type: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
}
export interface ProcessgroupNamingConditionConditionBaseConditionKey {
    /**
     * The attribute to be used for comparision
     */
    attribute: string;
    /**
     * Defines the actual set of fields depending on the value
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
}
export interface ProcessgroupNamingConditionConditionBitness {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are 32 and 64.
     */
    value?: string;
}
export interface ProcessgroupNamingConditionConditionBitnessComparision {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be BITNESS
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are 32 and 64.
     */
    value?: string;
}
export interface ProcessgroupNamingConditionConditionCloudType {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are AZURE, EC2, GOOGLE_CLOUD_PLATFORM, OPENSTACK, ORACLE and UNRECOGNIZED.
     */
    value?: string;
}
export interface ProcessgroupNamingConditionConditionCloudTypeComparison {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be CLOUD_TYPE
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are AZURE, EC2, GOOGLE_CLOUD_PLATFORM, OPENSTACK, ORACLE and UNRECOGNIZED.
     */
    value?: string;
}
export interface ProcessgroupNamingConditionConditionComparison {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * The type of comparison
     */
    type: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
}
export interface ProcessgroupNamingConditionConditionCustomApplicationType {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are AMAZON_ECHO, DESKTOP, EMBEDDED, IOT, MICROSOFT_HOLOLENS and UFO.
     */
    value?: string;
}
export interface ProcessgroupNamingConditionConditionCustomApplicationTypeComparison {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be CUSTOM_APPLICATION_TYPE
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are AMAZON_ECHO, DESKTOP, EMBEDDED, IOT, MICROSOFT_HOLOLENS and UFO.
     */
    value?: string;
}
export interface ProcessgroupNamingConditionConditionCustomHostMetadata {
    /**
     * The attribute to be used for comparision
     */
    attribute: string;
    /**
     * The key of the attribute, which need dynamic keys. Not applicable otherwise, as the attibute itself acts as a key
     */
    dynamicKey: outputs.ProcessgroupNamingConditionConditionCustomHostMetadataDynamicKey;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
}
export interface ProcessgroupNamingConditionConditionCustomHostMetadataConditionKey {
    /**
     * The attribute to be used for comparision
     */
    attribute: string;
    /**
     * The key of the attribute, which need dynamic keys. Not applicable otherwise, as the attibute itself acts as a key
     */
    dynamicKey: outputs.ProcessgroupNamingConditionConditionCustomHostMetadataConditionKeyDynamicKey;
    /**
     * if specified, needs to be HOST_CUSTOM_METADATA_KEY
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
}
export interface ProcessgroupNamingConditionConditionCustomHostMetadataConditionKeyDynamicKey {
    /**
     * The actual key of the custom metadata
     */
    key: string;
    /**
     * The source of the custom metadata. Possible values are ENVIRONMENT, GOOGLE_COMPUTE_ENGINE and PLUGIN
     */
    source: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
}
export interface ProcessgroupNamingConditionConditionCustomHostMetadataDynamicKey {
    /**
     * The actual key of the custom metadata
     */
    key: string;
    /**
     * The source of the custom metadata. Possible values are ENVIRONMENT, GOOGLE_COMPUTE_ENGINE and PLUGIN
     */
    source: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
}
export interface ProcessgroupNamingConditionConditionCustomProcessMetadata {
    /**
     * The attribute to be used for comparision
     */
    attribute: string;
    /**
     * The key of the attribute, which need dynamic keys. Not applicable otherwise, as the attibute itself acts as a key
     */
    dynamicKey: outputs.ProcessgroupNamingConditionConditionCustomProcessMetadataDynamicKey;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
}
export interface ProcessgroupNamingConditionConditionCustomProcessMetadataConditionKey {
    /**
     * The attribute to be used for comparision
     */
    attribute: string;
    /**
     * The key of the attribute, which need dynamic keys. Not applicable otherwise, as the attibute itself acts as a key
     */
    dynamicKey: outputs.ProcessgroupNamingConditionConditionCustomProcessMetadataConditionKeyDynamicKey;
    /**
     * if specified, needs to be PROCESS_CUSTOM_METADATA_KEY
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
}
export interface ProcessgroupNamingConditionConditionCustomProcessMetadataConditionKeyDynamicKey {
    /**
     * The actual key of the custom metadata
     */
    key: string;
    /**
     * The source of the custom metadata. Possible values are CLOUD_FOUNDRY, ENVIRONMENT, GOOGLE_CLOUD, KUBERNETES and PLUGIN
     */
    source: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
}
export interface ProcessgroupNamingConditionConditionCustomProcessMetadataDynamicKey {
    /**
     * The actual key of the custom metadata
     */
    key: string;
    /**
     * The source of the custom metadata. Possible values are CLOUD_FOUNDRY, ENVIRONMENT, GOOGLE_CLOUD, KUBERNETES and PLUGIN
     */
    source: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
}
export interface ProcessgroupNamingConditionConditionDatabaseTopology {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are CLUSTER, EMBEDDED, FAILOVER, IPC, LOAD_BALANCING, SINGLE_SERVER and UNSPECIFIED.
     */
    value?: string;
}
export interface ProcessgroupNamingConditionConditionDatabaseTopologyComparison {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be DATABASE_TOPOLOGY
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are CLUSTER, EMBEDDED, FAILOVER, IPC, LOAD_BALANCING, SINGLE_SERVER and UNSPECIFIED.
     */
    value?: string;
}
export interface ProcessgroupNamingConditionConditionDcrumDecoder {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are ALL_OTHER, CITRIX_APPFLOW, CITRIX_ICA, CITRIX_ICA_OVER_SSL, DB2_DRDA, HTTP, HTTPS, HTTP_EXPRESS, INFORMIX, MYSQL, ORACLE, SAP_GUI, SAP_GUI_OVER_HTTP, SAP_GUI_OVER_HTTPS, SAP_HANA_DB, SAP_RFC, SSL and TDS.
     */
    value?: string;
}
export interface ProcessgroupNamingConditionConditionDcrumDecoderComparison {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be DCRUM_DECODER_TYPE
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are ALL_OTHER, CITRIX_APPFLOW, CITRIX_ICA, CITRIX_ICA_OVER_SSL, DB2_DRDA, HTTP, HTTPS, HTTP_EXPRESS, INFORMIX, MYSQL, ORACLE, SAP_GUI, SAP_GUI_OVER_HTTP, SAP_GUI_OVER_HTTPS, SAP_HANA_DB, SAP_RFC, SSL and TDS.
     */
    value?: string;
}
export interface ProcessgroupNamingConditionConditionEntity {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Currently only EQUALS is supported. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value?: string;
}
export interface ProcessgroupNamingConditionConditionEntityIdComparison {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Currently only EQUALS is supported. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be ENTITY_ID
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value?: string;
}
export interface ProcessgroupNamingConditionConditionHostTech {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are EQUALS and EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value?: outputs.ProcessgroupNamingConditionConditionHostTechValue;
}
export interface ProcessgroupNamingConditionConditionHostTechValue {
    /**
     * Predefined technology, if technology is not predefined, then the verbatim type must be set. Possible values are APPARMOR, BOSH, BOSHBPM, CLOUDFOUNDRY, CONTAINERD, CRIO, DIEGO_CELL, DOCKER, GARDEN, GRSECURITY, KUBERNETES, OPENSHIFT, OPENSTACK_COMPUTE, OPENSTACK_CONTROLLER and SELINUX
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * Non-predefined technology, use for custom technologies
     */
    verbatimType?: string;
}
export interface ProcessgroupNamingConditionConditionHypervisor {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are AHV, HYPER_V, KVM, LPAR, QEMU, VIRTUAL_BOX, VMWARE, WPAR and XEN.
     */
    value?: string;
}
export interface ProcessgroupNamingConditionConditionHypervisorTypeComparision {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be HYPERVISOR_TYPE
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are AHV, HYPER_V, KVM, LPAR, QEMU, VIRTUAL_BOX, VMWARE, WPAR and XEN.
     */
    value?: string;
}
export interface ProcessgroupNamingConditionConditionIndexedName {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS, CONTAINS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value?: string;
}
export interface ProcessgroupNamingConditionConditionIndexedNameComparison {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS, CONTAINS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be INDEXED_NAME
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value?: string;
}
export interface ProcessgroupNamingConditionConditionIndexedString {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value?: string;
}
export interface ProcessgroupNamingConditionConditionIndexedStringComparison {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be INDEXED_STRING
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value?: string;
}
export interface ProcessgroupNamingConditionConditionIndexedTag {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * Tag of a Dynatrace entity
     */
    value?: outputs.ProcessgroupNamingConditionConditionIndexedTagValue;
}
export interface ProcessgroupNamingConditionConditionIndexedTagComparison {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be INDEXED_TAG
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * Tag of a Dynatrace entity
     */
    value?: outputs.ProcessgroupNamingConditionConditionIndexedTagComparisonValue;
}
export interface ProcessgroupNamingConditionConditionIndexedTagComparisonValue {
    /**
     * The origin of the tag, such as AWS or Cloud Foundry. Possible values are AWS, AWS_GENERIC, AZURE, CLOUD_FOUNDRY, CONTEXTLESS, ENVIRONMENT, GOOGLE_CLOUD and KUBERNETES. Custom tags use the `CONTEXTLESS` value
     */
    context: string;
    /**
     * The key of the tag. Custom tags have the tag value here
     */
    key: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value of the tag. Not applicable to custom tags
     */
    value?: string;
}
export interface ProcessgroupNamingConditionConditionIndexedTagValue {
    /**
     * The origin of the tag, such as AWS or Cloud Foundry. Possible values are AWS, AWS_GENERIC, AZURE, CLOUD_FOUNDRY, CONTEXTLESS, ENVIRONMENT, GOOGLE_CLOUD and KUBERNETES. Custom tags use the `CONTEXTLESS` value
     */
    context: string;
    /**
     * The key of the tag. Custom tags have the tag value here
     */
    key: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value of the tag. Not applicable to custom tags
     */
    value?: string;
}
export interface ProcessgroupNamingConditionConditionInteger {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are EQUALS, EXISTS, GREATER_THAN, GREATER_THAN_OR_EQUAL, LOWER_THAN and LOWER_THAN_OR_EQUAL. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value?: number;
}
export interface ProcessgroupNamingConditionConditionIntegerComparison {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are EQUALS, EXISTS, GREATER_THAN, GREATER_THAN_OR_EQUAL, LOWER_THAN and LOWER_THAN_OR_EQUAL. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be INTEGER
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value?: number;
}
export interface ProcessgroupNamingConditionConditionIpaddress {
    /**
     * The comparison is case-sensitive (`true`) or insensitive (`false`)
     */
    caseSensitive?: boolean;
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are BEGINS_WITH, CONTAINS, ENDS_WITH, EQUALS, EXISTS, IS_IP_IN_RANGE and REGEX_MATCHES. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value?: string;
}
export interface ProcessgroupNamingConditionConditionIpaddressComparison {
    /**
     * The comparison is case-sensitive (`true`) or insensitive (`false`)
     */
    caseSensitive?: boolean;
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are BEGINS_WITH, CONTAINS, ENDS_WITH, EQUALS, EXISTS, IS_IP_IN_RANGE and REGEX_MATCHES. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be IP_ADDRESS
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value?: string;
}
export interface ProcessgroupNamingConditionConditionKey {
    /**
     * The attribute to be used for comparision
     */
    attribute: string;
    /**
     * Defines the actual set of fields depending on the value
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
}
export interface ProcessgroupNamingConditionConditionMobilePlatform {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are EQUALS and EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are ANDROID, IOS, LINUX, MAC_OS, OTHER, TVOS and WINDOWS.
     */
    value?: string;
}
export interface ProcessgroupNamingConditionConditionMobilePlatformComparison {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are EQUALS and EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be MOBILE_PLATFORM
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are ANDROID, IOS, LINUX, MAC_OS, OTHER, TVOS and WINDOWS.
     */
    value?: string;
}
export interface ProcessgroupNamingConditionConditionOsArch {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are EQUALS and EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are ARM, IA64, PARISC, PPC, PPCLE, S390, SPARC, X86 and ZOS.
     */
    value?: string;
}
export interface ProcessgroupNamingConditionConditionOsType {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are EQUALS and EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are AIX, DARWIN, HPUX, LINUX, SOLARIS, WINDOWS and ZOS.
     */
    value?: string;
}
export interface ProcessgroupNamingConditionConditionOsarchitectureComparison {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are EQUALS and EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be OS_ARCHITECTURE
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are ARM, IA64, PARISC, PPC, PPCLE, S390, SPARC, X86 and ZOS.
     */
    value?: string;
}
export interface ProcessgroupNamingConditionConditionOstypeComparison {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are EQUALS and EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be OS_TYPE
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are AIX, DARWIN, HPUX, LINUX, SOLARIS, WINDOWS and ZOS.
     */
    value?: string;
}
export interface ProcessgroupNamingConditionConditionPaasType {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are EQUALS and EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are AWS_ECS_EC2, AWS_ECS_FARGATE, AWS_LAMBDA, AZURE_FUNCTIONS, AZURE_WEBSITES, CLOUD_FOUNDRY, GOOGLE_APP_ENGINE, HEROKU, KUBERNETES and OPENSHIFT.
     */
    value?: string;
}
export interface ProcessgroupNamingConditionConditionPaasTypeComparison {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are EQUALS and EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be PAAS_TYPE
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are AWS_ECS_EC2, AWS_ECS_FARGATE, AWS_LAMBDA, AZURE_FUNCTIONS, AZURE_WEBSITES, CLOUD_FOUNDRY, GOOGLE_APP_ENGINE, HEROKU, KUBERNETES and OPENSHIFT.
     */
    value?: string;
}
export interface ProcessgroupNamingConditionConditionProcessMetadata {
    /**
     * The attribute to be used for comparision
     */
    attribute: string;
    /**
     * The key of the attribute, which need dynamic keys. Not applicable otherwise, as the attibute itself acts as a key. Possible values are AMAZON_ECR_IMAGE_ACCOUNT_ID,AMAZON_ECR_IMAGE_REGION, AMAZON_LAMBDA_FUNCTION_NAME, AMAZON_REGION, APACHE_CONFIG_PATH, APACHE_SPARK_MASTER_IP_ADDRESS, ASP_DOT_NET_CORE_APPLICATION_PATH, AWS_ECS_CLUSTER, AWS_ECS_CONTAINERNAME, AWS_ECS_FAMILY, AWS_ECS_REVISION, CASSANDRA_CLUSTER_NAME, CATALINA_BASE, CATALINA_HOME, CLOUD_FOUNDRY_APP_ID, CLOUD_FOUNDRY_APP_NAME, CLOUD_FOUNDRY_INSTANCE_INDEX, CLOUD_FOUNDRY_SPACE_ID, CLOUD_FOUNDRY_SPACE_NAME, COLDFUSION_JVM_CONFIG_FILE, COLDFUSION_SERVICE_NAME, COMMAND_LINE_ARGS, DOTNET_COMMAND, DOTNET_COMMAND_PATH, DYNATRACE_CLUSTER_ID, DYNATRACE_NODE_ID, ELASTICSEARCH_CLUSTER_NAME, ELASTICSEARCH_NODE_NAME, EQUINOX_CONFIG_PATH, EXE_NAME, EXE_PATH, GLASS_FISH_DOMAIN_NAME, GLASS_FISH_INSTANCE_NAME, GOOGLE_APP_ENGINE_INSTANCE, GOOGLE_APP_ENGINE_SERVICE, GOOGLE_CLOUD_PROJECT, HYBRIS_BIN_DIRECTORY, HYBRIS_CONFIG_DIRECTORY, HYBRIS_DATA_DIRECTORY, IBM_CICS_REGION, IBM_CTG_NAME, IBM_IMS_CONNECT_REGION, IBM_IMS_CONTROL_REGION, IBM_IMS_MESSAGE_PROCESSING_REGION, IBM_IMS_SOAP_GW_NAME, IBM_INTEGRATION_NODE_NAME, IBM_INTEGRATION_SERVER_NAME, IIS_APP_POOL, IIS_ROLE_NAME, JAVA_JAR_FILE, JAVA_JAR_PATH, JAVA_MAIN_CLASS, JAVA_MAIN_MODULE, JBOSS_HOME, JBOSS_MODE, JBOSS_SERVER_NAME, KUBERNETES_BASE_POD_NAME, KUBERNETES_CONTAINER_NAME, KUBERNETES_FULL_POD_NAME, KUBERNETES_NAMESPACE, KUBERNETES_POD_UID, MSSQL_INSTANCE_NAME, NODE_JS_APP_BASE_DIRECTORY, NODE_JS_APP_NAME, NODE_JS_SCRIPT_NAME, ORACLE_SID, PG_ID_CALC_INPUT_KEY_LINKAGE, PHP_SCRIPT_PATH, PHP_WORKING_DIRECTORY, RUBY_APP_ROOT_PATH, RUBY_SCRIPT_PATH, RULE_RESULT, SOFTWAREAG_INSTALL_ROOT, SOFTWAREAG_PRODUCTPROPNAME, SPRINGBOOT_APP_NAME, SPRINGBOOT_PROFILE_NAME, SPRINGBOOT_STARTUP_CLASS, TIBCO_BUSINESSWORKS_CE_APP_NAME, TIBCO_BUSINESSWORKS_CE_VERSION, TIBCO_BUSINESS_WORKS_APP_NODE_NAME, TIBCO_BUSINESS_WORKS_APP_SPACE_NAME, TIBCO_BUSINESS_WORKS_DOMAIN_NAME, TIBCO_BUSINESS_WORKS_ENGINE_PROPERTY_FILE, TIBCO_BUSINESS_WORKS_ENGINE_PROPERTY_FILE_PATH, TIBCO_BUSINESS_WORKS_HOME, VARNISH_INSTANCE_NAME, WEB_LOGIC_CLUSTER_NAME, WEB_LOGIC_DOMAIN_NAME, WEB_LOGIC_HOME, WEB_LOGIC_NAME, WEB_SPHERE_CELL_NAME, WEB_SPHERE_CLUSTER_NAME, WEB_SPHERE_NODE_NAME and WEB_SPHERE_SERVER_NAME
     */
    dynamicKey: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
}
export interface ProcessgroupNamingConditionConditionProcessMetadataConditionKey {
    /**
     * The attribute to be used for comparision
     */
    attribute: string;
    /**
     * The key of the attribute, which need dynamic keys. Not applicable otherwise, as the attibute itself acts as a key. Possible values are AMAZON_ECR_IMAGE_ACCOUNT_ID,AMAZON_ECR_IMAGE_REGION, AMAZON_LAMBDA_FUNCTION_NAME, AMAZON_REGION, APACHE_CONFIG_PATH, APACHE_SPARK_MASTER_IP_ADDRESS, ASP_DOT_NET_CORE_APPLICATION_PATH, AWS_ECS_CLUSTER, AWS_ECS_CONTAINERNAME, AWS_ECS_FAMILY, AWS_ECS_REVISION, CASSANDRA_CLUSTER_NAME, CATALINA_BASE, CATALINA_HOME, CLOUD_FOUNDRY_APP_ID, CLOUD_FOUNDRY_APP_NAME, CLOUD_FOUNDRY_INSTANCE_INDEX, CLOUD_FOUNDRY_SPACE_ID, CLOUD_FOUNDRY_SPACE_NAME, COLDFUSION_JVM_CONFIG_FILE, COLDFUSION_SERVICE_NAME, COMMAND_LINE_ARGS, DOTNET_COMMAND, DOTNET_COMMAND_PATH, DYNATRACE_CLUSTER_ID, DYNATRACE_NODE_ID, ELASTICSEARCH_CLUSTER_NAME, ELASTICSEARCH_NODE_NAME, EQUINOX_CONFIG_PATH, EXE_NAME, EXE_PATH, GLASS_FISH_DOMAIN_NAME, GLASS_FISH_INSTANCE_NAME, GOOGLE_APP_ENGINE_INSTANCE, GOOGLE_APP_ENGINE_SERVICE, GOOGLE_CLOUD_PROJECT, HYBRIS_BIN_DIRECTORY, HYBRIS_CONFIG_DIRECTORY, HYBRIS_DATA_DIRECTORY, IBM_CICS_REGION, IBM_CTG_NAME, IBM_IMS_CONNECT_REGION, IBM_IMS_CONTROL_REGION, IBM_IMS_MESSAGE_PROCESSING_REGION, IBM_IMS_SOAP_GW_NAME, IBM_INTEGRATION_NODE_NAME, IBM_INTEGRATION_SERVER_NAME, IIS_APP_POOL, IIS_ROLE_NAME, JAVA_JAR_FILE, JAVA_JAR_PATH, JAVA_MAIN_CLASS, JAVA_MAIN_MODULE, JBOSS_HOME, JBOSS_MODE, JBOSS_SERVER_NAME, KUBERNETES_BASE_POD_NAME, KUBERNETES_CONTAINER_NAME, KUBERNETES_FULL_POD_NAME, KUBERNETES_NAMESPACE, KUBERNETES_POD_UID, MSSQL_INSTANCE_NAME, NODE_JS_APP_BASE_DIRECTORY, NODE_JS_APP_NAME, NODE_JS_SCRIPT_NAME, ORACLE_SID, PG_ID_CALC_INPUT_KEY_LINKAGE, PHP_SCRIPT_PATH, PHP_WORKING_DIRECTORY, RUBY_APP_ROOT_PATH, RUBY_SCRIPT_PATH, RULE_RESULT, SOFTWAREAG_INSTALL_ROOT, SOFTWAREAG_PRODUCTPROPNAME, SPRINGBOOT_APP_NAME, SPRINGBOOT_PROFILE_NAME, SPRINGBOOT_STARTUP_CLASS, TIBCO_BUSINESSWORKS_CE_APP_NAME, TIBCO_BUSINESSWORKS_CE_VERSION, TIBCO_BUSINESS_WORKS_APP_NODE_NAME, TIBCO_BUSINESS_WORKS_APP_SPACE_NAME, TIBCO_BUSINESS_WORKS_DOMAIN_NAME, TIBCO_BUSINESS_WORKS_ENGINE_PROPERTY_FILE, TIBCO_BUSINESS_WORKS_ENGINE_PROPERTY_FILE_PATH, TIBCO_BUSINESS_WORKS_HOME, VARNISH_INSTANCE_NAME, WEB_LOGIC_CLUSTER_NAME, WEB_LOGIC_DOMAIN_NAME, WEB_LOGIC_HOME, WEB_LOGIC_NAME, WEB_SPHERE_CELL_NAME, WEB_SPHERE_CLUSTER_NAME, WEB_SPHERE_NODE_NAME and WEB_SPHERE_SERVER_NAME
     */
    dynamicKey: string;
    /**
     * if specified, needs to be PROCESS_PREDEFINED_METADATA_KEY
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
}
export interface ProcessgroupNamingConditionConditionServiceTopology {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are EQUALS and EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are EXTERNAL_SERVICE, FULLY_MONITORED and OPAQUE_SERVICE.
     */
    value?: string;
}
export interface ProcessgroupNamingConditionConditionServiceTopologyComparison {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are EQUALS and EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be SERVICE_TOPOLOGY
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are EXTERNAL_SERVICE, FULLY_MONITORED and OPAQUE_SERVICE.
     */
    value?: string;
}
export interface ProcessgroupNamingConditionConditionServiceType {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are EQUALS and EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are BACKGROUND_ACTIVITY, CICS_SERVICE, CUSTOM_SERVICE, DATABASE_SERVICE, ENTERPRISE_SERVICE_BUS_SERVICE, EXTERNAL, IBM_INTEGRATION_BUS_SERVICE, IMS_SERVICE, MESSAGING_SERVICE, QUEUE_LISTENER_SERVICE, RMI_SERVICE, RPC_SERVICE, WEB_REQUEST_SERVICE and WEB_SERVICE.
     */
    value?: string;
}
export interface ProcessgroupNamingConditionConditionServiceTypeComparison {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are EQUALS and EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be SERVICE_TYPE
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are BACKGROUND_ACTIVITY, CICS_SERVICE, CUSTOM_SERVICE, DATABASE_SERVICE, ENTERPRISE_SERVICE_BUS_SERVICE, EXTERNAL, IBM_INTEGRATION_BUS_SERVICE, IMS_SERVICE, MESSAGING_SERVICE, QUEUE_LISTENER_SERVICE, RMI_SERVICE, RPC_SERVICE, WEB_REQUEST_SERVICE and WEB_SERVICE.
     */
    value?: string;
}
export interface ProcessgroupNamingConditionConditionSimpleHostTechComparison {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are EQUALS and EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be SIMPLE_HOST_TECH
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value?: outputs.ProcessgroupNamingConditionConditionSimpleHostTechComparisonValue;
}
export interface ProcessgroupNamingConditionConditionSimpleHostTechComparisonValue {
    /**
     * Predefined technology, if technology is not predefined, then the verbatim type must be set. Possible values are APPARMOR, BOSH, BOSHBPM, CLOUDFOUNDRY, CONTAINERD, CRIO, DIEGO_CELL, DOCKER, GARDEN, GRSECURITY, KUBERNETES, OPENSHIFT, OPENSTACK_COMPUTE, OPENSTACK_CONTROLLER and SELINUX
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * Non-predefined technology, use for custom technologies
     */
    verbatimType?: string;
}
export interface ProcessgroupNamingConditionConditionSimpleTechComparison {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are EQUALS and EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be SIMPLE_TECH
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value?: outputs.ProcessgroupNamingConditionConditionSimpleTechComparisonValue;
}
export interface ProcessgroupNamingConditionConditionSimpleTechComparisonValue {
    /**
     * Predefined technology, if technology is not predefined, then the verbatim type must be set.
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * Non-predefined technology, use for custom technologies
     */
    verbatimType?: string;
}
export interface ProcessgroupNamingConditionConditionString {
    /**
     * The comparison is case-sensitive (`true`) or insensitive (`false`)
     */
    caseSensitive?: boolean;
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are BEGINS_WITH, CONTAINS, ENDS_WITH, EQUALS, EXISTS and REGEX_MATCHES. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value?: string;
}
export interface ProcessgroupNamingConditionConditionStringComparison {
    /**
     * The comparison is case-sensitive (`true`) or insensitive (`false`)
     */
    caseSensitive?: boolean;
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are BEGINS_WITH, CONTAINS, ENDS_WITH, EQUALS, EXISTS and REGEX_MATCHES. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be STRING
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value?: string;
}
export interface ProcessgroupNamingConditionConditionStringConditionKey {
    /**
     * The attribute to be used for comparision
     */
    attribute: string;
    /**
     * The key of the attribute, which need dynamic keys. Not applicable otherwise, as the attibute itself acts as a key. Possible values are
     *    - `AMAZON_ECR_IMAGE_ACCOUNT_ID`
     *    - `AMAZON_ECR_IMAGE_REGION`
     *    - `AMAZON_LAMBDA_FUNCTION_NAME`
     *    - `AMAZON_REGION`
     *    - `APACHE_CONFIG_PATH`
     *    - `APACHE_SPARK_MASTER_IP_ADDRESS`
     *    - `ASP_DOT_NET_CORE_APPLICATION_PATH`
     *    - `AWS_ECS_CLUSTER`
     *    - `AWS_ECS_CONTAINERNAME`
     *    - `AWS_ECS_FAMILY`
     *    - `AWS_ECS_REVISION`
     *    - `CASSANDRA_CLUSTER_NAME`
     *    - `CATALINA_BASE`
     *    - `CATALINA_HOME`
     *    - `CLOUD_FOUNDRY_APP_ID`
     *    - `CLOUD_FOUNDRY_APP_NAME`
     *    - `CLOUD_FOUNDRY_INSTANCE_INDEX`
     *    - `CLOUD_FOUNDRY_SPACE_ID`
     *    - `CLOUD_FOUNDRY_SPACE_NAME`
     *    - `COLDFUSION_JVM_CONFIG_FILE`
     *    - `COLDFUSION_SERVICE_NAME`
     *    - `COMMAND_LINE_ARGS`
     *    - `DOTNET_COMMAND`
     *    - `DOTNET_COMMAND_PATH`
     *    - `DYNATRACE_CLUSTER_ID`
     *    - `DYNATRACE_NODE_ID`
     *    - `ELASTICSEARCH_CLUSTER_NAME`
     *    - `ELASTICSEARCH_NODE_NAME`
     *    - `EQUINOX_CONFIG_PATH`
     *    - `EXE_NAME`
     *    - `EXE_PATH`
     *    - `GLASS_FISH_DOMAIN_NAME`
     *    - `GLASS_FISH_INSTANCE_NAME`
     *    - `GOOGLE_APP_ENGINE_INSTANCE`
     *    - `GOOGLE_APP_ENGINE_SERVICE`
     *    - `GOOGLE_CLOUD_PROJECT`
     *    - `HYBRIS_BIN_DIRECTORY`
     *    - `HYBRIS_CONFIG_DIRECTORY`
     *    - `HYBRIS_DATA_DIRECTORY`
     *    - `IBM_CICS_REGION`
     *    - `IBM_CTG_NAME`
     *    - `IBM_IMS_CONNECT_REGION`
     *    - `IBM_IMS_CONTROL_REGION`
     *    - `IBM_IMS_MESSAGE_PROCESSING_REGION`
     *    - `IBM_IMS_SOAP_GW_NAME`
     *    - `IBM_INTEGRATION_NODE_NAME`
     *    - `IBM_INTEGRATION_SERVER_NAME`
     *    - `IIS_APP_POOL`
     *    - `IIS_ROLE_NAME`
     *    - `JAVA_JAR_FILE`
     *    - `JAVA_JAR_PATH`
     *    - `JAVA_MAIN_CLASS`
     *    - `JAVA_MAIN_MODULE`
     *    - `JBOSS_HOME`
     *    - `JBOSS_MODE`
     *    - `JBOSS_SERVER_NAME`
     *    - `KUBERNETES_BASE_POD_NAME`
     *    - `KUBERNETES_CONTAINER_NAME`
     *    - `KUBERNETES_FULL_POD_NAME`
     *    - `KUBERNETES_NAMESPACE`
     *    - `KUBERNETES_POD_UID`
     *    - `MSSQL_INSTANCE_NAME`
     *    - `NODE_JS_APP_BASE_DIRECTORY`
     *    - `NODE_JS_APP_NAME`
     *    - `NODE_JS_SCRIPT_NAME`
     *    - `ORACLE_SID`
     *    - `PG_ID_CALC_INPUT_KEY_LINKAGE`
     *    - `PHP_SCRIPT_PATH`
     *    - `PHP_WORKING_DIRECTORY`
     *    - `RUBY_APP_ROOT_PATH`
     *    - `RUBY_SCRIPT_PATH`
     *    - `RULE_RESULT`
     *    - `SOFTWAREAG_INSTALL_ROOT`
     *    - `SOFTWAREAG_PRODUCTPROPNAME`
     *    - `SPRINGBOOT_APP_NAME`
     *    - `SPRINGBOOT_PROFILE_NAME`
     *    - `SPRINGBOOT_STARTUP_CLASS`
     *    - `TIBCO_BUSINESSWORKS_CE_APP_NAME`
     *    - `TIBCO_BUSINESSWORKS_CE_VERSION`
     *    - `TIBCO_BUSINESS_WORKS_APP_NODE_NAME`
     *    - `TIBCO_BUSINESS_WORKS_APP_SPACE_NAME`
     *    - `TIBCO_BUSINESS_WORKS_DOMAIN_NAME`
     *    - `TIBCO_BUSINESS_WORKS_ENGINE_PROPERTY_FILE`
     *    - `TIBCO_BUSINESS_WORKS_ENGINE_PROPERTY_FILE_PATH`
     *    - `TIBCO_BUSINESS_WORKS_HOME`
     *    - `VARNISH_INSTANCE_NAME`
     *    - `WEB_LOGIC_CLUSTER_NAME`
     *    - `WEB_LOGIC_DOMAIN_NAME`
     *    - `WEB_LOGIC_HOME`
     *    - `WEB_LOGIC_NAME`
     *    - `WEB_SPHERE_CELL_NAME`
     *    - `WEB_SPHERE_CLUSTER_NAME`
     *    - `WEB_SPHERE_NODE_NAME and WEB_SPHERE_SERVER_NAME`
     */
    dynamicKey: string;
    /**
     * if specified, needs to be `STRING`
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
}
export interface ProcessgroupNamingConditionConditionStringKey {
    /**
     * The attribute to be used for comparision
     */
    attribute: string;
    /**
     * The key of the attribute, which need dynamic keys. Not applicable otherwise, as the attibute itself acts as a key. Possible values are
     *    - `AMAZON_ECR_IMAGE_ACCOUNT_ID`
     *    - `AMAZON_ECR_IMAGE_REGION`
     *    - `AMAZON_LAMBDA_FUNCTION_NAME`
     *    - `AMAZON_REGION`
     *    - `APACHE_CONFIG_PATH`
     *    - `APACHE_SPARK_MASTER_IP_ADDRESS`
     *    - `ASP_DOT_NET_CORE_APPLICATION_PATH`
     *    - `AWS_ECS_CLUSTER`
     *    - `AWS_ECS_CONTAINERNAME`
     *    - `AWS_ECS_FAMILY`
     *    - `AWS_ECS_REVISION`
     *    - `CASSANDRA_CLUSTER_NAME`
     *    - `CATALINA_BASE`
     *    - `CATALINA_HOME`
     *    - `CLOUD_FOUNDRY_APP_ID`
     *    - `CLOUD_FOUNDRY_APP_NAME`
     *    - `CLOUD_FOUNDRY_INSTANCE_INDEX`
     *    - `CLOUD_FOUNDRY_SPACE_ID`
     *    - `CLOUD_FOUNDRY_SPACE_NAME`
     *    - `COLDFUSION_JVM_CONFIG_FILE`
     *    - `COLDFUSION_SERVICE_NAME`
     *    - `COMMAND_LINE_ARGS`
     *    - `DOTNET_COMMAND`
     *    - `DOTNET_COMMAND_PATH`
     *    - `DYNATRACE_CLUSTER_ID`
     *    - `DYNATRACE_NODE_ID`
     *    - `ELASTICSEARCH_CLUSTER_NAME`
     *    - `ELASTICSEARCH_NODE_NAME`
     *    - `EQUINOX_CONFIG_PATH`
     *    - `EXE_NAME`
     *    - `EXE_PATH`
     *    - `GLASS_FISH_DOMAIN_NAME`
     *    - `GLASS_FISH_INSTANCE_NAME`
     *    - `GOOGLE_APP_ENGINE_INSTANCE`
     *    - `GOOGLE_APP_ENGINE_SERVICE`
     *    - `GOOGLE_CLOUD_PROJECT`
     *    - `HYBRIS_BIN_DIRECTORY`
     *    - `HYBRIS_CONFIG_DIRECTORY`
     *    - `HYBRIS_DATA_DIRECTORY`
     *    - `IBM_CICS_REGION`
     *    - `IBM_CTG_NAME`
     *    - `IBM_IMS_CONNECT_REGION`
     *    - `IBM_IMS_CONTROL_REGION`
     *    - `IBM_IMS_MESSAGE_PROCESSING_REGION`
     *    - `IBM_IMS_SOAP_GW_NAME`
     *    - `IBM_INTEGRATION_NODE_NAME`
     *    - `IBM_INTEGRATION_SERVER_NAME`
     *    - `IIS_APP_POOL`
     *    - `IIS_ROLE_NAME`
     *    - `JAVA_JAR_FILE`
     *    - `JAVA_JAR_PATH`
     *    - `JAVA_MAIN_CLASS`
     *    - `JAVA_MAIN_MODULE`
     *    - `JBOSS_HOME`
     *    - `JBOSS_MODE`
     *    - `JBOSS_SERVER_NAME`
     *    - `KUBERNETES_BASE_POD_NAME`
     *    - `KUBERNETES_CONTAINER_NAME`
     *    - `KUBERNETES_FULL_POD_NAME`
     *    - `KUBERNETES_NAMESPACE`
     *    - `KUBERNETES_POD_UID`
     *    - `MSSQL_INSTANCE_NAME`
     *    - `NODE_JS_APP_BASE_DIRECTORY`
     *    - `NODE_JS_APP_NAME`
     *    - `NODE_JS_SCRIPT_NAME`
     *    - `ORACLE_SID`
     *    - `PG_ID_CALC_INPUT_KEY_LINKAGE`
     *    - `PHP_SCRIPT_PATH`
     *    - `PHP_WORKING_DIRECTORY`
     *    - `RUBY_APP_ROOT_PATH`
     *    - `RUBY_SCRIPT_PATH`
     *    - `RULE_RESULT`
     *    - `SOFTWAREAG_INSTALL_ROOT`
     *    - `SOFTWAREAG_PRODUCTPROPNAME`
     *    - `SPRINGBOOT_APP_NAME`
     *    - `SPRINGBOOT_PROFILE_NAME`
     *    - `SPRINGBOOT_STARTUP_CLASS`
     *    - `TIBCO_BUSINESSWORKS_CE_APP_NAME`
     *    - `TIBCO_BUSINESSWORKS_CE_VERSION`
     *    - `TIBCO_BUSINESS_WORKS_APP_NODE_NAME`
     *    - `TIBCO_BUSINESS_WORKS_APP_SPACE_NAME`
     *    - `TIBCO_BUSINESS_WORKS_DOMAIN_NAME`
     *    - `TIBCO_BUSINESS_WORKS_ENGINE_PROPERTY_FILE`
     *    - `TIBCO_BUSINESS_WORKS_ENGINE_PROPERTY_FILE_PATH`
     *    - `TIBCO_BUSINESS_WORKS_HOME`
     *    - `VARNISH_INSTANCE_NAME`
     *    - `WEB_LOGIC_CLUSTER_NAME`
     *    - `WEB_LOGIC_DOMAIN_NAME`
     *    - `WEB_LOGIC_HOME`
     *    - `WEB_LOGIC_NAME`
     *    - `WEB_SPHERE_CELL_NAME`
     *    - `WEB_SPHERE_CLUSTER_NAME`
     *    - `WEB_SPHERE_NODE_NAME and WEB_SPHERE_SERVER_NAME`
     */
    dynamicKey: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
}
export interface ProcessgroupNamingConditionConditionSyntheticEngine {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are  EQUALS and EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are CLASSIC and CUSTOM
     */
    value?: string;
}
export interface ProcessgroupNamingConditionConditionSyntheticEngineTypeComparison {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are  EQUALS and EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be SYNTHETIC_ENGINE_TYPE
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are CLASSIC and CUSTOM
     */
    value?: string;
}
export interface ProcessgroupNamingConditionConditionTag {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are EQUALS and TAG_KEY_EQUALS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * Tag of a Dynatrace entity
     */
    value?: outputs.ProcessgroupNamingConditionConditionTagValue;
}
export interface ProcessgroupNamingConditionConditionTagComparison {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are EQUALS and TAG_KEY_EQUALS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be TAG
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * Tag of a Dynatrace entity
     */
    value?: outputs.ProcessgroupNamingConditionConditionTagComparisonValue;
}
export interface ProcessgroupNamingConditionConditionTagComparisonValue {
    /**
     * The origin of the tag, such as AWS or Cloud Foundry. Possible values are AWS, AWS_GENERIC, AZURE, CLOUD_FOUNDRY, CONTEXTLESS, ENVIRONMENT, GOOGLE_CLOUD and KUBERNETES. Custom tags use the `CONTEXTLESS` value
     */
    context: string;
    /**
     * The key of the tag. Custom tags have the tag value here
     */
    key: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value of the tag. Not applicable to custom tags
     */
    value?: string;
}
export interface ProcessgroupNamingConditionConditionTagValue {
    /**
     * The origin of the tag, such as AWS or Cloud Foundry. Possible values are AWS, AWS_GENERIC, AZURE, CLOUD_FOUNDRY, CONTEXTLESS, ENVIRONMENT, GOOGLE_CLOUD and KUBERNETES. Custom tags use the `CONTEXTLESS` value
     */
    context: string;
    /**
     * The key of the tag. Custom tags have the tag value here
     */
    key: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value of the tag. Not applicable to custom tags
     */
    value?: string;
}
export interface ProcessgroupNamingConditionConditionTech {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are EQUALS and EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value?: outputs.ProcessgroupNamingConditionConditionTechValue;
}
export interface ProcessgroupNamingConditionConditionTechValue {
    /**
     * Predefined technology, if technology is not predefined, then the verbatim type must be set.
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * Non-predefined technology, use for custom technologies
     */
    verbatimType?: string;
}
export interface QueueManagerAliasQueue {
    /**
     * Alias queue definitions for queue manager
     */
    aliasQueues?: outputs.QueueManagerAliasQueueAliasQueue[];
}
export interface QueueManagerAliasQueueAliasQueue {
    /**
     * The name of the alias queue
     */
    aliasQueueName: string;
    /**
     * The name of the base queue
     */
    baseQueueName: string;
    /**
     * Name of the cluster(s) this alias should be visible in
     */
    clusterVisibilities?: string[];
}
export interface QueueManagerClusterQueue {
    /**
     * Cluster queue definitions for queue manager
     */
    clusterQueues?: outputs.QueueManagerClusterQueueClusterQueue[];
}
export interface QueueManagerClusterQueueClusterQueue {
    /**
     * Name of the cluster(s) this local queue should be visible in
     */
    clusterVisibilities?: string[];
    /**
     * The name of the local queue
     */
    localQueueName: string;
}
export interface QueueManagerRemoteQueue {
    /**
     * Remote queue definitions for queue manager
     */
    remoteQueues?: outputs.QueueManagerRemoteQueueRemoteQueue[];
}
export interface QueueManagerRemoteQueueRemoteQueue {
    /**
     * Name of the cluster(s) this local definition of the remote queue should be visible in
     */
    clusterVisibilities?: string[];
    /**
     * The name of the local queue
     */
    localQueueName: string;
    /**
     * The name of the remote queue manager
     */
    remoteQueueManager: string;
    /**
     * The name of the remote queue
     */
    remoteQueueName: string;
}
export interface ReportSubscriptions {
    /**
     * A list of monthly subscribers.
     * Monthly subscribers receive the report on the first Monday of the month at midnight.
     * You can specify email addresses or Dynatrace user IDs here.
     */
    months?: string[];
    /**
     * A list of weekly subscribers.
     * Weekly subscribers receive the report every Monday at midnight.
     * You can specify email addresses or Dynatrace user IDs here.
     */
    weeks?: string[];
}
export interface RequestAttributeDataSource {
    /**
     * Specifies the location where the values are captured and stored.  Required if the **source** is one of the following: `GET_PARAMETER`, `URI`, `REQUEST_HEADER`, `RESPONSE_HEADER`.   Not applicable in other cases.   If the **source** value is `REQUEST_HEADER` or `RESPONSE_HEADER`, the `CAPTURE_AND_STORE_ON_BOTH` location is not allowed
     */
    capturingAndStorageLocation?: string;
    /**
     * IBM integration bus label node name condition for which the value is captured
     */
    cicsSdkMethodNodeCondition?: outputs.RequestAttributeDataSourceCicsSdkMethodNodeCondition;
    /**
     * The data source is enabled (`true`) or disabled (`false`)
     */
    enabled: boolean;
    /**
     * IBM integration bus label node name condition for which the value is captured
     */
    iibLabelMethodNodeCondition?: outputs.RequestAttributeDataSourceIibLabelMethodNodeCondition;
    /**
     * IBM integration bus label node name condition for which the value is captured
     */
    iibMethodNodeCondition?: outputs.RequestAttributeDataSourceIibMethodNodeCondition;
    /**
     * The IBM integration bus node type for which the value is captured.  This or `iibMethodNodeCondition` is required if the **source** is: `IIB_NODE`.  Not applicable in other cases
     */
    iibNodeType?: string;
    /**
     * The method specification if the **source** value is `METHOD_PARAM`.   Not applicable in other cases
     */
    methods?: outputs.RequestAttributeDataSourceMethod[];
    /**
     * The name of the web request parameter to capture.  Required if the **source** is one of the following: `POST_PARAMETER`, `GET_PARAMETER`, `REQUEST_HEADER`, `RESPONSE_HEADER`, `CUSTOM_ATTRIBUTE`.  Not applicable in other cases
     */
    parameterName?: string;
    /**
     * Conditions for data capturing
     */
    scope?: outputs.RequestAttributeDataSourceScope;
    /**
     * The technology of the session attribute to capture if the **source** value is `SESSION_ATTRIBUTE`.
     */
    sessionAttributeTechnology?: string;
    /**
     * The source of the attribute to capture. Works in conjunction with **parameterName** or **methods** and **technology**
     */
    source: string;
    /**
     * The technology of the method to capture if the **source** value is `METHOD_PARAM`.
     *
     *  Not applicable in other cases
     */
    technology?: string;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
    /**
     * Process values as specified
     */
    valueProcessing?: outputs.RequestAttributeDataSourceValueProcessing;
}
export interface RequestAttributeDataSourceCicsSdkMethodNodeCondition {
    /**
     * Negate the comparison
     */
    negate?: boolean;
    /**
     * Operator comparing the extracted value to the comparison value
     */
    operator: string;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value: string;
}
export interface RequestAttributeDataSourceIibLabelMethodNodeCondition {
    /**
     * Negate the comparison
     */
    negate?: boolean;
    /**
     * Operator comparing the extracted value to the comparison value
     */
    operator: string;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value: string;
}
export interface RequestAttributeDataSourceIibMethodNodeCondition {
    /**
     * Negate the comparison
     */
    negate?: boolean;
    /**
     * Operator comparing the extracted value to the comparison value
     */
    operator: string;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value: string;
}
export interface RequestAttributeDataSourceMethod {
    /**
     * The index of the argument to capture. Set `0` to capture the return value, `1` or higher to capture a mehtod argument.   Required if the **capture** is set to `ARGUMENT`.  Not applicable in other cases
     */
    argumentIndex?: number;
    /**
     * What to capture from the method
     */
    capture: string;
    /**
     * The getter chain to apply to the captured object. It is required in one of the following cases:  The **capture** is set to `THIS`.    The **capture** is set to `ARGUMENT`, and the argument is not a primitive, a primitive wrapper class, a string, or an array.   Not applicable in other cases
     */
    deepObjectAccess?: string;
    /**
     * Configuration of a method to be captured
     */
    method?: outputs.RequestAttributeDataSourceMethodMethod;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
}
export interface RequestAttributeDataSourceMethodMethod {
    /**
     * Configuration of a method to be captured
     */
    argumentTypes?: string[];
    /**
     * The class name where the method to capture resides.   Either this or the **fileName** must be set
     */
    className?: string;
    /**
     * The file name where the method to capture resides.   Either this or **className** must be set
     */
    fileName?: string;
    /**
     * The operator of the comparison. If not set, `EQUALS` is used
     */
    fileNameMatcher?: string;
    /**
     * The name of the method to capture
     */
    methodName: string;
    /**
     * The modifiers of the method to capture
     */
    modifiers?: string[];
    /**
     * The return type
     */
    returnType: string;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
    /**
     * The visibility of the method to capture
     */
    visibility: string;
}
export interface RequestAttributeDataSourceScope {
    /**
     * Only applies to this host group
     */
    hostGroup?: string;
    /**
     * Only applies to this process group. Note that this can't be transferred between different clusters or environments
     */
    processGroup?: string;
    /**
     * Only applies to this service technology
     */
    serviceTechnology?: string;
    /**
     * Only apply to process groups matching this tag
     */
    tagOfProcessGroup?: string;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
}
export interface RequestAttributeDataSourceValueProcessing {
    /**
     * Preprocess by extracting a substring from the original value
     */
    extractSubstring?: outputs.RequestAttributeDataSourceValueProcessingExtractSubstring;
    /**
     * Split (preprocessed) string values at this separator
     */
    splitAt?: string;
    /**
     * Prune Whitespaces. Defaults to false
     */
    trim?: boolean;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
    /**
     * IBM integration bus label node name condition for which the value is captured
     */
    valueCondition?: outputs.RequestAttributeDataSourceValueProcessingValueCondition;
    /**
     * Extract value from captured data per regex
     */
    valueExtractorRegex?: string;
}
export interface RequestAttributeDataSourceValueProcessingExtractSubstring {
    /**
     * The delimiter string
     */
    delimiter: string;
    /**
     * The end-delimiter string.   Required if the **position** value is `BETWEEN`. Otherwise not allowed
     */
    endDelimiter?: string;
    /**
     * The position of the extracted string relative to delimiters
     */
    position: string;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
}
export interface RequestAttributeDataSourceValueProcessingValueCondition {
    /**
     * Negate the comparison
     */
    negate?: boolean;
    /**
     * Operator comparing the extracted value to the comparison value
     */
    operator: string;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value: string;
}
export interface RequestNamingConditions {
    /**
     * A conditions for the metric usage
     */
    conditions?: outputs.RequestNamingConditionsCondition[];
}
export interface RequestNamingConditionsCondition {
    /**
     * The attribute to be matched.  Note that for a service property attribute you must use the comparison of the `FAST_STRING` type. Possible values are `ACTOR_SYSTEM`, `AKKA_ACTOR_CLASS_NAME`, `AKKA_ACTOR_MESSAGE_TYPE`, `AKKA_ACTOR_PATH`, `APPLICATION_BUILD_VERSION`, `APPLICATION_RELEASE_VERSION`, `AZURE_FUNCTIONS_FUNCTION_NAME`, `AZURE_FUNCTIONS_SITE_NAME`, `CICS_PROGRAM_NAME`, `CICS_SYSTEM_ID`, `CICS_TASK_ID`, `CICS_TRANSACTION_ID`, `CICS_USER_ID`, `CPU_TIME`, `CTG_GATEWAY_URL`, `CTG_PROGRAM`, `CTG_SERVER_NAME`, `CTG_TRANSACTION_ID`, `CUSTOMSERVICE_CLASS`, `CUSTOMSERVICE_METHOD`, `DATABASE_CHILD_CALL_COUNT`, `DATABASE_CHILD_CALL_TIME`, `DATABASE_HOST`, `DATABASE_NAME`, `DATABASE_TYPE`, `DATABASE_URL`, `DISK_IO_TIME`, `ERROR_COUNT`, `ESB_APPLICATION_NAME`, `ESB_INPUT_TYPE`, `ESB_LIBRARY_NAME`, `ESB_MESSAGE_FLOW_NAME`, `EXCEPTION_CLASS`, `EXCEPTION_MESSAGE`, `FAILED_STATE`, `FAILURE_REASON`, `FLAW_STATE`, `HTTP_REQUEST_METHOD`, `HTTP_STATUS`, `HTTP_STATUS_CLASS`, `IMS_PROGRAM_NAME`, `IMS_TRANSACTION_ID`, `IMS_USER_ID`, `IO_TIME`, `IS_KEY_REQUEST`, `LAMBDA_COLDSTART`, `LOCK_TIME`, `MESSAGING_DESTINATION_TYPE`, `MESSAGING_IS_TEMPORARY_QUEUE`, `MESSAGING_QUEUE_NAME`, `MESSAGING_QUEUE_VENDOR`, `NETWORK_IO_TIME`, `NON_DATABASE_CHILD_CALL_COUNT`, `NON_DATABASE_CHILD_CALL_TIME`, `PROCESS_GROUP_NAME`, `PROCESS_GROUP_TAG`, `REMOTE_ENDPOINT`, `REMOTE_METHOD`, `REMOTE_SERVICE_NAME`, `REQUEST_NAME`, `REQUEST_TYPE`, `RESPONSE_TIME`, `RESPONSE_TIME_CLIENT`, `RMI_CLASS`, `RMI_METHOD`, `SERVICE_DISPLAY_NAME`, `SERVICE_NAME`, `SERVICE_PORT`, `SERVICE_PUBLIC_DOMAIN_NAME`, `SERVICE_REQUEST_ATTRIBUTE`, `SERVICE_TAG`, `SERVICE_TYPE`, `SERVICE_WEB_APPLICATION_ID`, `SERVICE_WEB_CONTEXT_ROOT`, `SERVICE_WEB_SERVER_NAME`, `SERVICE_WEB_SERVICE_NAME`, `SERVICE_WEB_SERVICE_NAMESPACE`, `SUSPENSION_TIME`, `TOTAL_PROCESSING_TIME`, `WAIT_TIME`, `WEBREQUEST_QUERY`, `WEBREQUEST_RELATIVE_URL`, `WEBREQUEST_URL`, `WEBREQUEST_URL_HOST`, `WEBREQUEST_URL_PATH`, `WEBREQUEST_URL_PORT`, `WEBSERVICE_ENDPOINT`, `WEBSERVICE_METHOD` and `ZOS_CALL_TYPE`
     */
    attribute: string;
    /**
     * Type-specific comparison for attributes
     */
    comparison: outputs.RequestNamingConditionsConditionComparison;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
}
export interface RequestNamingConditionsConditionComparison {
    /**
     * Boolean Comparison for `BOOLEAN` attributes
     */
    boolean?: outputs.RequestNamingConditionsConditionComparisonBoolean;
    /**
     * Type-specific comparison information for attributes of type 'ESB_INPUT_NODE_TYPE'
     */
    esbInputNodeType?: outputs.RequestNamingConditionsConditionComparisonEsbInputNodeType;
    /**
     * Comparison for `FAILED_STATE` attributes
     */
    failedState?: outputs.RequestNamingConditionsConditionComparisonFailedState;
    /**
     * Comparison for `FAILURE_REASON` attributes
     */
    failureReason?: outputs.RequestNamingConditionsConditionComparisonFailureReason;
    /**
     * Comparison for `FAST_STRING` attributes. Use it for all service property attributes
     */
    fastString?: outputs.RequestNamingConditionsConditionComparisonFastString;
    /**
     * Comparison for `FLAW_STATE` attributes
     */
    flawState?: outputs.RequestNamingConditionsConditionComparisonFlawState;
    /**
     * Comparison for `NUMBER` attributes
     */
    generic?: outputs.RequestNamingConditionsConditionComparisonGeneric;
    /**
     * Comparison for `HTTP_METHOD` attributes
     */
    httpMethod?: outputs.RequestNamingConditionsConditionComparisonHttpMethod;
    /**
     * Comparison for `HTTP_STATUS_CLASS` attributes
     */
    httpStatusClass?: outputs.RequestNamingConditionsConditionComparisonHttpStatusClass;
    /**
     * Comparison for `IIB_INPUT_NODE_TYPE` attributes
     */
    iibInputNodeType?: outputs.RequestNamingConditionsConditionComparisonIibInputNodeType;
    /**
     * Reverse the comparison **operator**. For example, it turns **equals** into **does not equal**
     */
    negate?: boolean;
    /**
     * Comparison for `NUMBER` attributes
     */
    number?: outputs.RequestNamingConditionsConditionComparisonNumber;
    /**
     * Comparison for `NUMBER_REQUEST_ATTRIBUTE` attributes
     */
    numberRequestAttribute?: outputs.RequestNamingConditionsConditionComparisonNumberRequestAttribute;
    /**
     * Comparison for `SERVICE_TYPE` attributes
     */
    serviceType?: outputs.RequestNamingConditionsConditionComparisonServiceType;
    /**
     * Comparison for `STRING` attributes
     */
    string?: outputs.RequestNamingConditionsConditionComparisonString;
    /**
     * Comparison for `STRING_REQUEST_ATTRIBUTE` attributes
     */
    stringRequestAttribute?: outputs.RequestNamingConditionsConditionComparisonStringRequestAttribute;
    /**
     * Comparison for `TAG` attributes
     */
    tag?: outputs.RequestNamingConditionsConditionComparisonTag;
    /**
     * Comparison for `ZOS_CALL_TYPE` attributes
     */
    zosCallType?: outputs.RequestNamingConditionsConditionComparisonZosCallType;
}
export interface RequestNamingConditionsConditionComparisonBoolean {
    /**
     * Operator of the comparison. You can reverse it by setting `negate` to `true`. Possible values are `EQUALS`, `EQUALS_ANY_OF` and `EXISTS`
     */
    operator?: string;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value: boolean;
    /**
     * The values to compare to
     */
    values?: boolean[];
}
export interface RequestNamingConditionsConditionComparisonEsbInputNodeType {
    /**
     * Operator of the comparison. You can reverse it by setting `negate` to `true`. Possible values are `EQUALS`, `EQUALS_ANY_OF` and `EXISTS`
     */
    operator?: string;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are `CALLABLE_FLOW_ASYNC_RESPONSE_NODE`, `CALLABLE_FLOW_INPUT_NODE`, `DATABASE_INPUT_NODE`, `DOTNET_INPUT_NODE`, `EMAIL_INPUT_NODE`, `EVENT_INPUT`, `EVENT_INPUT_NODE`, `FILE_INPUT_NODE`, `FTE_INPUT_NODE`, `HTTP_ASYNC_RESPONSE`, `JD_EDWARDS_INPUT_NODE`, `JMS_CLIENT_INPUT_NODE`, `LABEL_NODE`, `MQ_INPUT_NODE`, `PEOPLE_SOFT_INPUT_NODE`, `REST_ASYNC_RESPONSE`, `REST_REQUEST`, `SAP_INPUT_NODE`, `SCA_ASYNC_RESPONSE_NODE`, `SCA_INPUT_NODE`, `SIEBEL_INPUT_NODE`, `SOAP_INPUT_NODE`, `TCPIP_CLIENT_INPUT_NODE`, `TCPIP_CLIENT_REQUEST_NODE`, `TCPIP_SERVER_INPUT_NODE`, `TCPIP_SERVER_REQUEST_NODE`, `TIMEOUT_NOTIFICATION_NODE` and `WS_INPUT_NODE`
     */
    value?: string;
    /**
     * The values to compare to. Possible values are `CALLABLE_FLOW_ASYNC_RESPONSE_NODE`, `CALLABLE_FLOW_INPUT_NODE`, `DATABASE_INPUT_NODE`, `DOTNET_INPUT_NODE`, `EMAIL_INPUT_NODE`, `EVENT_INPUT`, `EVENT_INPUT_NODE`, `FILE_INPUT_NODE`, `FTE_INPUT_NODE`, `HTTP_ASYNC_RESPONSE`, `JD_EDWARDS_INPUT_NODE`, `JMS_CLIENT_INPUT_NODE`, `LABEL_NODE`, `MQ_INPUT_NODE`, `PEOPLE_SOFT_INPUT_NODE`, `REST_ASYNC_RESPONSE`, `REST_REQUEST`, `SAP_INPUT_NODE`, `SCA_ASYNC_RESPONSE_NODE`, `SCA_INPUT_NODE`, `SIEBEL_INPUT_NODE`, `SOAP_INPUT_NODE`, `TCPIP_CLIENT_INPUT_NODE`, `TCPIP_CLIENT_REQUEST_NODE`, `TCPIP_SERVER_INPUT_NODE`, `TCPIP_SERVER_REQUEST_NODE`, `TIMEOUT_NOTIFICATION_NODE` and `WS_INPUT_NODE`
     */
    values?: string[];
}
export interface RequestNamingConditionsConditionComparisonFailedState {
    /**
     * Operator of the comparison. You can reverse it by setting `negate` to `true`. Possible values are `EQUALS`, `EQUALS_ANY_OF` and `EXISTS`
     */
    operator?: string;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are `FAILED` and `FAILED`
     */
    value?: string;
    /**
     * The values to compare to. Possible values are `FAILED` and `FAILED`
     */
    values?: string[];
}
export interface RequestNamingConditionsConditionComparisonFailureReason {
    /**
     * Operator of the comparison. You can reverse it by setting `negate` to `true`. Possible values are `EQUALS`, `EQUALS_ANY_OF` and `EXISTS`
     */
    operator?: string;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are `EXCEPTION_AT_ENTRY_NODE`, `EXCEPTION_ON_ANY_NODE`, `HTTP_CODE` and `REQUEST_ATTRIBUTE`
     */
    value?: string;
    /**
     * The values to compare to. Possible values are `EXCEPTION_AT_ENTRY_NODE`, `EXCEPTION_ON_ANY_NODE`, `HTTP_CODE` and `REQUEST_ATTRIBUTE`
     */
    values?: string[];
}
export interface RequestNamingConditionsConditionComparisonFastString {
    /**
     * The comparison is case-sensitive (`true`) or not case-sensitive (`false`)
     */
    caseSensitive?: boolean;
    /**
     * Operator of the comparison. You can reverse it by setting `negate` to `true`. Possible values are `EQUALS`, `EQUALS_ANY_OF` and `CONTAINS`
     */
    operator?: string;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value?: string;
    /**
     * The values to compare to
     */
    values?: string[];
}
export interface RequestNamingConditionsConditionComparisonFlawState {
    /**
     * Operator of the comparison. You can reverse it by setting `negate` to `true`. Possible values are `EQUALS`, `EQUALS_ANY_OF` and `EXISTS`
     */
    operator?: string;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are `FLAWED` and `NOT_FLAWED`
     */
    value?: string;
    /**
     * The values to compare to. Possible values are `FLAWED` and `NOT_FLAWED`
     */
    values?: string[];
}
export interface RequestNamingConditionsConditionComparisonGeneric {
    /**
     * Defines the actual set of fields depending on the value
     */
    type: string;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
}
export interface RequestNamingConditionsConditionComparisonHttpMethod {
    /**
     * Operator of the comparison. You can reverse it by setting `negate` to `true`. Possible values are `EQUALS`, `EQUALS_ANY_OF` and `EXISTS`
     */
    operator?: string;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are `CONNECT`, `DELETE`, `GET`, `HEAD`, `OPTIONS`, `PATCH`, `POST`, `PUT` and `TRACE`
     */
    value?: string;
    /**
     * The values to compare to. Possible values are `CONNECT`, `DELETE`, `GET`, `HEAD`, `OPTIONS`, `PATCH`, `POST`, `PUT` and `TRACE`
     */
    values?: string[];
}
export interface RequestNamingConditionsConditionComparisonHttpStatusClass {
    /**
     * Operator of the comparison. You can reverse it by setting `negate` to `true`. Possible values are `EQUALS`, `EQUALS_ANY_OF` and `EXISTS`
     */
    operator?: string;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are `C_1XX`, `C_2XX`, `C_3XX`, `C_4XX`, `C_5XX` and `NO_RESPONSE`
     */
    value?: string;
    /**
     * The values to compare to. Possible values are `C_1XX`, `C_2XX`, `C_3XX`, `C_4XX`, `C_5XX` and `NO_RESPONSE`
     */
    values?: string[];
}
export interface RequestNamingConditionsConditionComparisonIibInputNodeType {
    /**
     * Operator of the comparison. You can reverse it by setting `negate` to `true`. Possible values are `EQUALS`, `EQUALS_ANY_OF` and `EXISTS`
     */
    operator?: string;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are `CALLABLE_FLOW_ASYNC_RESPONSE_NODE`, `CALLABLE_FLOW_INPUT_NODE`, `DATABASE_INPUT_NODE`, `DOTNET_INPUT_NODE`, `EMAIL_INPUT_NODE`, `EVENT_INPUT`, `EVENT_INPUT_NODE`, `FILE_INPUT_NODE`, `FTE_INPUT_NODE`, `HTTP_ASYNC_RESPONSE`, `JD_EDWARDS_INPUT_NODE`, `JMS_CLIENT_INPUT_NODE`, `LABEL_NODE`, `MQ_INPUT_NODE`, `PEOPLE_SOFT_INPUT_NODE`, `REST_ASYNC_RESPONSE`, `REST_REQUEST`, `SAP_INPUT_NODE`, `SCA_ASYNC_RESPONSE_NODE`, `SCA_INPUT_NODE`, `SIEBEL_INPUT_NODE`, `SOAP_INPUT_NODE`, `TCPIP_CLIENT_INPUT_NODE`, `TCPIP_CLIENT_REQUEST_NODE`, `TCPIP_SERVER_INPUT_NODE`, `TCPIP_SERVER_REQUEST_NODE`, `TIMEOUT_NOTIFICATION_NODE` and `WS_INPUT_NODE`
     */
    value?: string;
    /**
     * The values to compare to. Possible values are `CALLABLE_FLOW_ASYNC_RESPONSE_NODE`, `CALLABLE_FLOW_INPUT_NODE`, `DATABASE_INPUT_NODE`, `DOTNET_INPUT_NODE`, `EMAIL_INPUT_NODE`, `EVENT_INPUT`, `EVENT_INPUT_NODE`, `FILE_INPUT_NODE`, `FTE_INPUT_NODE`, `HTTP_ASYNC_RESPONSE`, `JD_EDWARDS_INPUT_NODE`, `JMS_CLIENT_INPUT_NODE`, `LABEL_NODE`, `MQ_INPUT_NODE`, `PEOPLE_SOFT_INPUT_NODE`, `REST_ASYNC_RESPONSE`, `REST_REQUEST`, `SAP_INPUT_NODE`, `SCA_ASYNC_RESPONSE_NODE`, `SCA_INPUT_NODE`, `SIEBEL_INPUT_NODE`, `SOAP_INPUT_NODE`, `TCPIP_CLIENT_INPUT_NODE`, `TCPIP_CLIENT_REQUEST_NODE`, `TCPIP_SERVER_INPUT_NODE`, `TCPIP_SERVER_REQUEST_NODE`, `TIMEOUT_NOTIFICATION_NODE` and `WS_INPUT_NODE`
     */
    values?: string[];
}
export interface RequestNamingConditionsConditionComparisonNumber {
    /**
     * Operator of the comparison. You can reverse it by setting `negate` to `true`. Possible values are `EQUALS`, `EQUALS_ANY_OF`, `EXISTS`, `GREATER_THAN`, `GREATER_THAN_OR_EQUAL`, `LOWER_THAN` and `LOWER_THAN_OR_EQUAL`
     */
    operator?: string;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value?: number;
    /**
     * The values to compare to
     */
    values?: number[];
}
export interface RequestNamingConditionsConditionComparisonNumberRequestAttribute {
    /**
     * If `true`, the request attribute is matched on child service calls. Default is `false`
     */
    matchOnChildCalls?: boolean;
    /**
     * Operator of the comparison. You can reverse it by setting `negate` to `true`. Possible values are `EQUALS`, `EQUALS_ANY_OF`, `EXISTS`, `GREATER_THAN`, `GREATER_THAN_OR_EQUAL`, `LOWER_THAN` and `LOWER_THAN_OR_EQUAL`
     */
    operator?: string;
    /**
     * No documentation available for this attribute
     */
    requestAttribute: string;
    /**
     * Defines valid sources of request attributes for conditions or placeholders
     */
    source?: outputs.RequestNamingConditionsConditionComparisonNumberRequestAttributeSource;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value?: number;
    /**
     * The values to compare to
     */
    values?: number[];
}
export interface RequestNamingConditionsConditionComparisonNumberRequestAttributeSource {
    /**
     * Use only request attributes from services that belong to this management zone.. Use either this or `serviceTag`
     */
    managementZone?: string;
    /**
     * Use only request attributes from services that have this tag. Use either this or `managementZone`
     */
    serviceTag?: outputs.RequestNamingConditionsConditionComparisonNumberRequestAttributeSourceServiceTag;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
}
export interface RequestNamingConditionsConditionComparisonNumberRequestAttributeSourceServiceTag {
    /**
     * The origin of the tag, such as AWS or Cloud Foundry. For custom tags use the `CONTEXTLESS` value. The context is set for tags that are automatically imported by OneAgent (for example, from the AWS console or environment variables). It’s useful for determining the origin of tags when not manually defined, and it also helps to prevent clashes with other existing tags. If the tag is not automatically imported, `CONTEXTLESS` set. Possible values are `AWS`, `AWS_GENERIC`, `AZURE`, `CLOUD_FOUNDRY`, `CONTEXTLESS`, `ENVIRONMENT`, `GOOGLE_COMPUTE_ENGINE` and `KUBERNETES`
     */
    context?: string;
    /**
     * The key of the tag. For custom tags, put the tag value here. The key allows categorization of multiple tags. It is possible that there are multiple values for a single key which will all be represented as standalone tags. Therefore, the key does not have the semantic of a map key but is more like a key of a key-value tuple. In some cases, for example custom tags, the key represents the actual tag value and the value field is not set – those are called valueless tags
     */
    key: string;
    /**
     * has no documentation
     */
    tagKey?: outputs.RequestNamingConditionsConditionComparisonNumberRequestAttributeSourceServiceTagTagKey;
    /**
     * The value of the tag. Not applicable to custom tags. If a tag does have a separate key and value (in the textual representation they are split by the colon ‘:’), this field is set with the actual value. Key-value pairs can occur for automatically imported tags and tags set by rules if extractors are used
     */
    value?: string;
}
export interface RequestNamingConditionsConditionComparisonNumberRequestAttributeSourceServiceTagTagKey {
    /**
     * has no documentation
     */
    context?: string;
    /**
     * has no documentation
     */
    key?: string;
}
export interface RequestNamingConditionsConditionComparisonServiceType {
    /**
     * Operator of the comparison. You can reverse it by setting `negate` to `true`. Possible values are `EQUALS`, `EQUALS_ANY_OF` and `EXISTS`
     */
    operator?: string;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are `BACKGROUND_ACTIVITY`, `CICS_SERVICE`, `CUSTOM_SERVICE`, `DATABASE_SERVICE`, `ENTERPRISE_SERVICE_BUS_SERVICE`, `EXTERNAL`, `IBM_INTEGRATION_BUS_SERVICE`, `IMS_SERVICE`, `MESSAGING_SERVICE`, `RMI_SERVICE`, `RPC_SERVICE`, `WEB_REQUEST_SERVICE` and `WEB_SERVICE`
     */
    value?: string;
    /**
     * The values to compare to. Possible values are `BACKGROUND_ACTIVITY`, `CICS_SERVICE`, `CUSTOM_SERVICE`, `DATABASE_SERVICE`, `ENTERPRISE_SERVICE_BUS_SERVICE`, `EXTERNAL`, `IBM_INTEGRATION_BUS_SERVICE`, `IMS_SERVICE`, `MESSAGING_SERVICE`, `RMI_SERVICE`, `RPC_SERVICE`, `WEB_REQUEST_SERVICE` and `WEB_SERVICE`
     */
    values?: string[];
}
export interface RequestNamingConditionsConditionComparisonString {
    /**
     * The comparison is case-sensitive (`true`) or not case-sensitive (`false`)
     */
    caseSensitive?: boolean;
    /**
     * Operator of the comparison. You can reverse it by setting `negate` to `true`. Possible values are `BEGINS_WITH`, `BEGINS_WITH_ANY_OF`, `CONTAINS`, `ENDS_WITH`, `ENDS_WITH_ANY_OF`, `EQUALS`, `EQUALS_ANY_OF`, `EXISTS` and `REGEX_MATCHES`
     */
    operator?: string;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value?: string;
    /**
     * The values to compare to
     */
    values?: string[];
}
export interface RequestNamingConditionsConditionComparisonStringRequestAttribute {
    /**
     * The comparison is case-sensitive (`true`) or not case-sensitive (`false`)
     */
    caseSensitive?: boolean;
    /**
     * If `true`, the request attribute is matched on child service calls. Default is `false`
     */
    matchOnChildCalls?: boolean;
    /**
     * Operator of the comparison. You can reverse it by setting `negate` to `true`. Possible values are `BEGINS_WITH`, `BEGINS_WITH_ANY_OF`, `CONTAINS`, `ENDS_WITH`, `ENDS_WITH_ANY_OF`, `EQUALS`, `EQUALS_ANY_OF`, `EXISTS` and `REGEX_MATCHES`
     */
    operator?: string;
    /**
     * No documentation available for this attribute
     */
    requestAttribute: string;
    /**
     * Defines valid sources of request attributes for conditions or placeholders
     */
    source?: outputs.RequestNamingConditionsConditionComparisonStringRequestAttributeSource;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value?: string;
    /**
     * The values to compare to
     */
    values?: string[];
}
export interface RequestNamingConditionsConditionComparisonStringRequestAttributeSource {
    /**
     * Use only request attributes from services that belong to this management zone.. Use either this or `serviceTag`
     */
    managementZone?: string;
    /**
     * Use only request attributes from services that have this tag. Use either this or `managementZone`
     */
    serviceTag?: outputs.RequestNamingConditionsConditionComparisonStringRequestAttributeSourceServiceTag;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
}
export interface RequestNamingConditionsConditionComparisonStringRequestAttributeSourceServiceTag {
    /**
     * The origin of the tag, such as AWS or Cloud Foundry. For custom tags use the `CONTEXTLESS` value. The context is set for tags that are automatically imported by OneAgent (for example, from the AWS console or environment variables). It’s useful for determining the origin of tags when not manually defined, and it also helps to prevent clashes with other existing tags. If the tag is not automatically imported, `CONTEXTLESS` set. Possible values are `AWS`, `AWS_GENERIC`, `AZURE`, `CLOUD_FOUNDRY`, `CONTEXTLESS`, `ENVIRONMENT`, `GOOGLE_COMPUTE_ENGINE` and `KUBERNETES`
     */
    context?: string;
    /**
     * The key of the tag. For custom tags, put the tag value here. The key allows categorization of multiple tags. It is possible that there are multiple values for a single key which will all be represented as standalone tags. Therefore, the key does not have the semantic of a map key but is more like a key of a key-value tuple. In some cases, for example custom tags, the key represents the actual tag value and the value field is not set – those are called valueless tags
     */
    key: string;
    /**
     * has no documentation
     */
    tagKey?: outputs.RequestNamingConditionsConditionComparisonStringRequestAttributeSourceServiceTagTagKey;
    /**
     * The value of the tag. Not applicable to custom tags. If a tag does have a separate key and value (in the textual representation they are split by the colon ‘:’), this field is set with the actual value. Key-value pairs can occur for automatically imported tags and tags set by rules if extractors are used
     */
    value?: string;
}
export interface RequestNamingConditionsConditionComparisonStringRequestAttributeSourceServiceTagTagKey {
    /**
     * has no documentation
     */
    context?: string;
    /**
     * has no documentation
     */
    key?: string;
}
export interface RequestNamingConditionsConditionComparisonTag {
    /**
     * Operator of the comparison. You can reverse it by setting `negate` to `true`. Possible values are `EQUALS`, `EQUALS_ANY_OF`, `TAG_KEY_EQUALS` and `TAG_KEY_EQUALS_ANY_OF`
     */
    operator?: string;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
    /**
     * The values to compare to
     */
    value?: outputs.RequestNamingConditionsConditionComparisonTagValue;
    /**
     * The values to compare to
     */
    values?: outputs.RequestNamingConditionsConditionComparisonTagValues;
}
export interface RequestNamingConditionsConditionComparisonTagValue {
    /**
     * The origin of the tag, such as AWS or Cloud Foundry. Custom tags use the `CONTEXTLESS` value. Possible values are `AWS`, `AWS_GENERIC`, `AZURE`, `CLOUD_FOUNDRY`, `CONTEXTLESS`, `ENVIRONMENT`, `GOOGLE_CLOUD` and `KUBERNETES`
     */
    context: string;
    /**
     * The key of the tag. Custom tags have the tag value here
     */
    key: string;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
    /**
     * The value of the tag. Not applicable to custom tags
     */
    value?: string;
}
export interface RequestNamingConditionsConditionComparisonTagValues {
    /**
     * The values to compare to
     */
    values?: outputs.RequestNamingConditionsConditionComparisonTagValuesValue[];
}
export interface RequestNamingConditionsConditionComparisonTagValuesValue {
    /**
     * The origin of the tag, such as AWS or Cloud Foundry. Custom tags use the `CONTEXTLESS` value. Possible values are `AWS`, `AWS_GENERIC`, `AZURE`, `CLOUD_FOUNDRY`, `CONTEXTLESS`, `ENVIRONMENT`, `GOOGLE_CLOUD` and `KUBERNETES`
     */
    context: string;
    /**
     * The key of the tag. Custom tags have the tag value here
     */
    key: string;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
    /**
     * The value of the tag. Not applicable to custom tags
     */
    value?: string;
}
export interface RequestNamingConditionsConditionComparisonZosCallType {
    /**
     * Operator of the comparison. You can reverse it by setting `negate` to `true`. Possible values are `EQUALS`, `EQUALS_ANY_OF` and `EXISTS`
     */
    operator?: string;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are `CTG`, `DPL`, `EXPLICIT_ADK`, `IMS_CONNECT`, `IMS_CONNECT_API`, `IMS_ITRA`, `IMS_MSC`, `IMS_PGM_SWITCH`, `IMS_SHARED_QUEUES`, `IMS_TRANS_EXEC`, `MQ`, `SOAP`, `START`, `TX` and `UNKNOWN`
     */
    value?: string;
    /**
     * The values to compare to. Possible values are `CTG`, `DPL`, `EXPLICIT_ADK`, `IMS_CONNECT`, `IMS_CONNECT_API`, `IMS_ITRA`, `IMS_MSC`, `IMS_PGM_SWITCH`, `IMS_SHARED_QUEUES`, `IMS_TRANS_EXEC`, `MQ`, `SOAP`, `START`, `TX` and `UNKNOWN`
     */
    values?: string[];
}
export interface RequestNamingPlaceholders {
    /**
     * A custom placeholder to be used in a dimension value pattern
     */
    placeholders?: outputs.RequestNamingPlaceholdersPlaceholder[];
}
export interface RequestNamingPlaceholdersPlaceholder {
    /**
     * Which value of the request attribute must be used when it occurs across multiple child requests. Only applicable for the `SERVICE_REQUEST_ATTRIBUTE` attribute, when **useFromChildCalls** is `true`. For the `COUNT` aggregation, the **kind** field is not applicable. Possible values are `COUNT`, `FIRST` and `LAST`.
     */
    aggregation?: string;
    /**
     * The attribute to extract from. You can only use attributes of the **string** type. Possible values are `ACTOR_SYSTEM`, `AKKA_ACTOR_CLASS_NAME`, `AKKA_ACTOR_MESSAGE_TYPE`, `AKKA_ACTOR_PATH`, `APPLICATION_BUILD_VERSION`, `APPLICATION_RELEASE_VERSION`, `AZURE_FUNCTIONS_FUNCTION_NAME`, `AZURE_FUNCTIONS_SITE_NAME`, `CICS_PROGRAM_NAME`, `CICS_SYSTEM_ID`, `CICS_TASK_ID`, `CICS_TRANSACTION_ID`, `CICS_USER_ID`, `CPU_TIME`, `CTG_GATEWAY_URL`, `CTG_PROGRAM`, `CTG_SERVER_NAME`, `CTG_TRANSACTION_ID`, `CUSTOMSERVICE_CLASS`, `CUSTOMSERVICE_METHOD`, `DATABASE_CHILD_CALL_COUNT`, `DATABASE_CHILD_CALL_TIME`, `DATABASE_HOST`, `DATABASE_NAME`, `DATABASE_TYPE`, `DATABASE_URL`, `DISK_IO_TIME`, `ERROR_COUNT`, `ESB_APPLICATION_NAME`, `ESB_INPUT_TYPE`, `ESB_LIBRARY_NAME`, `ESB_MESSAGE_FLOW_NAME`, `EXCEPTION_CLASS`, `EXCEPTION_MESSAGE`, `FAILED_STATE`, `FAILURE_REASON`, `FLAW_STATE`, `HTTP_REQUEST_METHOD`, `HTTP_STATUS`, `HTTP_STATUS_CLASS`, `IMS_PROGRAM_NAME`, `IMS_TRANSACTION_ID`, `IMS_USER_ID`, `IO_TIME`, `IS_KEY_REQUEST`, `LAMBDA_COLDSTART`, `LOCK_TIME`, `MESSAGING_DESTINATION_TYPE`, `MESSAGING_IS_TEMPORARY_QUEUE`, `MESSAGING_QUEUE_NAME`, `MESSAGING_QUEUE_VENDOR`, `NETWORK_IO_TIME`, `NON_DATABASE_CHILD_CALL_COUNT`, `NON_DATABASE_CHILD_CALL_TIME`, `PROCESS_GROUP_NAME`, `PROCESS_GROUP_TAG`, `REMOTE_ENDPOINT`, `REMOTE_METHOD`, `REMOTE_SERVICE_NAME`, `REQUEST_NAME`, `REQUEST_TYPE`, `RESPONSE_TIME`, `RESPONSE_TIME_CLIENT`, `RMI_CLASS`, `RMI_METHOD`, `SERVICE_DISPLAY_NAME`, `SERVICE_NAME`, `SERVICE_PORT`, `SERVICE_PUBLIC_DOMAIN_NAME`, `SERVICE_REQUEST_ATTRIBUTE`, `SERVICE_TAG`, `SERVICE_TYPE`, `SERVICE_WEB_APPLICATION_ID`, `SERVICE_WEB_CONTEXT_ROOT`, `SERVICE_WEB_SERVER_NAME`, `SERVICE_WEB_SERVICE_NAME`, `SERVICE_WEB_SERVICE_NAMESPACE`, `SUSPENSION_TIME`, `TOTAL_PROCESSING_TIME`, `WAIT_TIME`, `WEBREQUEST_QUERY`, `WEBREQUEST_RELATIVE_URL`, `WEBREQUEST_URL`, `WEBREQUEST_URL_HOST`, `WEBREQUEST_URL_PATH`, `WEBREQUEST_URL_PORT`, `WEBSERVICE_ENDPOINT`, `WEBSERVICE_METHOD` and `ZOS_CALL_TYPE`
     */
    attribute: string;
    /**
     * Depending on the `kind` value:
     *
     *
     * * `REGEX_EXTRACTION`: The regular expression.
     *
     *
     * * `BETWEEN_DELIMITER`: The opening delimiter string to look for.
     *
     *
     * * All other values: The delimiter string to look for
     */
    delimiterOrRegex?: string;
    /**
     * The closing delimiter string to look for. Required if the `kind` value is `BETWEEN_DELIMITER`. Not applicable otherwise
     */
    endDelimiter?: string;
    /**
     * The type of extraction. Defines either usage of regular expression (`regex`) or the position of request attribute value to be extracted. When the `attribute` is `SERVICE_REQUEST_ATTRIBUTE` attribute and `aggregation` is `COUNT`, needs to be set to `ORIGINAL_TEXT`. Possible values are 	`AFTER_DELIMITER`, `BEFORE_DELIMITER`, `BETWEEN_DELIMITER`, `ORIGINAL_TEXT` and `REGEX_EXTRACTION`
     */
    kind: string;
    /**
     * The name of the placeholder. Use it in the naming pattern as `{name}`
     */
    name: string;
    /**
     * The format of the extracted string. Possible values are `ORIGINAL`, `TO_LOWER_CASE` and `TO_UPPER_CASE`
     */
    normalization?: string;
    /**
     * The One Agent attribute to extract from. Required if the kind value is `ONE_AGENT_ATTRIBUTE`. Not applicable otherwise.
     */
    oneagentAttributeKey?: string;
    /**
     * The request attribute to extract from. Required if the `kind` value is `SERVICE_REQUEST_ATTRIBUTE`. Not applicable otherwise
     */
    requestAttribute?: string;
    /**
     * Defines valid sources of request attributes for conditions or placeholders
     */
    source?: outputs.RequestNamingPlaceholdersPlaceholderSource;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
    /**
     * If `true` request attribute will be taken from a child service call. Only applicable for the `SERVICE_REQUEST_ATTRIBUTE` attribute. Defaults to `false`
     */
    useFromChildCalls?: boolean;
}
export interface RequestNamingPlaceholdersPlaceholderSource {
    /**
     * Use only request attributes from services that belong to this management zone.. Use either this or `serviceTag`
     */
    managementZone?: string;
    /**
     * Use only request attributes from services that have this tag. Use either this or `managementZone`
     */
    serviceTag?: outputs.RequestNamingPlaceholdersPlaceholderSourceServiceTag;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
}
export interface RequestNamingPlaceholdersPlaceholderSourceServiceTag {
    /**
     * The origin of the tag, such as AWS or Cloud Foundry. For custom tags use the `CONTEXTLESS` value. The context is set for tags that are automatically imported by OneAgent (for example, from the AWS console or environment variables). It’s useful for determining the origin of tags when not manually defined, and it also helps to prevent clashes with other existing tags. If the tag is not automatically imported, `CONTEXTLESS` set. Possible values are `AWS`, `AWS_GENERIC`, `AZURE`, `CLOUD_FOUNDRY`, `CONTEXTLESS`, `ENVIRONMENT`, `GOOGLE_COMPUTE_ENGINE` and `KUBERNETES`
     */
    context?: string;
    /**
     * The key of the tag. For custom tags, put the tag value here. The key allows categorization of multiple tags. It is possible that there are multiple values for a single key which will all be represented as standalone tags. Therefore, the key does not have the semantic of a map key but is more like a key of a key-value tuple. In some cases, for example custom tags, the key represents the actual tag value and the value field is not set – those are called valueless tags
     */
    key: string;
    /**
     * has no documentation
     */
    tagKey?: outputs.RequestNamingPlaceholdersPlaceholderSourceServiceTagTagKey;
    /**
     * The value of the tag. Not applicable to custom tags. If a tag does have a separate key and value (in the textual representation they are split by the colon ‘:’), this field is set with the actual value. Key-value pairs can occur for automatically imported tags and tags set by rules if extractors are used
     */
    value?: string;
}
export interface RequestNamingPlaceholdersPlaceholderSourceServiceTagTagKey {
    /**
     * has no documentation
     */
    context?: string;
    /**
     * has no documentation
     */
    key?: string;
}
export interface ResourceAttributesKeys {
    rules: outputs.ResourceAttributesKeysRule[];
}
export interface ResourceAttributesKeysRule {
    /**
     * Attribute key **service.name** is automatically captured by default
     */
    attributeKey: string;
    /**
     * This setting is enabled (`true`) or disabled (`false`)
     */
    enabled: boolean;
    /**
     * Possible Values: `MASK_ENTIRE_VALUE`, `MASK_ONLY_CONFIDENTIAL_DATA`, `NOT_MASKED`
     */
    masking: string;
}
export interface RumProviderBreakdownDomainNamePatternList {
    domainNamePatterns: outputs.RumProviderBreakdownDomainNamePatternListDomainNamePattern[];
}
export interface RumProviderBreakdownDomainNamePatternListDomainNamePattern {
    /**
     * Use a ends-with pattern for this content provider's domain
     */
    pattern: string;
}
export interface SegmentIncludes {
    /**
     * TODO: No documentation available
     */
    items?: outputs.SegmentIncludesItem[];
}
export interface SegmentIncludesItem {
    /**
     * [Experimental] The tables that the entity-filter will be applied to`
     */
    applyTos?: string[];
    /**
     * The data object that the filter will be applied to. Use '*all*data_object' to apply it to all dataObjects
     */
    dataObject: string;
    /**
     * Data will be filtered by this value
     */
    filter: string;
    /**
     * [Experimental] The relationship of an include which has to be be specified when the data object is an entity view
     */
    relationship?: outputs.SegmentIncludesItemRelationship;
}
export interface SegmentIncludesItemRelationship {
    /**
     * Name of the relationship
     */
    name: string;
    /**
     * Target of the relationship
     */
    target: string;
}
export interface SegmentVariables {
    /**
     * Type of the variable
     */
    type: string;
    /**
     * Value of the variable
     */
    value: string;
}
export interface ServiceAnomaliesFailureRates {
    /**
     * Parameters of failure rate increase auto-detection. Example: If the expected error rate is 1.5%, and you set an absolute increase of 1%, and a relative increase of 50%, the thresholds will be:  Absolute: 1.5% + **1%** = 2.5%  Relative: 1.5% + 1.5% * **50%** = 2.25%
     */
    auto?: outputs.ServiceAnomaliesFailureRatesAuto;
    /**
     * Fixed thresholds for failure rate increase detection
     */
    thresholds?: outputs.ServiceAnomaliesFailureRatesThresholds;
}
export interface ServiceAnomaliesFailureRatesAuto {
    /**
     * Absolute increase of failing service calls to trigger an alert, %
     */
    absolute: number;
    /**
     * Relative increase of failing service calls to trigger an alert, %
     */
    relative: number;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
}
export interface ServiceAnomaliesFailureRatesThresholds {
    /**
     * Sensitivity of the threshold.  With `low` sensitivity, high statistical confidence is used. Brief violations (for example, due to a surge in load) won't trigger alerts.  With `high` sensitivity, no statistical confidence is used. Each violation triggers alert
     */
    sensitivity: string;
    /**
     * Failure rate during any 5-minute period to trigger an alert, %
     */
    threshold: number;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
}
export interface ServiceAnomaliesLoad {
    /**
     * The configuration of traffic drops detection
     */
    drops?: outputs.ServiceAnomaliesLoadDrops;
    /**
     * The configuration of traffic spikes detection
     */
    spikes?: outputs.ServiceAnomaliesLoadSpikes;
}
export interface ServiceAnomaliesLoadDrops {
    /**
     * Alert if the service stays in abnormal state for at least *X* minutes
     */
    minutes?: number;
    /**
     * Alert if the observed load is more than *X* % of the expected value
     */
    percent?: number;
}
export interface ServiceAnomaliesLoadSpikes {
    /**
     * Alert if the service stays in abnormal state for at least *X* minutes
     */
    minutes?: number;
    /**
     * Alert if the observed load is more than *X* % of the expected value
     */
    percent?: number;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
}
export interface ServiceAnomaliesResponseTimes {
    /**
     * Parameters of the response time degradation auto-detection. Violation of **any** criterion triggers an alert
     */
    auto?: outputs.ServiceAnomaliesResponseTimesAuto;
    /**
     * Fixed thresholds for response time degradation detection
     */
    thresholds?: outputs.ServiceAnomaliesResponseTimesThresholds;
}
export interface ServiceAnomaliesResponseTimesAuto {
    /**
     * Minimal service load to detect response time degradation. Response time degradation of services with smaller load won't trigger alerts. Possible values are `FIFTEEN_REQUESTS_PER_MINUTE`, `FIVE_REQUESTS_PER_MINUTE`, `ONE_REQUEST_PER_MINUTE` and `TEN_REQUESTS_PER_MINUTE`
     */
    load: string;
    /**
     * Alert if the response time degrades by more than *X* milliseconds
     */
    milliseconds: number;
    /**
     * Alert if the response time degrades by more than *X* %
     */
    percent: number;
    /**
     * Alert if the response time of the slowest 10% degrades by more than *X* milliseconds
     */
    slowestMilliseconds: number;
    /**
     * Alert if the response time of the slowest 10% degrades by more than *X* milliseconds
     */
    slowestPercent: number;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
}
export interface ServiceAnomaliesResponseTimesThresholds {
    /**
     * Minimal service load to detect response time degradation. Response time degradation of services with smaller load won't trigger alerts. Possible values are `FIFTEEN_REQUESTS_PER_MINUTE`, `FIVE_REQUESTS_PER_MINUTE`, `ONE_REQUEST_PER_MINUTE` and `TEN_REQUESTS_PER_MINUTE`
     */
    load: string;
    /**
     * Response time during any 5-minute period to trigger an alert, in milliseconds
     */
    milliseconds: number;
    /**
     * Sensitivity of the threshold.  With `low` sensitivity, high statistical confidence is used. Brief violations (for example, due to a surge in load) won't trigger alerts.  With `high` sensitivity, no statistical confidence is used. Each violation triggers an alert
     */
    sensitivity: string;
    /**
     * Response time of the 10% slowest during any 5-minute period to trigger an alert, in milliseconds
     */
    slowestMilliseconds: number;
    /**
     * allows for configuring properties that are not explicitly supported by the current version of this provider
     */
    unknowns?: string;
}
export interface ServiceAnomaliesV2FailureRate {
    /**
     * Alert if the percentage of failing service calls increases by **both** the absolute and relative thresholds:
     */
    autoDetection?: outputs.ServiceAnomaliesV2FailureRateAutoDetection;
    /**
     * Possible Values: `Auto`, `Fixed`
     */
    detectionMode?: string;
    /**
     * This setting is enabled (`true`) or disabled (`false`)
     */
    enabled: boolean;
    /**
     * Alert if a given failure rate is exceeded during any 5-minute-period
     */
    fixedDetection?: outputs.ServiceAnomaliesV2FailureRateFixedDetection;
}
export interface ServiceAnomaliesV2FailureRateAutoDetection {
    /**
     * Absolute threshold
     */
    absoluteIncrease: number;
    /**
     * Avoid over-alerting
     */
    overAlertingProtection: outputs.ServiceAnomaliesV2FailureRateAutoDetectionOverAlertingProtection;
    /**
     * Relative threshold
     */
    relativeIncrease: number;
}
export interface ServiceAnomaliesV2FailureRateAutoDetectionOverAlertingProtection {
    /**
     * Only alert if the abnormal state remains for at least
     */
    minutesAbnormalState: number;
    /**
     * Only alert if there are at least
     */
    requestsPerMinute: number;
}
export interface ServiceAnomaliesV2FailureRateFixedDetection {
    /**
     * Avoid over-alerting
     */
    overAlertingProtection: outputs.ServiceAnomaliesV2FailureRateFixedDetectionOverAlertingProtection;
    /**
     * Possible Values: `High`, `Low`, `Medium`
     */
    sensitivity: string;
    /**
     * no documentation available
     */
    threshold: number;
}
export interface ServiceAnomaliesV2FailureRateFixedDetectionOverAlertingProtection {
    /**
     * Only alert if the abnormal state remains for at least
     */
    minutesAbnormalState: number;
    /**
     * Only alert if there are at least
     */
    requestsPerMinute: number;
}
export interface ServiceAnomaliesV2LoadDrops {
    /**
     * This setting is enabled (`true`) or disabled (`false`)
     */
    enabled: boolean;
    /**
     * Threshold
     */
    loadDropPercent?: number;
    /**
     * Time span
     */
    minutesAbnormalState?: number;
}
export interface ServiceAnomaliesV2LoadSpikes {
    /**
     * This setting is enabled (`true`) or disabled (`false`)
     */
    enabled: boolean;
    /**
     * Threshold
     */
    loadSpikePercent?: number;
    /**
     * Time span
     */
    minutesAbnormalState?: number;
}
export interface ServiceAnomaliesV2ResponseTime {
    /**
     * no documentation available
     */
    autoDetection?: outputs.ServiceAnomaliesV2ResponseTimeAutoDetection;
    /**
     * Possible Values: `Auto`, `Fixed`
     */
    detectionMode?: string;
    /**
     * This setting is enabled (`true`) or disabled (`false`)
     */
    enabled: boolean;
    /**
     * no documentation available
     */
    fixedDetection?: outputs.ServiceAnomaliesV2ResponseTimeFixedDetection;
}
export interface ServiceAnomaliesV2ResponseTimeAutoDetection {
    /**
     * Avoid over-alerting
     */
    overAlertingProtection: outputs.ServiceAnomaliesV2ResponseTimeAutoDetectionOverAlertingProtection;
    /**
     * Alert if the median response time of all requests degrades beyond **both** the absolute and relative thresholds:
     */
    responseTimeAll: outputs.ServiceAnomaliesV2ResponseTimeAutoDetectionResponseTimeAll;
    /**
     * Alert if the response time of the slowest 10% of requests degrades beyond **both** the absolute and relative thresholds:
     */
    responseTimeSlowest: outputs.ServiceAnomaliesV2ResponseTimeAutoDetectionResponseTimeSlowest;
}
export interface ServiceAnomaliesV2ResponseTimeAutoDetectionOverAlertingProtection {
    /**
     * Only alert if the abnormal state remains for at least
     */
    minutesAbnormalState: number;
    /**
     * Only alert if there are at least
     */
    requestsPerMinute: number;
}
export interface ServiceAnomaliesV2ResponseTimeAutoDetectionResponseTimeAll {
    /**
     * Absolute threshold
     */
    degradationMilliseconds: number;
    /**
     * Relative threshold
     */
    degradationPercent: number;
}
export interface ServiceAnomaliesV2ResponseTimeAutoDetectionResponseTimeSlowest {
    /**
     * Absolute threshold
     */
    slowestDegradationMilliseconds: number;
    /**
     * Relative threshold
     */
    slowestDegradationPercent: number;
}
export interface ServiceAnomaliesV2ResponseTimeFixedDetection {
    /**
     * Avoid over-alerting
     */
    overAlertingProtection: outputs.ServiceAnomaliesV2ResponseTimeFixedDetectionOverAlertingProtection;
    /**
     * Alert if the median response time of all requests degrades beyond this threshold:
     */
    responseTimeAll: outputs.ServiceAnomaliesV2ResponseTimeFixedDetectionResponseTimeAll;
    /**
     * Alert if the response time of the slowest 10% of requests degrades beyond this threshold:
     */
    responseTimeSlowest: outputs.ServiceAnomaliesV2ResponseTimeFixedDetectionResponseTimeSlowest;
    /**
     * Possible Values: `High`, `Low`, `Medium`
     */
    sensitivity: string;
}
export interface ServiceAnomaliesV2ResponseTimeFixedDetectionOverAlertingProtection {
    /**
     * Only alert if the abnormal state remains for at least
     */
    minutesAbnormalState: number;
    /**
     * Only alert if there are at least
     */
    requestsPerMinute: number;
}
export interface ServiceAnomaliesV2ResponseTimeFixedDetectionResponseTimeAll {
    /**
     * Alert if the response time degrades beyond this many ms within an observation period of 5 minutes
     */
    degradationMilliseconds: number;
}
export interface ServiceAnomaliesV2ResponseTimeFixedDetectionResponseTimeSlowest {
    /**
     * Alert if the response time of the slowest 10% degrades beyond this many ms within an observation period of 5 minutes
     */
    slowestDegradationMilliseconds: number;
}
export interface ServiceExternalWebRequestConditions {
    conditions: outputs.ServiceExternalWebRequestConditionsCondition[];
}
export interface ServiceExternalWebRequestConditionsCondition {
    /**
     * Take the value of this attribute
     */
    attribute: string;
    /**
     * Apply this operation
     */
    compareOperationType: string;
    /**
     * Technology
     */
    frameworks?: string[];
    /**
     * Ignore case sensitivity for texts.
     */
    ignoreCase?: boolean;
    /**
     * Value
     */
    intValue?: number;
    /**
     * Values
     */
    intValues?: number[];
    /**
     * From
     */
    ipRangeFrom?: string;
    /**
     * To
     */
    ipRangeTo?: string;
    /**
     * If multiple values are specified, at least one of them must match for the condition to match
     */
    tagValues?: string[];
    /**
     * If multiple values are specified, at least one of them must match for the condition to match
     */
    textValues?: string[];
}
export interface ServiceExternalWebRequestIdContributors {
    /**
     * Application identifier
     */
    applicationId: outputs.ServiceExternalWebRequestIdContributorsApplicationId;
    /**
     * URL context root
     */
    contextRoot: outputs.ServiceExternalWebRequestIdContributorsContextRoot;
    /**
     * Let the port contribute to the Service Id
     */
    portForServiceId: boolean;
    /**
     * Public domain name
     */
    publicDomainName: outputs.ServiceExternalWebRequestIdContributorsPublicDomainName;
}
export interface ServiceExternalWebRequestIdContributorsApplicationId {
    /**
     * Transform this value before letting it contribute to the Service Id
     */
    enableIdContributor: boolean;
    /**
     * no documentation available
     */
    serviceIdContributor?: outputs.ServiceExternalWebRequestIdContributorsApplicationIdServiceIdContributor;
}
export interface ServiceExternalWebRequestIdContributorsApplicationIdServiceIdContributor {
    /**
     * Possible Values: `OriginalValue`, `OverrideValue`, `TransformValue`
     */
    contributionType: string;
    /**
     * Choose how to transform a value before it contributes to the Service Id. Note that all of the Transformations are always applied. Transformations are applied in the order they are specified, and the output of the previous transformation is the input for the next one. The resulting value contributes to the Service Id and can be found on the **Service overview page** under **Properties and tags**.
     */
    transformations?: outputs.ServiceExternalWebRequestIdContributorsApplicationIdServiceIdContributorTransformations;
    /**
     * The value to be used instead of the detected value.
     */
    valueOverride?: outputs.ServiceExternalWebRequestIdContributorsApplicationIdServiceIdContributorValueOverride;
}
export interface ServiceExternalWebRequestIdContributorsApplicationIdServiceIdContributorTransformations {
    transformations: outputs.ServiceExternalWebRequestIdContributorsApplicationIdServiceIdContributorTransformationsTransformation[];
}
export interface ServiceExternalWebRequestIdContributorsApplicationIdServiceIdContributorTransformationsTransformation {
    /**
     * include hexadecimal numbers
     */
    includeHexNumbers?: boolean;
    /**
     * min digit count
     */
    minDigitCount?: number;
    /**
     * no documentation available
     */
    prefix?: string;
    /**
     * replacement
     */
    replacementValue?: string;
    /**
     * How many segments should be taken.
     */
    segmentCount?: number;
    /**
     * select index
     */
    selectIndex?: number;
    /**
     * split by
     */
    splitDelimiter?: string;
    /**
     * no documentation available
     */
    suffix?: string;
    /**
     * take from end
     */
    takeFromEnd?: boolean;
    /**
     * Possible Values: `AFTER`, `BEFORE`, `BETWEEN`, `REMOVE_CREDIT_CARDS`, `REMOVE_IBANS`, `REMOVE_IPS`, `REMOVE_NUMBERS`, `REPLACE_BETWEEN`, `SPLIT_SELECT`, `TAKE_SEGMENTS`
     */
    transformationType: string;
}
export interface ServiceExternalWebRequestIdContributorsApplicationIdServiceIdContributorValueOverride {
    /**
     * no documentation available
     */
    value: string;
}
export interface ServiceExternalWebRequestIdContributorsContextRoot {
    /**
     * Transform this value before letting it contribute to the Service Id
     */
    enableIdContributor: boolean;
    /**
     * no documentation available
     */
    serviceIdContributor?: outputs.ServiceExternalWebRequestIdContributorsContextRootServiceIdContributor;
}
export interface ServiceExternalWebRequestIdContributorsContextRootServiceIdContributor {
    /**
     * Possible Values: `OriginalValue`, `OverrideValue`, `TransformURL`, `TransformValue`
     */
    contributionType: string;
    /**
     * The number of segments of the URL to be kept. The URL is divided by slashes (/), the indexing starts with 1 at context root. For example, if you specify 2 for the `www.dynatrace.com/support/help/dynatrace-api/` URL, the value of `support/help` is used.
     */
    segmentCount?: number;
    /**
     * Choose how to transform a value before it contributes to the Service Id. Note that all of the Transformations are always applied. Transformations are applied in the order they are specified, and the output of the previous transformation is the input for the next one. The resulting value contributes to the Service Id and can be found on the **Service overview page** under **Properties and tags**.
     */
    transformations?: outputs.ServiceExternalWebRequestIdContributorsContextRootServiceIdContributorTransformations;
    /**
     * The value to be used instead of the detected value.
     */
    valueOverride?: outputs.ServiceExternalWebRequestIdContributorsContextRootServiceIdContributorValueOverride;
}
export interface ServiceExternalWebRequestIdContributorsContextRootServiceIdContributorTransformations {
    transformations: outputs.ServiceExternalWebRequestIdContributorsContextRootServiceIdContributorTransformationsTransformation[];
}
export interface ServiceExternalWebRequestIdContributorsContextRootServiceIdContributorTransformationsTransformation {
    /**
     * include hexadecimal numbers
     */
    includeHexNumbers?: boolean;
    /**
     * min digit count
     */
    minDigitCount?: number;
    /**
     * no documentation available
     */
    prefix?: string;
    /**
     * replacement
     */
    replacementValue?: string;
    /**
     * no documentation available
     */
    suffix?: string;
    /**
     * Possible Values: `BEFORE`, `REMOVE_CREDIT_CARDS`, `REMOVE_IBANS`, `REMOVE_IPS`, `REMOVE_NUMBERS`, `REPLACE_BETWEEN`
     */
    transformationType: string;
}
export interface ServiceExternalWebRequestIdContributorsContextRootServiceIdContributorValueOverride {
    /**
     * no documentation available
     */
    value: string;
}
export interface ServiceExternalWebRequestIdContributorsPublicDomainName {
    /**
     * Transform this value before letting it contribute to the Service Id
     */
    enableIdContributor: boolean;
    /**
     * no documentation available
     */
    serviceIdContributor?: outputs.ServiceExternalWebRequestIdContributorsPublicDomainNameServiceIdContributor;
}
export interface ServiceExternalWebRequestIdContributorsPublicDomainNameServiceIdContributor {
    /**
     * Possible Values: `OriginalValue`, `OverrideValue`, `TransformValue`
     */
    contributionType: string;
    /**
     * Use the detected host name instead of the request's domain name.
     */
    copyFromHostName?: boolean;
    /**
     * Choose how to transform a value before it contributes to the Service Id. Note that all of the Transformations are always applied. Transformations are applied in the order they are specified, and the output of the previous transformation is the input for the next one. The resulting value contributes to the Service Id and can be found on the **Service overview page** under **Properties and tags**.
     */
    transformations?: outputs.ServiceExternalWebRequestIdContributorsPublicDomainNameServiceIdContributorTransformations;
    /**
     * The value to be used instead of the detected value.
     */
    valueOverride?: outputs.ServiceExternalWebRequestIdContributorsPublicDomainNameServiceIdContributorValueOverride;
}
export interface ServiceExternalWebRequestIdContributorsPublicDomainNameServiceIdContributorTransformations {
    transformations: outputs.ServiceExternalWebRequestIdContributorsPublicDomainNameServiceIdContributorTransformationsTransformation[];
}
export interface ServiceExternalWebRequestIdContributorsPublicDomainNameServiceIdContributorTransformationsTransformation {
    /**
     * include hexadecimal numbers
     */
    includeHexNumbers?: boolean;
    /**
     * min digit count
     */
    minDigitCount?: number;
    /**
     * no documentation available
     */
    prefix?: string;
    /**
     * replacement
     */
    replacementValue?: string;
    /**
     * How many segments should be taken.
     */
    segmentCount?: number;
    /**
     * select index
     */
    selectIndex?: number;
    /**
     * split by
     */
    splitDelimiter?: string;
    /**
     * no documentation available
     */
    suffix?: string;
    /**
     * take from end
     */
    takeFromEnd?: boolean;
    /**
     * Possible Values: `AFTER`, `BEFORE`, `BETWEEN`, `REMOVE_CREDIT_CARDS`, `REMOVE_IBANS`, `REMOVE_IPS`, `REMOVE_NUMBERS`, `REPLACE_BETWEEN`, `SPLIT_SELECT`, `TAKE_SEGMENTS`
     */
    transformationType: string;
}
export interface ServiceExternalWebRequestIdContributorsPublicDomainNameServiceIdContributorValueOverride {
    /**
     * no documentation available
     */
    value: string;
}
export interface ServiceExternalWebServiceConditions {
    conditions: outputs.ServiceExternalWebServiceConditionsCondition[];
}
export interface ServiceExternalWebServiceConditionsCondition {
    /**
     * Take the value of this attribute
     */
    attribute: string;
    /**
     * Apply this operation
     */
    compareOperationType: string;
    /**
     * Technology
     */
    frameworks?: string[];
    /**
     * Ignore case sensitivity for texts.
     */
    ignoreCase?: boolean;
    /**
     * Value
     */
    intValue?: number;
    /**
     * Values
     */
    intValues?: number[];
    /**
     * From
     */
    ipRangeFrom?: string;
    /**
     * To
     */
    ipRangeTo?: string;
    /**
     * If multiple values are specified, at least one of them must match for the condition to match
     */
    tagValues?: string[];
    /**
     * If multiple values are specified, at least one of them must match for the condition to match
     */
    textValues?: string[];
}
export interface ServiceExternalWebServiceIdContributors {
    /**
     * Detect the matching requests as web request services instead of web services.
     */
    detectAsWebRequestService: boolean;
    /**
     * Let the port contribute to the Service Id
     */
    portForServiceId?: boolean;
    /**
     * URL path
     */
    urlPath?: outputs.ServiceExternalWebServiceIdContributorsUrlPath;
}
export interface ServiceExternalWebServiceIdContributorsUrlPath {
    /**
     * Transform this value before letting it contribute to the Service Id
     */
    enableIdContributor: boolean;
    /**
     * no documentation available
     */
    serviceIdContributor?: outputs.ServiceExternalWebServiceIdContributorsUrlPathServiceIdContributor;
}
export interface ServiceExternalWebServiceIdContributorsUrlPathServiceIdContributor {
    /**
     * Possible Values: `OriginalValue`, `OverrideValue`, `TransformValue`
     */
    contributionType: string;
    /**
     * Choose how to transform a value before it contributes to the Service Id. Note that all of the Transformations are always applied. Transformations are applied in the order they are specified, and the output of the previous transformation is the input for the next one. The resulting value contributes to the Service Id and can be found on the **Service overview page** under **Properties and tags**.
     */
    transformations?: outputs.ServiceExternalWebServiceIdContributorsUrlPathServiceIdContributorTransformations;
    /**
     * The value to be used instead of the detected value.
     */
    valueOverride?: outputs.ServiceExternalWebServiceIdContributorsUrlPathServiceIdContributorValueOverride;
}
export interface ServiceExternalWebServiceIdContributorsUrlPathServiceIdContributorTransformations {
    transformations: outputs.ServiceExternalWebServiceIdContributorsUrlPathServiceIdContributorTransformationsTransformation[];
}
export interface ServiceExternalWebServiceIdContributorsUrlPathServiceIdContributorTransformationsTransformation {
    /**
     * include hexadecimal numbers
     */
    includeHexNumbers?: boolean;
    /**
     * min digit count
     */
    minDigitCount?: number;
    /**
     * no documentation available
     */
    prefix?: string;
    /**
     * replacement
     */
    replacementValue?: string;
    /**
     * How many segments should be taken.
     */
    segmentCount?: number;
    /**
     * select index
     */
    selectIndex?: number;
    /**
     * split by
     */
    splitDelimiter?: string;
    /**
     * no documentation available
     */
    suffix?: string;
    /**
     * take from end
     */
    takeFromEnd?: boolean;
    /**
     * Possible Values: `AFTER`, `BEFORE`, `BETWEEN`, `REMOVE_CREDIT_CARDS`, `REMOVE_IBANS`, `REMOVE_IPS`, `REMOVE_NUMBERS`, `REPLACE_BETWEEN`, `SPLIT_SELECT`, `TAKE_SEGMENTS`
     */
    transformationType: string;
}
export interface ServiceExternalWebServiceIdContributorsUrlPathServiceIdContributorValueOverride {
    /**
     * no documentation available
     */
    value: string;
}
export interface ServiceFailureExceptionRules {
    /**
     * Some custom error situations are only detectable via a return value or other means. To support such cases, [define a request attribute](https://dt-url.net/ys5k0p4y) that captures the required data. Then define a custom error rule that determines if the request has failed based on the value of the request attribute.
     */
    customErrorRules?: outputs.ServiceFailureExceptionRulesCustomErrorRules;
    /**
     * There may be situations where your application code handles exceptions gracefully in a manner that these failures aren't detected by Dynatrace. Use this setting to define specific gracefully-handled exceptions that should be treated as service failures.
     */
    customHandledExceptions?: outputs.ServiceFailureExceptionRulesCustomHandledExceptions;
    /**
     * Ignore all exceptions
     */
    ignoreAllExceptions: boolean;
    /**
     * Ignore span failure detection
     */
    ignoreSpanFailureDetection: boolean;
    /**
     * Some exceptions that are thrown by legacy or 3rd-party code indicate a specific response, not an error. Use this setting to instruct Dynatrace to treat such exceptions as non-failed requests.. If an exception matching any of the defined patterns occurs in a request, it will not be considered as a failure. Other exceptions occurring at the same request might still mark the request as failed.
     */
    ignoredExceptions?: outputs.ServiceFailureExceptionRulesIgnoredExceptions;
    /**
     * Define exceptions which indicate that a service call should not be considered as failed. E.g. an exception indicating that the client aborted the operation.. If an exception matching any of the defined patterns occurs on the entry node of the service, it will be considered successful. Compared to ignored exceptions, the request will be considered successful even if other exceptions occur in the same request.
     */
    successForcingExceptions?: outputs.ServiceFailureExceptionRulesSuccessForcingExceptions;
}
export interface ServiceFailureExceptionRulesCustomErrorRules {
    customErrorRules: outputs.ServiceFailureExceptionRulesCustomErrorRulesCustomErrorRule[];
}
export interface ServiceFailureExceptionRulesCustomErrorRulesCustomErrorRule {
    /**
     * Request attribute condition
     */
    condition: outputs.ServiceFailureExceptionRulesCustomErrorRulesCustomErrorRuleCondition;
    /**
     * Request attribute
     */
    requestAttribute: string;
}
export interface ServiceFailureExceptionRulesCustomErrorRulesCustomErrorRuleCondition {
    /**
     * Case sensitive
     */
    caseSensitive?: boolean;
    /**
     * Apply this comparison
     */
    compareOperationType: string;
    /**
     * Value
     */
    doubleValue?: number;
    /**
     * Value
     */
    intValue?: number;
    /**
     * Value
     */
    textValue?: string;
}
export interface ServiceFailureExceptionRulesCustomHandledExceptions {
    customHandledExceptions: outputs.ServiceFailureExceptionRulesCustomHandledExceptionsCustomHandledException[];
}
export interface ServiceFailureExceptionRulesCustomHandledExceptionsCustomHandledException {
    /**
     * The pattern will match if it is contained within the actual class name.
     */
    classPattern?: string;
    /**
     * Optionally, define an exception message pattern. The pattern will match if the actual exception message contains the pattern.
     */
    messagePattern?: string;
}
export interface ServiceFailureExceptionRulesIgnoredExceptions {
    customHandledExceptions: outputs.ServiceFailureExceptionRulesIgnoredExceptionsCustomHandledException[];
}
export interface ServiceFailureExceptionRulesIgnoredExceptionsCustomHandledException {
    /**
     * The pattern will match if it is contained within the actual class name.
     */
    classPattern?: string;
    /**
     * Optionally, define an exception message pattern. The pattern will match if the actual exception message contains the pattern.
     */
    messagePattern?: string;
}
export interface ServiceFailureExceptionRulesSuccessForcingExceptions {
    customHandledExceptions: outputs.ServiceFailureExceptionRulesSuccessForcingExceptionsCustomHandledException[];
}
export interface ServiceFailureExceptionRulesSuccessForcingExceptionsCustomHandledException {
    /**
     * The pattern will match if it is contained within the actual class name.
     */
    classPattern?: string;
    /**
     * Optionally, define an exception message pattern. The pattern will match if the actual exception message contains the pattern.
     */
    messagePattern?: string;
}
export interface ServiceFullWebRequestConditions {
    conditions: outputs.ServiceFullWebRequestConditionsCondition[];
}
export interface ServiceFullWebRequestConditionsCondition {
    /**
     * Take the value of this attribute
     */
    attribute: string;
    /**
     * Apply this operation
     */
    compareOperationType: string;
    /**
     * Technology
     */
    frameworks?: string[];
    /**
     * Ignore case sensitivity for texts.
     */
    ignoreCase?: boolean;
    /**
     * Value
     */
    intValue?: number;
    /**
     * Values
     */
    intValues?: number[];
    /**
     * From
     */
    ipRangeFrom?: string;
    /**
     * To
     */
    ipRangeTo?: string;
    /**
     * If multiple values are specified, at least one of them must match for the condition to match
     */
    tagValues?: string[];
    /**
     * If multiple values are specified, at least one of them must match for the condition to match
     */
    textValues?: string[];
}
export interface ServiceFullWebRequestIdContributors {
    /**
     * Application identifier
     */
    applicationId: outputs.ServiceFullWebRequestIdContributorsApplicationId;
    /**
     * The context root is the first segment of the request URL after the Server name. For example, in the `www.dynatrace.com/support/help/dynatrace-api/` URL the context root is `/support`. The context root value can be found on the **Service overview page** under **Properties and tags**.
     */
    contextRoot: outputs.ServiceFullWebRequestIdContributorsContextRoot;
    /**
     * Server Name
     */
    serverName: outputs.ServiceFullWebRequestIdContributorsServerName;
}
export interface ServiceFullWebRequestIdContributorsApplicationId {
    /**
     * Transform this value before letting it contribute to the Service Id
     */
    enableIdContributor: boolean;
    /**
     * no documentation available
     */
    serviceIdContributor?: outputs.ServiceFullWebRequestIdContributorsApplicationIdServiceIdContributor;
}
export interface ServiceFullWebRequestIdContributorsApplicationIdServiceIdContributor {
    /**
     * Possible Values: `OriginalValue`, `OverrideValue`, `TransformValue`
     */
    contributionType: string;
    /**
     * Choose how to transform a value before it contributes to the Service Id. Note that all of the Transformations are always applied. Transformations are applied in the order they are specified, and the output of the previous transformation is the input for the next one. The resulting value contributes to the Service Id and can be found on the **Service overview page** under **Properties and tags**.
     */
    transformations?: outputs.ServiceFullWebRequestIdContributorsApplicationIdServiceIdContributorTransformations;
    /**
     * The value to be used instead of the detected value.
     */
    valueOverride?: outputs.ServiceFullWebRequestIdContributorsApplicationIdServiceIdContributorValueOverride;
}
export interface ServiceFullWebRequestIdContributorsApplicationIdServiceIdContributorTransformations {
    transformations: outputs.ServiceFullWebRequestIdContributorsApplicationIdServiceIdContributorTransformationsTransformation[];
}
export interface ServiceFullWebRequestIdContributorsApplicationIdServiceIdContributorTransformationsTransformation {
    /**
     * include hexadecimal numbers
     */
    includeHexNumbers?: boolean;
    /**
     * min digit count
     */
    minDigitCount?: number;
    /**
     * no documentation available
     */
    prefix?: string;
    /**
     * replacement
     */
    replacementValue?: string;
    /**
     * How many segments should be taken.
     */
    segmentCount?: number;
    /**
     * select index
     */
    selectIndex?: number;
    /**
     * split by
     */
    splitDelimiter?: string;
    /**
     * no documentation available
     */
    suffix?: string;
    /**
     * take from end
     */
    takeFromEnd?: boolean;
    /**
     * Possible Values: `AFTER`, `BEFORE`, `BETWEEN`, `REMOVE_CREDIT_CARDS`, `REMOVE_IBANS`, `REMOVE_IPS`, `REMOVE_NUMBERS`, `REPLACE_BETWEEN`, `SPLIT_SELECT`, `TAKE_SEGMENTS`
     */
    transformationType: string;
}
export interface ServiceFullWebRequestIdContributorsApplicationIdServiceIdContributorValueOverride {
    /**
     * no documentation available
     */
    value: string;
}
export interface ServiceFullWebRequestIdContributorsContextRoot {
    /**
     * Transform this value before letting it contribute to the Service Id
     */
    enableIdContributor: boolean;
    /**
     * no documentation available
     */
    serviceIdContributor?: outputs.ServiceFullWebRequestIdContributorsContextRootServiceIdContributor;
}
export interface ServiceFullWebRequestIdContributorsContextRootServiceIdContributor {
    /**
     * Possible Values: `OriginalValue`, `OverrideValue`, `TransformURL`, `TransformValue`
     */
    contributionType: string;
    /**
     * The number of segments of the URL to be kept. The URL is divided by slashes (/), the indexing starts with 1 at context root. For example, if you specify 2 for the `www.dynatrace.com/support/help/dynatrace-api/` URL, the value of `support/help` is used.
     */
    segmentCount?: number;
    /**
     * Choose how to transform a value before it contributes to the Service Id. Note that all of the Transformations are always applied. Transformations are applied in the order they are specified, and the output of the previous transformation is the input for the next one. The resulting value contributes to the Service Id and can be found on the **Service overview page** under **Properties and tags**.
     */
    transformations?: outputs.ServiceFullWebRequestIdContributorsContextRootServiceIdContributorTransformations;
    /**
     * The value to be used instead of the detected value.
     */
    valueOverride?: outputs.ServiceFullWebRequestIdContributorsContextRootServiceIdContributorValueOverride;
}
export interface ServiceFullWebRequestIdContributorsContextRootServiceIdContributorTransformations {
    transformations: outputs.ServiceFullWebRequestIdContributorsContextRootServiceIdContributorTransformationsTransformation[];
}
export interface ServiceFullWebRequestIdContributorsContextRootServiceIdContributorTransformationsTransformation {
    /**
     * include hexadecimal numbers
     */
    includeHexNumbers?: boolean;
    /**
     * min digit count
     */
    minDigitCount?: number;
    /**
     * no documentation available
     */
    prefix?: string;
    /**
     * replacement
     */
    replacementValue?: string;
    /**
     * no documentation available
     */
    suffix?: string;
    /**
     * Possible Values: `BEFORE`, `REMOVE_CREDIT_CARDS`, `REMOVE_IBANS`, `REMOVE_IPS`, `REMOVE_NUMBERS`, `REPLACE_BETWEEN`
     */
    transformationType: string;
}
export interface ServiceFullWebRequestIdContributorsContextRootServiceIdContributorValueOverride {
    /**
     * no documentation available
     */
    value: string;
}
export interface ServiceFullWebRequestIdContributorsServerName {
    /**
     * Transform this value before letting it contribute to the Service Id
     */
    enableIdContributor: boolean;
    /**
     * no documentation available
     */
    serviceIdContributor?: outputs.ServiceFullWebRequestIdContributorsServerNameServiceIdContributor;
}
export interface ServiceFullWebRequestIdContributorsServerNameServiceIdContributor {
    /**
     * Possible Values: `OriginalValue`, `OverrideValue`, `TransformValue`
     */
    contributionType: string;
    /**
     * Choose how to transform a value before it contributes to the Service Id. Note that all of the Transformations are always applied. Transformations are applied in the order they are specified, and the output of the previous transformation is the input for the next one. The resulting value contributes to the Service Id and can be found on the **Service overview page** under **Properties and tags**.
     */
    transformations?: outputs.ServiceFullWebRequestIdContributorsServerNameServiceIdContributorTransformations;
    /**
     * The value to be used instead of the detected value.
     */
    valueOverride?: outputs.ServiceFullWebRequestIdContributorsServerNameServiceIdContributorValueOverride;
}
export interface ServiceFullWebRequestIdContributorsServerNameServiceIdContributorTransformations {
    transformations: outputs.ServiceFullWebRequestIdContributorsServerNameServiceIdContributorTransformationsTransformation[];
}
export interface ServiceFullWebRequestIdContributorsServerNameServiceIdContributorTransformationsTransformation {
    /**
     * include hexadecimal numbers
     */
    includeHexNumbers?: boolean;
    /**
     * min digit count
     */
    minDigitCount?: number;
    /**
     * no documentation available
     */
    prefix?: string;
    /**
     * replacement
     */
    replacementValue?: string;
    /**
     * How many segments should be taken.
     */
    segmentCount?: number;
    /**
     * select index
     */
    selectIndex?: number;
    /**
     * split by
     */
    splitDelimiter?: string;
    /**
     * no documentation available
     */
    suffix?: string;
    /**
     * take from end
     */
    takeFromEnd?: boolean;
    /**
     * Possible Values: `AFTER`, `BEFORE`, `BETWEEN`, `REMOVE_CREDIT_CARDS`, `REMOVE_IBANS`, `REMOVE_IPS`, `REMOVE_NUMBERS`, `REPLACE_BETWEEN`, `SPLIT_SELECT`, `TAKE_SEGMENTS`
     */
    transformationType: string;
}
export interface ServiceFullWebRequestIdContributorsServerNameServiceIdContributorValueOverride {
    /**
     * no documentation available
     */
    value: string;
}
export interface ServiceFullWebServiceConditions {
    conditions: outputs.ServiceFullWebServiceConditionsCondition[];
}
export interface ServiceFullWebServiceConditionsCondition {
    /**
     * Take the value of this attribute
     */
    attribute: string;
    /**
     * Apply this operation
     */
    compareOperationType: string;
    /**
     * Technology
     */
    frameworks?: string[];
    /**
     * Ignore case sensitivity for texts.
     */
    ignoreCase?: boolean;
    /**
     * Value
     */
    intValue?: number;
    /**
     * Values
     */
    intValues?: number[];
    /**
     * From
     */
    ipRangeFrom?: string;
    /**
     * To
     */
    ipRangeTo?: string;
    /**
     * If multiple values are specified, at least one of them must match for the condition to match
     */
    tagValues?: string[];
    /**
     * If multiple values are specified, at least one of them must match for the condition to match
     */
    textValues?: string[];
}
export interface ServiceFullWebServiceIdContributors {
    /**
     * Application identifier
     */
    applicationId?: outputs.ServiceFullWebServiceIdContributorsApplicationId;
    /**
     * The context root is the first segment of the request URL after the Server name. For example, in the `www.dynatrace.com/support/help/dynatrace-api/` URL the context root is `/support`. The context root value can be found on the **Service overview page** under **Properties and tags**.
     */
    contextRoot?: outputs.ServiceFullWebServiceIdContributorsContextRoot;
    /**
     * Detect the matching requests as full web services (false) or web request services (true).
     */
    detectAsWebRequestService: boolean;
    /**
     * Server name
     */
    serverName?: outputs.ServiceFullWebServiceIdContributorsServerName;
    /**
     * Web service name
     */
    webServiceName?: outputs.ServiceFullWebServiceIdContributorsWebServiceName;
    /**
     * Web service namespace
     */
    webServiceNamespace?: outputs.ServiceFullWebServiceIdContributorsWebServiceNamespace;
}
export interface ServiceFullWebServiceIdContributorsApplicationId {
    /**
     * Transform this value before letting it contribute to the Service Id
     */
    enableIdContributor: boolean;
    /**
     * no documentation available
     */
    serviceIdContributor?: outputs.ServiceFullWebServiceIdContributorsApplicationIdServiceIdContributor;
}
export interface ServiceFullWebServiceIdContributorsApplicationIdServiceIdContributor {
    /**
     * Possible Values: `OriginalValue`, `OverrideValue`, `TransformValue`
     */
    contributionType: string;
    /**
     * Choose how to transform a value before it contributes to the Service Id. Note that all of the Transformations are always applied. Transformations are applied in the order they are specified, and the output of the previous transformation is the input for the next one. The resulting value contributes to the Service Id and can be found on the **Service overview page** under **Properties and tags**.
     */
    transformations?: outputs.ServiceFullWebServiceIdContributorsApplicationIdServiceIdContributorTransformations;
    /**
     * The value to be used instead of the detected value.
     */
    valueOverride?: outputs.ServiceFullWebServiceIdContributorsApplicationIdServiceIdContributorValueOverride;
}
export interface ServiceFullWebServiceIdContributorsApplicationIdServiceIdContributorTransformations {
    transformations: outputs.ServiceFullWebServiceIdContributorsApplicationIdServiceIdContributorTransformationsTransformation[];
}
export interface ServiceFullWebServiceIdContributorsApplicationIdServiceIdContributorTransformationsTransformation {
    /**
     * include hexadecimal numbers
     */
    includeHexNumbers?: boolean;
    /**
     * min digit count
     */
    minDigitCount?: number;
    /**
     * no documentation available
     */
    prefix?: string;
    /**
     * replacement
     */
    replacementValue?: string;
    /**
     * How many segments should be taken.
     */
    segmentCount?: number;
    /**
     * select index
     */
    selectIndex?: number;
    /**
     * split by
     */
    splitDelimiter?: string;
    /**
     * no documentation available
     */
    suffix?: string;
    /**
     * take from end
     */
    takeFromEnd?: boolean;
    /**
     * Possible Values: `AFTER`, `BEFORE`, `BETWEEN`, `REMOVE_CREDIT_CARDS`, `REMOVE_IBANS`, `REMOVE_IPS`, `REMOVE_NUMBERS`, `REPLACE_BETWEEN`, `SPLIT_SELECT`, `TAKE_SEGMENTS`
     */
    transformationType: string;
}
export interface ServiceFullWebServiceIdContributorsApplicationIdServiceIdContributorValueOverride {
    /**
     * no documentation available
     */
    value: string;
}
export interface ServiceFullWebServiceIdContributorsContextRoot {
    /**
     * Transform this value before letting it contribute to the Service Id
     */
    enableIdContributor: boolean;
    /**
     * no documentation available
     */
    serviceIdContributor?: outputs.ServiceFullWebServiceIdContributorsContextRootServiceIdContributor;
}
export interface ServiceFullWebServiceIdContributorsContextRootServiceIdContributor {
    /**
     * Possible Values: `OriginalValue`, `OverrideValue`, `TransformURL`, `TransformValue`
     */
    contributionType: string;
    /**
     * The number of segments of the URL to be kept. The URL is divided by slashes (/), the indexing starts with 1 at context root. For example, if you specify 2 for the `www.dynatrace.com/support/help/dynatrace-api/` URL, the value of `support/help` is used.
     */
    segmentCount?: number;
    /**
     * Choose how to transform a value before it contributes to the Service Id. Note that all of the Transformations are always applied. Transformations are applied in the order they are specified, and the output of the previous transformation is the input for the next one. The resulting value contributes to the Service Id and can be found on the **Service overview page** under **Properties and tags**.
     */
    transformations?: outputs.ServiceFullWebServiceIdContributorsContextRootServiceIdContributorTransformations;
    /**
     * The value to be used instead of the detected value.
     */
    valueOverride?: outputs.ServiceFullWebServiceIdContributorsContextRootServiceIdContributorValueOverride;
}
export interface ServiceFullWebServiceIdContributorsContextRootServiceIdContributorTransformations {
    transformations: outputs.ServiceFullWebServiceIdContributorsContextRootServiceIdContributorTransformationsTransformation[];
}
export interface ServiceFullWebServiceIdContributorsContextRootServiceIdContributorTransformationsTransformation {
    /**
     * include hexadecimal numbers
     */
    includeHexNumbers?: boolean;
    /**
     * min digit count
     */
    minDigitCount?: number;
    /**
     * no documentation available
     */
    prefix?: string;
    /**
     * replacement
     */
    replacementValue?: string;
    /**
     * no documentation available
     */
    suffix?: string;
    /**
     * Possible Values: `BEFORE`, `REMOVE_CREDIT_CARDS`, `REMOVE_IBANS`, `REMOVE_IPS`, `REMOVE_NUMBERS`, `REPLACE_BETWEEN`
     */
    transformationType: string;
}
export interface ServiceFullWebServiceIdContributorsContextRootServiceIdContributorValueOverride {
    /**
     * no documentation available
     */
    value: string;
}
export interface ServiceFullWebServiceIdContributorsServerName {
    /**
     * Transform this value before letting it contribute to the Service Id
     */
    enableIdContributor: boolean;
    /**
     * no documentation available
     */
    serviceIdContributor?: outputs.ServiceFullWebServiceIdContributorsServerNameServiceIdContributor;
}
export interface ServiceFullWebServiceIdContributorsServerNameServiceIdContributor {
    /**
     * Possible Values: `OriginalValue`, `OverrideValue`, `TransformValue`
     */
    contributionType: string;
    /**
     * Choose how to transform a value before it contributes to the Service Id. Note that all of the Transformations are always applied. Transformations are applied in the order they are specified, and the output of the previous transformation is the input for the next one. The resulting value contributes to the Service Id and can be found on the **Service overview page** under **Properties and tags**.
     */
    transformations?: outputs.ServiceFullWebServiceIdContributorsServerNameServiceIdContributorTransformations;
    /**
     * The value to be used instead of the detected value.
     */
    valueOverride?: outputs.ServiceFullWebServiceIdContributorsServerNameServiceIdContributorValueOverride;
}
export interface ServiceFullWebServiceIdContributorsServerNameServiceIdContributorTransformations {
    transformations: outputs.ServiceFullWebServiceIdContributorsServerNameServiceIdContributorTransformationsTransformation[];
}
export interface ServiceFullWebServiceIdContributorsServerNameServiceIdContributorTransformationsTransformation {
    /**
     * include hexadecimal numbers
     */
    includeHexNumbers?: boolean;
    /**
     * min digit count
     */
    minDigitCount?: number;
    /**
     * no documentation available
     */
    prefix?: string;
    /**
     * replacement
     */
    replacementValue?: string;
    /**
     * How many segments should be taken.
     */
    segmentCount?: number;
    /**
     * select index
     */
    selectIndex?: number;
    /**
     * split by
     */
    splitDelimiter?: string;
    /**
     * no documentation available
     */
    suffix?: string;
    /**
     * take from end
     */
    takeFromEnd?: boolean;
    /**
     * Possible Values: `AFTER`, `BEFORE`, `BETWEEN`, `REMOVE_CREDIT_CARDS`, `REMOVE_IBANS`, `REMOVE_IPS`, `REMOVE_NUMBERS`, `REPLACE_BETWEEN`, `SPLIT_SELECT`, `TAKE_SEGMENTS`
     */
    transformationType: string;
}
export interface ServiceFullWebServiceIdContributorsServerNameServiceIdContributorValueOverride {
    /**
     * no documentation available
     */
    value: string;
}
export interface ServiceFullWebServiceIdContributorsWebServiceName {
    /**
     * Transform this value before letting it contribute to the Service Id
     */
    enableIdContributor: boolean;
    /**
     * no documentation available
     */
    serviceIdContributor?: outputs.ServiceFullWebServiceIdContributorsWebServiceNameServiceIdContributor;
}
export interface ServiceFullWebServiceIdContributorsWebServiceNameServiceIdContributor {
    /**
     * Possible Values: `OriginalValue`, `OverrideValue`, `TransformValue`
     */
    contributionType: string;
    /**
     * Choose how to transform a value before it contributes to the Service Id. Note that all of the Transformations are always applied. Transformations are applied in the order they are specified, and the output of the previous transformation is the input for the next one. The resulting value contributes to the Service Id and can be found on the **Service overview page** under **Properties and tags**.
     */
    transformations?: outputs.ServiceFullWebServiceIdContributorsWebServiceNameServiceIdContributorTransformations;
    /**
     * The value to be used instead of the detected value.
     */
    valueOverride?: outputs.ServiceFullWebServiceIdContributorsWebServiceNameServiceIdContributorValueOverride;
}
export interface ServiceFullWebServiceIdContributorsWebServiceNameServiceIdContributorTransformations {
    transformations: outputs.ServiceFullWebServiceIdContributorsWebServiceNameServiceIdContributorTransformationsTransformation[];
}
export interface ServiceFullWebServiceIdContributorsWebServiceNameServiceIdContributorTransformationsTransformation {
    /**
     * include hexadecimal numbers
     */
    includeHexNumbers?: boolean;
    /**
     * min digit count
     */
    minDigitCount?: number;
    /**
     * no documentation available
     */
    prefix?: string;
    /**
     * replacement
     */
    replacementValue?: string;
    /**
     * How many segments should be taken.
     */
    segmentCount?: number;
    /**
     * select index
     */
    selectIndex?: number;
    /**
     * split by
     */
    splitDelimiter?: string;
    /**
     * no documentation available
     */
    suffix?: string;
    /**
     * take from end
     */
    takeFromEnd?: boolean;
    /**
     * Possible Values: `AFTER`, `BEFORE`, `BETWEEN`, `REMOVE_CREDIT_CARDS`, `REMOVE_IBANS`, `REMOVE_IPS`, `REMOVE_NUMBERS`, `REPLACE_BETWEEN`, `SPLIT_SELECT`, `TAKE_SEGMENTS`
     */
    transformationType: string;
}
export interface ServiceFullWebServiceIdContributorsWebServiceNameServiceIdContributorValueOverride {
    /**
     * no documentation available
     */
    value: string;
}
export interface ServiceFullWebServiceIdContributorsWebServiceNamespace {
    /**
     * Transform this value before letting it contribute to the Service Id
     */
    enableIdContributor: boolean;
    /**
     * no documentation available
     */
    serviceIdContributor?: outputs.ServiceFullWebServiceIdContributorsWebServiceNamespaceServiceIdContributor;
}
export interface ServiceFullWebServiceIdContributorsWebServiceNamespaceServiceIdContributor {
    /**
     * Possible Values: `OriginalValue`, `OverrideValue`, `TransformValue`
     */
    contributionType: string;
    /**
     * Choose how to transform a value before it contributes to the Service Id. Note that all of the Transformations are always applied. Transformations are applied in the order they are specified, and the output of the previous transformation is the input for the next one. The resulting value contributes to the Service Id and can be found on the **Service overview page** under **Properties and tags**.
     */
    transformations?: outputs.ServiceFullWebServiceIdContributorsWebServiceNamespaceServiceIdContributorTransformations;
    /**
     * The value to be used instead of the detected value.
     */
    valueOverride?: outputs.ServiceFullWebServiceIdContributorsWebServiceNamespaceServiceIdContributorValueOverride;
}
export interface ServiceFullWebServiceIdContributorsWebServiceNamespaceServiceIdContributorTransformations {
    transformations: outputs.ServiceFullWebServiceIdContributorsWebServiceNamespaceServiceIdContributorTransformationsTransformation[];
}
export interface ServiceFullWebServiceIdContributorsWebServiceNamespaceServiceIdContributorTransformationsTransformation {
    /**
     * include hexadecimal numbers
     */
    includeHexNumbers?: boolean;
    /**
     * min digit count
     */
    minDigitCount?: number;
    /**
     * no documentation available
     */
    prefix?: string;
    /**
     * replacement
     */
    replacementValue?: string;
    /**
     * How many segments should be taken.
     */
    segmentCount?: number;
    /**
     * select index
     */
    selectIndex?: number;
    /**
     * split by
     */
    splitDelimiter?: string;
    /**
     * no documentation available
     */
    suffix?: string;
    /**
     * take from end
     */
    takeFromEnd?: boolean;
    /**
     * Possible Values: `AFTER`, `BEFORE`, `BETWEEN`, `REMOVE_CREDIT_CARDS`, `REMOVE_IBANS`, `REMOVE_IPS`, `REMOVE_NUMBERS`, `REPLACE_BETWEEN`, `SPLIT_SELECT`, `TAKE_SEGMENTS`
     */
    transformationType: string;
}
export interface ServiceFullWebServiceIdContributorsWebServiceNamespaceServiceIdContributorValueOverride {
    /**
     * no documentation available
     */
    value: string;
}
export interface ServiceHttpFailureBrokenLinks {
    /**
     * If your application relies on other hosts at other domains, add the associated domain names here. Once configured, Dynatrace will consider 404s thrown by hosts at these domains to be service failures related to your application.
     */
    brokenLinkDomains?: string[];
    /**
     * Consider 404 HTTP response codes as failures
     */
    http404NotFoundFailures: boolean;
}
export interface ServiceHttpFailureHttpResponseCodes {
    /**
     * HTTP response codes which indicate client side errors
     */
    clientSideErrors: string;
    /**
     * Treat missing HTTP response code as client side error
     */
    failOnMissingResponseCodeClientSide: boolean;
    /**
     * Treat missing HTTP response code as server side errors
     */
    failOnMissingResponseCodeServerSide: boolean;
    /**
     * HTTP response codes which indicate an error on the server side
     */
    serverSideErrors: string;
}
export interface ServiceNamingCondition {
    /**
     * A conditions for the metric usage
     */
    conditions?: outputs.ServiceNamingConditionCondition[];
}
export interface ServiceNamingConditionCondition {
    /**
     * Comparison for `APPLICATION_TYPE` attributes
     *
     * @deprecated You should use 'application_type' instead of 'application_type_comparison'. This attribute still exists for backwards compatibility.
     */
    applicationTypeComparisons?: outputs.ServiceNamingConditionConditionApplicationTypeComparison[];
    /**
     * Comparison for `APPLICATION_TYPE` attributes
     */
    applicationTypes?: outputs.ServiceNamingConditionConditionApplicationType[];
    /**
     * Comparison for `AZURE_COMPUTE_MODE` attributes
     */
    azureComputeModeComparisons?: outputs.ServiceNamingConditionConditionAzureComputeModeComparison[];
    /**
     * Comparison for `AZURE_COMPUTE_MODE` attributes
     *
     * @deprecated You should use 'azure_compute_mode' instead of 'azure_compute_mode_comparison'. This attribute still exists for backwards compatibility.
     */
    azureComputeModes?: outputs.ServiceNamingConditionConditionAzureComputeMode[];
    /**
     * Comparison for `AZURE_SKU` attributes
     *
     * @deprecated You should use 'azure_sku' instead of 'azure_sku_comparision'. This attribute still exists for backwards compatibility.
     */
    azureSkuComparisions?: outputs.ServiceNamingConditionConditionAzureSkuComparision[];
    /**
     * Comparison for `AZURE_SKU` attributes
     */
    azureSkus?: outputs.ServiceNamingConditionConditionAzureSkus[];
    /**
     * A comparison that's yet unknown to the provider. Operator and Value need to be encoded using the 'unknowns' property.
     *
     * @deprecated You should use 'comparison' instead of 'base_comparison_basic'. This attribute still exists for backwards compatibility.
     */
    baseComparisonBasics?: outputs.ServiceNamingConditionConditionBaseComparisonBasic[];
    /**
     * Fallback for not yet known type
     *
     * @deprecated 'base_condition_key' is deprecated. You should use 'key'
     */
    baseConditionKeys?: outputs.ServiceNamingConditionConditionBaseConditionKey[];
    /**
     * Comparison for `BITNESS` attributes
     *
     * @deprecated You should use 'bitness' instead of 'bitness_comparision'. This attribute still exists for backwards compatibility.
     */
    bitnessComparisions?: outputs.ServiceNamingConditionConditionBitnessComparision[];
    /**
     * Comparison for `BITNESS` attributes
     */
    bitnesses?: outputs.ServiceNamingConditionConditionBitness[];
    /**
     * Comparison for `CLOUD_TYPE` attributes
     *
     * @deprecated You should use 'cloud_type' instead of 'cloud_type_comparison'. This attribute still exists for backwards compatibility.
     */
    cloudTypeComparisons?: outputs.ServiceNamingConditionConditionCloudTypeComparison[];
    /**
     * Comparison for `CLOUD_TYPE` attributes
     */
    cloudTypes?: outputs.ServiceNamingConditionConditionCloudType[];
    /**
     * A comparison that's yet unknown to the provider. Operator and Value need to be encoded using the 'unknowns' property.
     */
    comparisons?: outputs.ServiceNamingConditionConditionComparison[];
    /**
     * Comparison for `CUSTOM_APPLICATION_TYPE` attributes
     *
     * @deprecated You should use 'custom_application_type' instead of 'custom_application_type_comparison'. This attribute still exists for backwards compatibility.
     */
    customApplicationTypeComparisons?: outputs.ServiceNamingConditionConditionCustomApplicationTypeComparison[];
    /**
     * Comparison for `CUSTOM_APPLICATION_TYPE` attributes
     */
    customApplicationTypes?: outputs.ServiceNamingConditionConditionCustomApplicationType[];
    /**
     * Key for Custom Host Metadata
     *
     * @deprecated 'custom_host_metadata_condition_key' is deprecated. You should use 'custom_host_metadata'
     */
    customHostMetadataConditionKeys?: outputs.ServiceNamingConditionConditionCustomHostMetadataConditionKey[];
    /**
     * Key for Custom Host Metadata
     */
    customHostMetadatas?: outputs.ServiceNamingConditionConditionCustomHostMetadata[];
    /**
     * Key for Custom Process Metadata
     *
     * @deprecated 'custom_process_metadata_condition_key' is deprecated. You should use 'custom_process_metadata'
     */
    customProcessMetadataConditionKeys?: outputs.ServiceNamingConditionConditionCustomProcessMetadataConditionKey[];
    /**
     * Key for Custom Process Metadata
     */
    customProcessMetadatas?: outputs.ServiceNamingConditionConditionCustomProcessMetadata[];
    /**
     * Comparison for `DATABASE_TOPOLOGY` attributes
     */
    databaseTopologies?: outputs.ServiceNamingConditionConditionDatabaseTopology[];
    /**
     * Comparison for `DATABASE_TOPOLOGY` attributes
     *
     * @deprecated You should use 'database_topology' instead of 'database_topology_comparison'. This attribute still exists for backwards compatibility.
     */
    databaseTopologyComparisons?: outputs.ServiceNamingConditionConditionDatabaseTopologyComparison[];
    /**
     * Comparison for `DCRUM_DECODER_TYPE` attributes
     *
     * @deprecated You should use 'dcrum_decoder' instead of 'dcrum_decoder_comparison'. This attribute still exists for backwards compatibility.
     */
    dcrumDecoderComparisons?: outputs.ServiceNamingConditionConditionDcrumDecoderComparison[];
    /**
     * Comparison for `DCRUM_DECODER_TYPE` attributes
     */
    dcrumDecoders?: outputs.ServiceNamingConditionConditionDcrumDecoder[];
    /**
     * Comparison for `ENTITY_ID` attributes
     */
    entities?: outputs.ServiceNamingConditionConditionEntity[];
    /**
     * Comparison for `ENTITY_ID` attributes
     *
     * @deprecated You should use 'entity' instead of 'entity_id_comparison'. This attribute still exists for backwards compatibility.
     */
    entityIdComparisons?: outputs.ServiceNamingConditionConditionEntityIdComparison[];
    /**
     * Comparison for `SIMPLE_HOST_TECH` attributes
     */
    hostTeches?: outputs.ServiceNamingConditionConditionHostTech[];
    /**
     * `hypervisorTypeComparision` is deprecated. Use `hypervisor` instead
     *
     * @deprecated `hypervisorTypeComparision` is deprecated. Use `hypervisor` instead
     */
    hypervisorTypeComparisions?: outputs.ServiceNamingConditionConditionHypervisorTypeComparision[];
    /**
     * Comparison for `HYPERVISOR_TYPE` attributes
     */
    hypervisors?: outputs.ServiceNamingConditionConditionHypervisor[];
    /**
     * Comparison for `INDEXED_NAME` attributes
     *
     * @deprecated You should use 'indexed_name' instead of 'indexed_name_comparison'. This attribute still exists for backwards compatibility.
     */
    indexedNameComparisons?: outputs.ServiceNamingConditionConditionIndexedNameComparison[];
    /**
     * Comparison for `INDEXED_NAME` attributes
     */
    indexedNames?: outputs.ServiceNamingConditionConditionIndexedName[];
    /**
     * Comparison for `INDEXED_STRING` attributes
     *
     * @deprecated You should use 'indexed_string' instead of 'indexed_string_comparison'. This attribute still exists for backwards compatibility.
     */
    indexedStringComparisons?: outputs.ServiceNamingConditionConditionIndexedStringComparison[];
    /**
     * Comparison for `INDEXED_STRING` attributes
     */
    indexedStrings?: outputs.ServiceNamingConditionConditionIndexedString[];
    /**
     * Comparison for `INDEXED_TAG` attributes
     *
     * @deprecated You should use 'indexed_tag' instead of 'indexed_tag_comparison'. This attribute still exists for backwards compatibility.
     */
    indexedTagComparisons?: outputs.ServiceNamingConditionConditionIndexedTagComparison[];
    /**
     * Comparison for `INDEXED_TAG` attributes
     */
    indexedTags?: outputs.ServiceNamingConditionConditionIndexedTag[];
    /**
     * Comparison for `INTEGER` attributes
     *
     * @deprecated You should use 'integer' instead of 'integer_comparison'. This attribute still exists for backwards compatibility.
     */
    integerComparisons?: outputs.ServiceNamingConditionConditionIntegerComparison[];
    /**
     * Comparison for `INTEGER` attributes
     */
    integers?: outputs.ServiceNamingConditionConditionInteger[];
    /**
     * Comparison for `IP_ADDRESS` attributes
     *
     * @deprecated You should use 'ipaddress' instead of 'ipaddress_comparison'. This attribute still exists for backwards compatibility.
     */
    ipaddressComparisons?: outputs.ServiceNamingConditionConditionIpaddressComparison[];
    /**
     * Comparison for `IP_ADDRESS` attributes
     */
    ipaddresses?: outputs.ServiceNamingConditionConditionIpaddress[];
    /**
     * Fallback for not yet known type
     */
    keys?: outputs.ServiceNamingConditionConditionKey[];
    /**
     * Comparison for `MOBILE_PLATFORM` attributes
     *
     * @deprecated You should use 'mobile_platform' instead of 'mobile_platform_comparison'. This attribute still exists for backwards compatibility.
     */
    mobilePlatformComparisons?: outputs.ServiceNamingConditionConditionMobilePlatformComparison[];
    /**
     * Comparison for `MOBILE_PLATFORM` attributes
     */
    mobilePlatforms?: outputs.ServiceNamingConditionConditionMobilePlatform[];
    /**
     * Comparison for `OS_ARCHITECTURE` attributes
     */
    osArches?: outputs.ServiceNamingConditionConditionOsArch[];
    /**
     * Comparison for `OS_TYPE` attributes
     */
    osTypes?: outputs.ServiceNamingConditionConditionOsType[];
    /**
     * Comparison for `OS_ARCHITECTURE` attributes
     *
     * @deprecated You should use 'os_arch' instead of 'osarchitecture_comparison'. This attribute still exists for backwards compatibility.
     */
    osarchitectureComparisons?: outputs.ServiceNamingConditionConditionOsarchitectureComparison[];
    /**
     * Comparison for `OS_TYPE` attributes
     *
     * @deprecated You should use 'os_type' instead of 'ostype_comparison'. This attribute still exists for backwards compatibility.
     */
    ostypeComparisons?: outputs.ServiceNamingConditionConditionOstypeComparison[];
    /**
     * Comparison for `PAAS_TYPE` attributes
     *
     * @deprecated You should use 'paas_type' instead of 'paas_type_comparison'. This attribute still exists for backwards compatibility.
     */
    paasTypeComparisons?: outputs.ServiceNamingConditionConditionPaasTypeComparison[];
    /**
     * Comparison for `PAAS_TYPE` attributes
     */
    paasTypes?: outputs.ServiceNamingConditionConditionPaasType[];
    /**
     * The key for dynamic attributes of the `PROCESS_PREDEFINED_METADATA_KEY` type
     *
     * @deprecated 'process_metadata_condition_key' is deprecated. You should use 'process_metadata'
     */
    processMetadataConditionKeys?: outputs.ServiceNamingConditionConditionProcessMetadataConditionKey[];
    /**
     * The key for dynamic attributes of the `PROCESS_PREDEFINED_METADATA_KEY` type
     */
    processMetadatas?: outputs.ServiceNamingConditionConditionProcessMetadata[];
    /**
     * Comparison for `SERVICE_TOPOLOGY` attributes
     */
    serviceTopologies?: outputs.ServiceNamingConditionConditionServiceTopology[];
    /**
     * Comparison for `SERVICE_TOPOLOGY` attributes
     *
     * @deprecated You should use 'service_topology' instead of 'service_topology_comparison'. This attribute still exists for backwards compatibility.
     */
    serviceTopologyComparisons?: outputs.ServiceNamingConditionConditionServiceTopologyComparison[];
    /**
     * Comparison for `SERVICE_TYPE` attributes
     *
     * @deprecated You should use 'service_type' instead of 'service_type_comparison'. This attribute still exists for backwards compatibility.
     */
    serviceTypeComparisons?: outputs.ServiceNamingConditionConditionServiceTypeComparison[];
    /**
     * Comparison for `SERVICE_TYPE` attributes
     */
    serviceTypes?: outputs.ServiceNamingConditionConditionServiceType[];
    /**
     * Comparison for `SIMPLE_HOST_TECH` attributes
     *
     * @deprecated You should use 'host_tech' instead of 'simple_host_tech_comparison'. This attribute still exists for backwards compatibility.
     */
    simpleHostTechComparisons?: outputs.ServiceNamingConditionConditionSimpleHostTechComparison[];
    /**
     * Comparison for `SIMPLE_TECH` attributes
     *
     * @deprecated You should use 'tech' instead of 'simple_tech_comparison'. This attribute still exists for backwards compatibility.
     */
    simpleTechComparisons?: outputs.ServiceNamingConditionConditionSimpleTechComparison[];
    /**
     * Comparison for `STRING` attributes
     *
     * @deprecated You should use 'string' instead of 'string_comparison'. This attribute still exists for backwards compatibility.
     */
    stringComparisons?: outputs.ServiceNamingConditionConditionStringComparison[];
    /**
     * The key for dynamic attributes of the `STRING` type
     *
     * @deprecated 'string_condition_key' is deprecated. You should use 'string_key'
     */
    stringConditionKeys?: outputs.ServiceNamingConditionConditionStringConditionKey[];
    /**
     * The key for dynamic attributes of the `STRING` type
     */
    stringKeys?: outputs.ServiceNamingConditionConditionStringKey[];
    /**
     * Comparison for `STRING` attributes
     */
    strings?: outputs.ServiceNamingConditionConditionString[];
    /**
     * Comparison for `SYNTHETIC_ENGINE_TYPE` attributes
     *
     * @deprecated You should use 'synthetic_engine' instead of 'synthetic_engine_type_comparison'. This attribute still exists for backwards compatibility.
     */
    syntheticEngineTypeComparisons?: outputs.ServiceNamingConditionConditionSyntheticEngineTypeComparison[];
    /**
     * Comparison for `SYNTHETIC_ENGINE_TYPE` attributes
     */
    syntheticEngines?: outputs.ServiceNamingConditionConditionSyntheticEngine[];
    /**
     * Comparison for `TAG` attributes
     *
     * @deprecated You should use 'tag' instead of 'tag_comparison'. This attribute still exists for backwards compatibility.
     */
    tagComparisons?: outputs.ServiceNamingConditionConditionTagComparison[];
    /**
     * Comparison for `TAG` attributes
     */
    tags?: outputs.ServiceNamingConditionConditionTag[];
    /**
     * Comparison for `SIMPLE_TECH` attributes
     */
    teches?: outputs.ServiceNamingConditionConditionTech[];
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
}
export interface ServiceNamingConditionConditionApplicationType {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value?: string;
}
export interface ServiceNamingConditionConditionApplicationTypeComparison {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be APPLICATION_TYPE
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value?: string;
}
export interface ServiceNamingConditionConditionAzureComputeMode {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are DEDICATED or SHARED.
     */
    value?: string;
}
export interface ServiceNamingConditionConditionAzureComputeModeComparison {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are DEDICATED or SHARED.
     */
    value?: string;
}
export interface ServiceNamingConditionConditionAzureSkuComparision {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be AZURE_SKU
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are BASIC, DYNAMIC, FREE, PREMIUM, SHARED and STANDARD.
     */
    value?: string;
}
export interface ServiceNamingConditionConditionAzureSkus {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are BASIC, DYNAMIC, FREE, PREMIUM, SHARED and STANDARD.
     */
    value?: string;
}
export interface ServiceNamingConditionConditionBaseComparisonBasic {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * The type of comparison
     */
    type: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
}
export interface ServiceNamingConditionConditionBaseConditionKey {
    /**
     * The attribute to be used for comparision
     */
    attribute: string;
    /**
     * Defines the actual set of fields depending on the value
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
}
export interface ServiceNamingConditionConditionBitness {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are 32 and 64.
     */
    value?: string;
}
export interface ServiceNamingConditionConditionBitnessComparision {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be BITNESS
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are 32 and 64.
     */
    value?: string;
}
export interface ServiceNamingConditionConditionCloudType {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are AZURE, EC2, GOOGLE_CLOUD_PLATFORM, OPENSTACK, ORACLE and UNRECOGNIZED.
     */
    value?: string;
}
export interface ServiceNamingConditionConditionCloudTypeComparison {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be CLOUD_TYPE
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are AZURE, EC2, GOOGLE_CLOUD_PLATFORM, OPENSTACK, ORACLE and UNRECOGNIZED.
     */
    value?: string;
}
export interface ServiceNamingConditionConditionComparison {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * The type of comparison
     */
    type: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
}
export interface ServiceNamingConditionConditionCustomApplicationType {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are AMAZON_ECHO, DESKTOP, EMBEDDED, IOT, MICROSOFT_HOLOLENS and UFO.
     */
    value?: string;
}
export interface ServiceNamingConditionConditionCustomApplicationTypeComparison {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be CUSTOM_APPLICATION_TYPE
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are AMAZON_ECHO, DESKTOP, EMBEDDED, IOT, MICROSOFT_HOLOLENS and UFO.
     */
    value?: string;
}
export interface ServiceNamingConditionConditionCustomHostMetadata {
    /**
     * The attribute to be used for comparision
     */
    attribute: string;
    /**
     * The key of the attribute, which need dynamic keys. Not applicable otherwise, as the attibute itself acts as a key
     */
    dynamicKey: outputs.ServiceNamingConditionConditionCustomHostMetadataDynamicKey;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
}
export interface ServiceNamingConditionConditionCustomHostMetadataConditionKey {
    /**
     * The attribute to be used for comparision
     */
    attribute: string;
    /**
     * The key of the attribute, which need dynamic keys. Not applicable otherwise, as the attibute itself acts as a key
     */
    dynamicKey: outputs.ServiceNamingConditionConditionCustomHostMetadataConditionKeyDynamicKey;
    /**
     * if specified, needs to be HOST_CUSTOM_METADATA_KEY
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
}
export interface ServiceNamingConditionConditionCustomHostMetadataConditionKeyDynamicKey {
    /**
     * The actual key of the custom metadata
     */
    key: string;
    /**
     * The source of the custom metadata. Possible values are ENVIRONMENT, GOOGLE_COMPUTE_ENGINE and PLUGIN
     */
    source: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
}
export interface ServiceNamingConditionConditionCustomHostMetadataDynamicKey {
    /**
     * The actual key of the custom metadata
     */
    key: string;
    /**
     * The source of the custom metadata. Possible values are ENVIRONMENT, GOOGLE_COMPUTE_ENGINE and PLUGIN
     */
    source: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
}
export interface ServiceNamingConditionConditionCustomProcessMetadata {
    /**
     * The attribute to be used for comparision
     */
    attribute: string;
    /**
     * The key of the attribute, which need dynamic keys. Not applicable otherwise, as the attibute itself acts as a key
     */
    dynamicKey: outputs.ServiceNamingConditionConditionCustomProcessMetadataDynamicKey;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
}
export interface ServiceNamingConditionConditionCustomProcessMetadataConditionKey {
    /**
     * The attribute to be used for comparision
     */
    attribute: string;
    /**
     * The key of the attribute, which need dynamic keys. Not applicable otherwise, as the attibute itself acts as a key
     */
    dynamicKey: outputs.ServiceNamingConditionConditionCustomProcessMetadataConditionKeyDynamicKey;
    /**
     * if specified, needs to be PROCESS_CUSTOM_METADATA_KEY
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
}
export interface ServiceNamingConditionConditionCustomProcessMetadataConditionKeyDynamicKey {
    /**
     * The actual key of the custom metadata
     */
    key: string;
    /**
     * The source of the custom metadata. Possible values are CLOUD_FOUNDRY, ENVIRONMENT, GOOGLE_CLOUD, KUBERNETES and PLUGIN
     */
    source: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
}
export interface ServiceNamingConditionConditionCustomProcessMetadataDynamicKey {
    /**
     * The actual key of the custom metadata
     */
    key: string;
    /**
     * The source of the custom metadata. Possible values are CLOUD_FOUNDRY, ENVIRONMENT, GOOGLE_CLOUD, KUBERNETES and PLUGIN
     */
    source: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
}
export interface ServiceNamingConditionConditionDatabaseTopology {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are CLUSTER, EMBEDDED, FAILOVER, IPC, LOAD_BALANCING, SINGLE_SERVER and UNSPECIFIED.
     */
    value?: string;
}
export interface ServiceNamingConditionConditionDatabaseTopologyComparison {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be DATABASE_TOPOLOGY
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are CLUSTER, EMBEDDED, FAILOVER, IPC, LOAD_BALANCING, SINGLE_SERVER and UNSPECIFIED.
     */
    value?: string;
}
export interface ServiceNamingConditionConditionDcrumDecoder {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are ALL_OTHER, CITRIX_APPFLOW, CITRIX_ICA, CITRIX_ICA_OVER_SSL, DB2_DRDA, HTTP, HTTPS, HTTP_EXPRESS, INFORMIX, MYSQL, ORACLE, SAP_GUI, SAP_GUI_OVER_HTTP, SAP_GUI_OVER_HTTPS, SAP_HANA_DB, SAP_RFC, SSL and TDS.
     */
    value?: string;
}
export interface ServiceNamingConditionConditionDcrumDecoderComparison {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be DCRUM_DECODER_TYPE
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are ALL_OTHER, CITRIX_APPFLOW, CITRIX_ICA, CITRIX_ICA_OVER_SSL, DB2_DRDA, HTTP, HTTPS, HTTP_EXPRESS, INFORMIX, MYSQL, ORACLE, SAP_GUI, SAP_GUI_OVER_HTTP, SAP_GUI_OVER_HTTPS, SAP_HANA_DB, SAP_RFC, SSL and TDS.
     */
    value?: string;
}
export interface ServiceNamingConditionConditionEntity {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Currently only EQUALS is supported. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value?: string;
}
export interface ServiceNamingConditionConditionEntityIdComparison {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Currently only EQUALS is supported. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be ENTITY_ID
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value?: string;
}
export interface ServiceNamingConditionConditionHostTech {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are EQUALS and EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value?: outputs.ServiceNamingConditionConditionHostTechValue;
}
export interface ServiceNamingConditionConditionHostTechValue {
    /**
     * Predefined technology, if technology is not predefined, then the verbatim type must be set. Possible values are APPARMOR, BOSH, BOSHBPM, CLOUDFOUNDRY, CONTAINERD, CRIO, DIEGO_CELL, DOCKER, GARDEN, GRSECURITY, KUBERNETES, OPENSHIFT, OPENSTACK_COMPUTE, OPENSTACK_CONTROLLER and SELINUX
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * Non-predefined technology, use for custom technologies
     */
    verbatimType?: string;
}
export interface ServiceNamingConditionConditionHypervisor {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are AHV, HYPER_V, KVM, LPAR, QEMU, VIRTUAL_BOX, VMWARE, WPAR and XEN.
     */
    value?: string;
}
export interface ServiceNamingConditionConditionHypervisorTypeComparision {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be HYPERVISOR_TYPE
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are AHV, HYPER_V, KVM, LPAR, QEMU, VIRTUAL_BOX, VMWARE, WPAR and XEN.
     */
    value?: string;
}
export interface ServiceNamingConditionConditionIndexedName {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS, CONTAINS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value?: string;
}
export interface ServiceNamingConditionConditionIndexedNameComparison {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS, CONTAINS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be INDEXED_NAME
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value?: string;
}
export interface ServiceNamingConditionConditionIndexedString {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value?: string;
}
export interface ServiceNamingConditionConditionIndexedStringComparison {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be INDEXED_STRING
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value?: string;
}
export interface ServiceNamingConditionConditionIndexedTag {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * Tag of a Dynatrace entity
     */
    value?: outputs.ServiceNamingConditionConditionIndexedTagValue;
}
export interface ServiceNamingConditionConditionIndexedTagComparison {
    /**
     * Reverses the operator. For example it turns EQUALS into DOES NOT EQUAL
     */
    negate?: boolean;
    /**
     * Either EQUALS or EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be INDEXED_TAG
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * Tag of a Dynatrace entity
     */
    value?: outputs.ServiceNamingConditionConditionIndexedTagComparisonValue;
}
export interface ServiceNamingConditionConditionIndexedTagComparisonValue {
    /**
     * The origin of the tag, such as AWS or Cloud Foundry. Possible values are AWS, AWS_GENERIC, AZURE, CLOUD_FOUNDRY, CONTEXTLESS, ENVIRONMENT, GOOGLE_CLOUD and KUBERNETES. Custom tags use the `CONTEXTLESS` value
     */
    context: string;
    /**
     * The key of the tag. Custom tags have the tag value here
     */
    key: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value of the tag. Not applicable to custom tags
     */
    value?: string;
}
export interface ServiceNamingConditionConditionIndexedTagValue {
    /**
     * The origin of the tag, such as AWS or Cloud Foundry. Possible values are AWS, AWS_GENERIC, AZURE, CLOUD_FOUNDRY, CONTEXTLESS, ENVIRONMENT, GOOGLE_CLOUD and KUBERNETES. Custom tags use the `CONTEXTLESS` value
     */
    context: string;
    /**
     * The key of the tag. Custom tags have the tag value here
     */
    key: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value of the tag. Not applicable to custom tags
     */
    value?: string;
}
export interface ServiceNamingConditionConditionInteger {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are EQUALS, EXISTS, GREATER_THAN, GREATER_THAN_OR_EQUAL, LOWER_THAN and LOWER_THAN_OR_EQUAL. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value?: number;
}
export interface ServiceNamingConditionConditionIntegerComparison {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are EQUALS, EXISTS, GREATER_THAN, GREATER_THAN_OR_EQUAL, LOWER_THAN and LOWER_THAN_OR_EQUAL. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be INTEGER
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value?: number;
}
export interface ServiceNamingConditionConditionIpaddress {
    /**
     * The comparison is case-sensitive (`true`) or insensitive (`false`)
     */
    caseSensitive?: boolean;
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are BEGINS_WITH, CONTAINS, ENDS_WITH, EQUALS, EXISTS, IS_IP_IN_RANGE and REGEX_MATCHES. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value?: string;
}
export interface ServiceNamingConditionConditionIpaddressComparison {
    /**
     * The comparison is case-sensitive (`true`) or insensitive (`false`)
     */
    caseSensitive?: boolean;
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are BEGINS_WITH, CONTAINS, ENDS_WITH, EQUALS, EXISTS, IS_IP_IN_RANGE and REGEX_MATCHES. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be IP_ADDRESS
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value?: string;
}
export interface ServiceNamingConditionConditionKey {
    /**
     * The attribute to be used for comparision
     */
    attribute: string;
    /**
     * Defines the actual set of fields depending on the value
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
}
export interface ServiceNamingConditionConditionMobilePlatform {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are EQUALS and EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are ANDROID, IOS, LINUX, MAC_OS, OTHER, TVOS and WINDOWS.
     */
    value?: string;
}
export interface ServiceNamingConditionConditionMobilePlatformComparison {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are EQUALS and EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be MOBILE_PLATFORM
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are ANDROID, IOS, LINUX, MAC_OS, OTHER, TVOS and WINDOWS.
     */
    value?: string;
}
export interface ServiceNamingConditionConditionOsArch {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are EQUALS and EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are ARM, IA64, PARISC, PPC, PPCLE, S390, SPARC, X86 and ZOS.
     */
    value?: string;
}
export interface ServiceNamingConditionConditionOsType {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are EQUALS and EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are AIX, DARWIN, HPUX, LINUX, SOLARIS, WINDOWS and ZOS.
     */
    value?: string;
}
export interface ServiceNamingConditionConditionOsarchitectureComparison {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are EQUALS and EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be OS_ARCHITECTURE
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are ARM, IA64, PARISC, PPC, PPCLE, S390, SPARC, X86 and ZOS.
     */
    value?: string;
}
export interface ServiceNamingConditionConditionOstypeComparison {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are EQUALS and EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be OS_TYPE
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are AIX, DARWIN, HPUX, LINUX, SOLARIS, WINDOWS and ZOS.
     */
    value?: string;
}
export interface ServiceNamingConditionConditionPaasType {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are EQUALS and EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are AWS_ECS_EC2, AWS_ECS_FARGATE, AWS_LAMBDA, AZURE_FUNCTIONS, AZURE_WEBSITES, CLOUD_FOUNDRY, GOOGLE_APP_ENGINE, HEROKU, KUBERNETES and OPENSHIFT.
     */
    value?: string;
}
export interface ServiceNamingConditionConditionPaasTypeComparison {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are EQUALS and EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be PAAS_TYPE
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are AWS_ECS_EC2, AWS_ECS_FARGATE, AWS_LAMBDA, AZURE_FUNCTIONS, AZURE_WEBSITES, CLOUD_FOUNDRY, GOOGLE_APP_ENGINE, HEROKU, KUBERNETES and OPENSHIFT.
     */
    value?: string;
}
export interface ServiceNamingConditionConditionProcessMetadata {
    /**
     * The attribute to be used for comparision
     */
    attribute: string;
    /**
     * The key of the attribute, which need dynamic keys. Not applicable otherwise, as the attibute itself acts as a key. Possible values are AMAZON_ECR_IMAGE_ACCOUNT_ID,AMAZON_ECR_IMAGE_REGION, AMAZON_LAMBDA_FUNCTION_NAME, AMAZON_REGION, APACHE_CONFIG_PATH, APACHE_SPARK_MASTER_IP_ADDRESS, ASP_DOT_NET_CORE_APPLICATION_PATH, AWS_ECS_CLUSTER, AWS_ECS_CONTAINERNAME, AWS_ECS_FAMILY, AWS_ECS_REVISION, CASSANDRA_CLUSTER_NAME, CATALINA_BASE, CATALINA_HOME, CLOUD_FOUNDRY_APP_ID, CLOUD_FOUNDRY_APP_NAME, CLOUD_FOUNDRY_INSTANCE_INDEX, CLOUD_FOUNDRY_SPACE_ID, CLOUD_FOUNDRY_SPACE_NAME, COLDFUSION_JVM_CONFIG_FILE, COLDFUSION_SERVICE_NAME, COMMAND_LINE_ARGS, DOTNET_COMMAND, DOTNET_COMMAND_PATH, DYNATRACE_CLUSTER_ID, DYNATRACE_NODE_ID, ELASTICSEARCH_CLUSTER_NAME, ELASTICSEARCH_NODE_NAME, EQUINOX_CONFIG_PATH, EXE_NAME, EXE_PATH, GLASS_FISH_DOMAIN_NAME, GLASS_FISH_INSTANCE_NAME, GOOGLE_APP_ENGINE_INSTANCE, GOOGLE_APP_ENGINE_SERVICE, GOOGLE_CLOUD_PROJECT, HYBRIS_BIN_DIRECTORY, HYBRIS_CONFIG_DIRECTORY, HYBRIS_DATA_DIRECTORY, IBM_CICS_REGION, IBM_CTG_NAME, IBM_IMS_CONNECT_REGION, IBM_IMS_CONTROL_REGION, IBM_IMS_MESSAGE_PROCESSING_REGION, IBM_IMS_SOAP_GW_NAME, IBM_INTEGRATION_NODE_NAME, IBM_INTEGRATION_SERVER_NAME, IIS_APP_POOL, IIS_ROLE_NAME, JAVA_JAR_FILE, JAVA_JAR_PATH, JAVA_MAIN_CLASS, JAVA_MAIN_MODULE, JBOSS_HOME, JBOSS_MODE, JBOSS_SERVER_NAME, KUBERNETES_BASE_POD_NAME, KUBERNETES_CONTAINER_NAME, KUBERNETES_FULL_POD_NAME, KUBERNETES_NAMESPACE, KUBERNETES_POD_UID, MSSQL_INSTANCE_NAME, NODE_JS_APP_BASE_DIRECTORY, NODE_JS_APP_NAME, NODE_JS_SCRIPT_NAME, ORACLE_SID, PG_ID_CALC_INPUT_KEY_LINKAGE, PHP_SCRIPT_PATH, PHP_WORKING_DIRECTORY, RUBY_APP_ROOT_PATH, RUBY_SCRIPT_PATH, RULE_RESULT, SOFTWAREAG_INSTALL_ROOT, SOFTWAREAG_PRODUCTPROPNAME, SPRINGBOOT_APP_NAME, SPRINGBOOT_PROFILE_NAME, SPRINGBOOT_STARTUP_CLASS, TIBCO_BUSINESSWORKS_CE_APP_NAME, TIBCO_BUSINESSWORKS_CE_VERSION, TIBCO_BUSINESS_WORKS_APP_NODE_NAME, TIBCO_BUSINESS_WORKS_APP_SPACE_NAME, TIBCO_BUSINESS_WORKS_DOMAIN_NAME, TIBCO_BUSINESS_WORKS_ENGINE_PROPERTY_FILE, TIBCO_BUSINESS_WORKS_ENGINE_PROPERTY_FILE_PATH, TIBCO_BUSINESS_WORKS_HOME, VARNISH_INSTANCE_NAME, WEB_LOGIC_CLUSTER_NAME, WEB_LOGIC_DOMAIN_NAME, WEB_LOGIC_HOME, WEB_LOGIC_NAME, WEB_SPHERE_CELL_NAME, WEB_SPHERE_CLUSTER_NAME, WEB_SPHERE_NODE_NAME and WEB_SPHERE_SERVER_NAME
     */
    dynamicKey: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
}
export interface ServiceNamingConditionConditionProcessMetadataConditionKey {
    /**
     * The attribute to be used for comparision
     */
    attribute: string;
    /**
     * The key of the attribute, which need dynamic keys. Not applicable otherwise, as the attibute itself acts as a key. Possible values are AMAZON_ECR_IMAGE_ACCOUNT_ID,AMAZON_ECR_IMAGE_REGION, AMAZON_LAMBDA_FUNCTION_NAME, AMAZON_REGION, APACHE_CONFIG_PATH, APACHE_SPARK_MASTER_IP_ADDRESS, ASP_DOT_NET_CORE_APPLICATION_PATH, AWS_ECS_CLUSTER, AWS_ECS_CONTAINERNAME, AWS_ECS_FAMILY, AWS_ECS_REVISION, CASSANDRA_CLUSTER_NAME, CATALINA_BASE, CATALINA_HOME, CLOUD_FOUNDRY_APP_ID, CLOUD_FOUNDRY_APP_NAME, CLOUD_FOUNDRY_INSTANCE_INDEX, CLOUD_FOUNDRY_SPACE_ID, CLOUD_FOUNDRY_SPACE_NAME, COLDFUSION_JVM_CONFIG_FILE, COLDFUSION_SERVICE_NAME, COMMAND_LINE_ARGS, DOTNET_COMMAND, DOTNET_COMMAND_PATH, DYNATRACE_CLUSTER_ID, DYNATRACE_NODE_ID, ELASTICSEARCH_CLUSTER_NAME, ELASTICSEARCH_NODE_NAME, EQUINOX_CONFIG_PATH, EXE_NAME, EXE_PATH, GLASS_FISH_DOMAIN_NAME, GLASS_FISH_INSTANCE_NAME, GOOGLE_APP_ENGINE_INSTANCE, GOOGLE_APP_ENGINE_SERVICE, GOOGLE_CLOUD_PROJECT, HYBRIS_BIN_DIRECTORY, HYBRIS_CONFIG_DIRECTORY, HYBRIS_DATA_DIRECTORY, IBM_CICS_REGION, IBM_CTG_NAME, IBM_IMS_CONNECT_REGION, IBM_IMS_CONTROL_REGION, IBM_IMS_MESSAGE_PROCESSING_REGION, IBM_IMS_SOAP_GW_NAME, IBM_INTEGRATION_NODE_NAME, IBM_INTEGRATION_SERVER_NAME, IIS_APP_POOL, IIS_ROLE_NAME, JAVA_JAR_FILE, JAVA_JAR_PATH, JAVA_MAIN_CLASS, JAVA_MAIN_MODULE, JBOSS_HOME, JBOSS_MODE, JBOSS_SERVER_NAME, KUBERNETES_BASE_POD_NAME, KUBERNETES_CONTAINER_NAME, KUBERNETES_FULL_POD_NAME, KUBERNETES_NAMESPACE, KUBERNETES_POD_UID, MSSQL_INSTANCE_NAME, NODE_JS_APP_BASE_DIRECTORY, NODE_JS_APP_NAME, NODE_JS_SCRIPT_NAME, ORACLE_SID, PG_ID_CALC_INPUT_KEY_LINKAGE, PHP_SCRIPT_PATH, PHP_WORKING_DIRECTORY, RUBY_APP_ROOT_PATH, RUBY_SCRIPT_PATH, RULE_RESULT, SOFTWAREAG_INSTALL_ROOT, SOFTWAREAG_PRODUCTPROPNAME, SPRINGBOOT_APP_NAME, SPRINGBOOT_PROFILE_NAME, SPRINGBOOT_STARTUP_CLASS, TIBCO_BUSINESSWORKS_CE_APP_NAME, TIBCO_BUSINESSWORKS_CE_VERSION, TIBCO_BUSINESS_WORKS_APP_NODE_NAME, TIBCO_BUSINESS_WORKS_APP_SPACE_NAME, TIBCO_BUSINESS_WORKS_DOMAIN_NAME, TIBCO_BUSINESS_WORKS_ENGINE_PROPERTY_FILE, TIBCO_BUSINESS_WORKS_ENGINE_PROPERTY_FILE_PATH, TIBCO_BUSINESS_WORKS_HOME, VARNISH_INSTANCE_NAME, WEB_LOGIC_CLUSTER_NAME, WEB_LOGIC_DOMAIN_NAME, WEB_LOGIC_HOME, WEB_LOGIC_NAME, WEB_SPHERE_CELL_NAME, WEB_SPHERE_CLUSTER_NAME, WEB_SPHERE_NODE_NAME and WEB_SPHERE_SERVER_NAME
     */
    dynamicKey: string;
    /**
     * if specified, needs to be PROCESS_PREDEFINED_METADATA_KEY
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
}
export interface ServiceNamingConditionConditionServiceTopology {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are EQUALS and EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are EXTERNAL_SERVICE, FULLY_MONITORED and OPAQUE_SERVICE.
     */
    value?: string;
}
export interface ServiceNamingConditionConditionServiceTopologyComparison {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are EQUALS and EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be SERVICE_TOPOLOGY
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are EXTERNAL_SERVICE, FULLY_MONITORED and OPAQUE_SERVICE.
     */
    value?: string;
}
export interface ServiceNamingConditionConditionServiceType {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are EQUALS and EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are BACKGROUND_ACTIVITY, CICS_SERVICE, CUSTOM_SERVICE, DATABASE_SERVICE, ENTERPRISE_SERVICE_BUS_SERVICE, EXTERNAL, IBM_INTEGRATION_BUS_SERVICE, IMS_SERVICE, MESSAGING_SERVICE, QUEUE_LISTENER_SERVICE, RMI_SERVICE, RPC_SERVICE, WEB_REQUEST_SERVICE and WEB_SERVICE.
     */
    value?: string;
}
export interface ServiceNamingConditionConditionServiceTypeComparison {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are EQUALS and EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be SERVICE_TYPE
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are BACKGROUND_ACTIVITY, CICS_SERVICE, CUSTOM_SERVICE, DATABASE_SERVICE, ENTERPRISE_SERVICE_BUS_SERVICE, EXTERNAL, IBM_INTEGRATION_BUS_SERVICE, IMS_SERVICE, MESSAGING_SERVICE, QUEUE_LISTENER_SERVICE, RMI_SERVICE, RPC_SERVICE, WEB_REQUEST_SERVICE and WEB_SERVICE.
     */
    value?: string;
}
export interface ServiceNamingConditionConditionSimpleHostTechComparison {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are EQUALS and EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be SIMPLE_HOST_TECH
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value?: outputs.ServiceNamingConditionConditionSimpleHostTechComparisonValue;
}
export interface ServiceNamingConditionConditionSimpleHostTechComparisonValue {
    /**
     * Predefined technology, if technology is not predefined, then the verbatim type must be set. Possible values are APPARMOR, BOSH, BOSHBPM, CLOUDFOUNDRY, CONTAINERD, CRIO, DIEGO_CELL, DOCKER, GARDEN, GRSECURITY, KUBERNETES, OPENSHIFT, OPENSTACK_COMPUTE, OPENSTACK_CONTROLLER and SELINUX
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * Non-predefined technology, use for custom technologies
     */
    verbatimType?: string;
}
export interface ServiceNamingConditionConditionSimpleTechComparison {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are EQUALS and EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be SIMPLE_TECH
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value?: outputs.ServiceNamingConditionConditionSimpleTechComparisonValue;
}
export interface ServiceNamingConditionConditionSimpleTechComparisonValue {
    /**
     * Predefined technology, if technology is not predefined, then the verbatim type must be set.
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * Non-predefined technology, use for custom technologies
     */
    verbatimType?: string;
}
export interface ServiceNamingConditionConditionString {
    /**
     * The comparison is case-sensitive (`true`) or insensitive (`false`)
     */
    caseSensitive?: boolean;
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are BEGINS_WITH, CONTAINS, ENDS_WITH, EQUALS, EXISTS and REGEX_MATCHES. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value?: string;
}
export interface ServiceNamingConditionConditionStringComparison {
    /**
     * The comparison is case-sensitive (`true`) or insensitive (`false`)
     */
    caseSensitive?: boolean;
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are BEGINS_WITH, CONTAINS, ENDS_WITH, EQUALS, EXISTS and REGEX_MATCHES. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be STRING
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value?: string;
}
export interface ServiceNamingConditionConditionStringConditionKey {
    /**
     * The attribute to be used for comparision
     */
    attribute: string;
    /**
     * The key of the attribute, which need dynamic keys. Not applicable otherwise, as the attibute itself acts as a key. Possible values are
     *    - `AMAZON_ECR_IMAGE_ACCOUNT_ID`
     *    - `AMAZON_ECR_IMAGE_REGION`
     *    - `AMAZON_LAMBDA_FUNCTION_NAME`
     *    - `AMAZON_REGION`
     *    - `APACHE_CONFIG_PATH`
     *    - `APACHE_SPARK_MASTER_IP_ADDRESS`
     *    - `ASP_DOT_NET_CORE_APPLICATION_PATH`
     *    - `AWS_ECS_CLUSTER`
     *    - `AWS_ECS_CONTAINERNAME`
     *    - `AWS_ECS_FAMILY`
     *    - `AWS_ECS_REVISION`
     *    - `CASSANDRA_CLUSTER_NAME`
     *    - `CATALINA_BASE`
     *    - `CATALINA_HOME`
     *    - `CLOUD_FOUNDRY_APP_ID`
     *    - `CLOUD_FOUNDRY_APP_NAME`
     *    - `CLOUD_FOUNDRY_INSTANCE_INDEX`
     *    - `CLOUD_FOUNDRY_SPACE_ID`
     *    - `CLOUD_FOUNDRY_SPACE_NAME`
     *    - `COLDFUSION_JVM_CONFIG_FILE`
     *    - `COLDFUSION_SERVICE_NAME`
     *    - `COMMAND_LINE_ARGS`
     *    - `DOTNET_COMMAND`
     *    - `DOTNET_COMMAND_PATH`
     *    - `DYNATRACE_CLUSTER_ID`
     *    - `DYNATRACE_NODE_ID`
     *    - `ELASTICSEARCH_CLUSTER_NAME`
     *    - `ELASTICSEARCH_NODE_NAME`
     *    - `EQUINOX_CONFIG_PATH`
     *    - `EXE_NAME`
     *    - `EXE_PATH`
     *    - `GLASS_FISH_DOMAIN_NAME`
     *    - `GLASS_FISH_INSTANCE_NAME`
     *    - `GOOGLE_APP_ENGINE_INSTANCE`
     *    - `GOOGLE_APP_ENGINE_SERVICE`
     *    - `GOOGLE_CLOUD_PROJECT`
     *    - `HYBRIS_BIN_DIRECTORY`
     *    - `HYBRIS_CONFIG_DIRECTORY`
     *    - `HYBRIS_DATA_DIRECTORY`
     *    - `IBM_CICS_REGION`
     *    - `IBM_CTG_NAME`
     *    - `IBM_IMS_CONNECT_REGION`
     *    - `IBM_IMS_CONTROL_REGION`
     *    - `IBM_IMS_MESSAGE_PROCESSING_REGION`
     *    - `IBM_IMS_SOAP_GW_NAME`
     *    - `IBM_INTEGRATION_NODE_NAME`
     *    - `IBM_INTEGRATION_SERVER_NAME`
     *    - `IIS_APP_POOL`
     *    - `IIS_ROLE_NAME`
     *    - `JAVA_JAR_FILE`
     *    - `JAVA_JAR_PATH`
     *    - `JAVA_MAIN_CLASS`
     *    - `JAVA_MAIN_MODULE`
     *    - `JBOSS_HOME`
     *    - `JBOSS_MODE`
     *    - `JBOSS_SERVER_NAME`
     *    - `KUBERNETES_BASE_POD_NAME`
     *    - `KUBERNETES_CONTAINER_NAME`
     *    - `KUBERNETES_FULL_POD_NAME`
     *    - `KUBERNETES_NAMESPACE`
     *    - `KUBERNETES_POD_UID`
     *    - `MSSQL_INSTANCE_NAME`
     *    - `NODE_JS_APP_BASE_DIRECTORY`
     *    - `NODE_JS_APP_NAME`
     *    - `NODE_JS_SCRIPT_NAME`
     *    - `ORACLE_SID`
     *    - `PG_ID_CALC_INPUT_KEY_LINKAGE`
     *    - `PHP_SCRIPT_PATH`
     *    - `PHP_WORKING_DIRECTORY`
     *    - `RUBY_APP_ROOT_PATH`
     *    - `RUBY_SCRIPT_PATH`
     *    - `RULE_RESULT`
     *    - `SOFTWAREAG_INSTALL_ROOT`
     *    - `SOFTWAREAG_PRODUCTPROPNAME`
     *    - `SPRINGBOOT_APP_NAME`
     *    - `SPRINGBOOT_PROFILE_NAME`
     *    - `SPRINGBOOT_STARTUP_CLASS`
     *    - `TIBCO_BUSINESSWORKS_CE_APP_NAME`
     *    - `TIBCO_BUSINESSWORKS_CE_VERSION`
     *    - `TIBCO_BUSINESS_WORKS_APP_NODE_NAME`
     *    - `TIBCO_BUSINESS_WORKS_APP_SPACE_NAME`
     *    - `TIBCO_BUSINESS_WORKS_DOMAIN_NAME`
     *    - `TIBCO_BUSINESS_WORKS_ENGINE_PROPERTY_FILE`
     *    - `TIBCO_BUSINESS_WORKS_ENGINE_PROPERTY_FILE_PATH`
     *    - `TIBCO_BUSINESS_WORKS_HOME`
     *    - `VARNISH_INSTANCE_NAME`
     *    - `WEB_LOGIC_CLUSTER_NAME`
     *    - `WEB_LOGIC_DOMAIN_NAME`
     *    - `WEB_LOGIC_HOME`
     *    - `WEB_LOGIC_NAME`
     *    - `WEB_SPHERE_CELL_NAME`
     *    - `WEB_SPHERE_CLUSTER_NAME`
     *    - `WEB_SPHERE_NODE_NAME and WEB_SPHERE_SERVER_NAME`
     */
    dynamicKey: string;
    /**
     * if specified, needs to be `STRING`
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
}
export interface ServiceNamingConditionConditionStringKey {
    /**
     * The attribute to be used for comparision
     */
    attribute: string;
    /**
     * The key of the attribute, which need dynamic keys. Not applicable otherwise, as the attibute itself acts as a key. Possible values are
     *    - `AMAZON_ECR_IMAGE_ACCOUNT_ID`
     *    - `AMAZON_ECR_IMAGE_REGION`
     *    - `AMAZON_LAMBDA_FUNCTION_NAME`
     *    - `AMAZON_REGION`
     *    - `APACHE_CONFIG_PATH`
     *    - `APACHE_SPARK_MASTER_IP_ADDRESS`
     *    - `ASP_DOT_NET_CORE_APPLICATION_PATH`
     *    - `AWS_ECS_CLUSTER`
     *    - `AWS_ECS_CONTAINERNAME`
     *    - `AWS_ECS_FAMILY`
     *    - `AWS_ECS_REVISION`
     *    - `CASSANDRA_CLUSTER_NAME`
     *    - `CATALINA_BASE`
     *    - `CATALINA_HOME`
     *    - `CLOUD_FOUNDRY_APP_ID`
     *    - `CLOUD_FOUNDRY_APP_NAME`
     *    - `CLOUD_FOUNDRY_INSTANCE_INDEX`
     *    - `CLOUD_FOUNDRY_SPACE_ID`
     *    - `CLOUD_FOUNDRY_SPACE_NAME`
     *    - `COLDFUSION_JVM_CONFIG_FILE`
     *    - `COLDFUSION_SERVICE_NAME`
     *    - `COMMAND_LINE_ARGS`
     *    - `DOTNET_COMMAND`
     *    - `DOTNET_COMMAND_PATH`
     *    - `DYNATRACE_CLUSTER_ID`
     *    - `DYNATRACE_NODE_ID`
     *    - `ELASTICSEARCH_CLUSTER_NAME`
     *    - `ELASTICSEARCH_NODE_NAME`
     *    - `EQUINOX_CONFIG_PATH`
     *    - `EXE_NAME`
     *    - `EXE_PATH`
     *    - `GLASS_FISH_DOMAIN_NAME`
     *    - `GLASS_FISH_INSTANCE_NAME`
     *    - `GOOGLE_APP_ENGINE_INSTANCE`
     *    - `GOOGLE_APP_ENGINE_SERVICE`
     *    - `GOOGLE_CLOUD_PROJECT`
     *    - `HYBRIS_BIN_DIRECTORY`
     *    - `HYBRIS_CONFIG_DIRECTORY`
     *    - `HYBRIS_DATA_DIRECTORY`
     *    - `IBM_CICS_REGION`
     *    - `IBM_CTG_NAME`
     *    - `IBM_IMS_CONNECT_REGION`
     *    - `IBM_IMS_CONTROL_REGION`
     *    - `IBM_IMS_MESSAGE_PROCESSING_REGION`
     *    - `IBM_IMS_SOAP_GW_NAME`
     *    - `IBM_INTEGRATION_NODE_NAME`
     *    - `IBM_INTEGRATION_SERVER_NAME`
     *    - `IIS_APP_POOL`
     *    - `IIS_ROLE_NAME`
     *    - `JAVA_JAR_FILE`
     *    - `JAVA_JAR_PATH`
     *    - `JAVA_MAIN_CLASS`
     *    - `JAVA_MAIN_MODULE`
     *    - `JBOSS_HOME`
     *    - `JBOSS_MODE`
     *    - `JBOSS_SERVER_NAME`
     *    - `KUBERNETES_BASE_POD_NAME`
     *    - `KUBERNETES_CONTAINER_NAME`
     *    - `KUBERNETES_FULL_POD_NAME`
     *    - `KUBERNETES_NAMESPACE`
     *    - `KUBERNETES_POD_UID`
     *    - `MSSQL_INSTANCE_NAME`
     *    - `NODE_JS_APP_BASE_DIRECTORY`
     *    - `NODE_JS_APP_NAME`
     *    - `NODE_JS_SCRIPT_NAME`
     *    - `ORACLE_SID`
     *    - `PG_ID_CALC_INPUT_KEY_LINKAGE`
     *    - `PHP_SCRIPT_PATH`
     *    - `PHP_WORKING_DIRECTORY`
     *    - `RUBY_APP_ROOT_PATH`
     *    - `RUBY_SCRIPT_PATH`
     *    - `RULE_RESULT`
     *    - `SOFTWAREAG_INSTALL_ROOT`
     *    - `SOFTWAREAG_PRODUCTPROPNAME`
     *    - `SPRINGBOOT_APP_NAME`
     *    - `SPRINGBOOT_PROFILE_NAME`
     *    - `SPRINGBOOT_STARTUP_CLASS`
     *    - `TIBCO_BUSINESSWORKS_CE_APP_NAME`
     *    - `TIBCO_BUSINESSWORKS_CE_VERSION`
     *    - `TIBCO_BUSINESS_WORKS_APP_NODE_NAME`
     *    - `TIBCO_BUSINESS_WORKS_APP_SPACE_NAME`
     *    - `TIBCO_BUSINESS_WORKS_DOMAIN_NAME`
     *    - `TIBCO_BUSINESS_WORKS_ENGINE_PROPERTY_FILE`
     *    - `TIBCO_BUSINESS_WORKS_ENGINE_PROPERTY_FILE_PATH`
     *    - `TIBCO_BUSINESS_WORKS_HOME`
     *    - `VARNISH_INSTANCE_NAME`
     *    - `WEB_LOGIC_CLUSTER_NAME`
     *    - `WEB_LOGIC_DOMAIN_NAME`
     *    - `WEB_LOGIC_HOME`
     *    - `WEB_LOGIC_NAME`
     *    - `WEB_SPHERE_CELL_NAME`
     *    - `WEB_SPHERE_CLUSTER_NAME`
     *    - `WEB_SPHERE_NODE_NAME and WEB_SPHERE_SERVER_NAME`
     */
    dynamicKey: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
}
export interface ServiceNamingConditionConditionSyntheticEngine {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are  EQUALS and EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are CLASSIC and CUSTOM
     */
    value?: string;
}
export interface ServiceNamingConditionConditionSyntheticEngineTypeComparison {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are  EQUALS and EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be SYNTHETIC_ENGINE_TYPE
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to. Possible values are CLASSIC and CUSTOM
     */
    value?: string;
}
export interface ServiceNamingConditionConditionTag {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are EQUALS and TAG_KEY_EQUALS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * Tag of a Dynatrace entity
     */
    value?: outputs.ServiceNamingConditionConditionTagValue;
}
export interface ServiceNamingConditionConditionTagComparison {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are EQUALS and TAG_KEY_EQUALS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * if specified, needs to be TAG
     *
     * @deprecated The value of the attribute type is implicit, therefore shouldn't get specified
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * Tag of a Dynatrace entity
     */
    value?: outputs.ServiceNamingConditionConditionTagComparisonValue;
}
export interface ServiceNamingConditionConditionTagComparisonValue {
    /**
     * The origin of the tag, such as AWS or Cloud Foundry. Possible values are AWS, AWS_GENERIC, AZURE, CLOUD_FOUNDRY, CONTEXTLESS, ENVIRONMENT, GOOGLE_CLOUD and KUBERNETES. Custom tags use the `CONTEXTLESS` value
     */
    context: string;
    /**
     * The key of the tag. Custom tags have the tag value here
     */
    key: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value of the tag. Not applicable to custom tags
     */
    value?: string;
}
export interface ServiceNamingConditionConditionTagValue {
    /**
     * The origin of the tag, such as AWS or Cloud Foundry. Possible values are AWS, AWS_GENERIC, AZURE, CLOUD_FOUNDRY, CONTEXTLESS, ENVIRONMENT, GOOGLE_CLOUD and KUBERNETES. Custom tags use the `CONTEXTLESS` value
     */
    context: string;
    /**
     * The key of the tag. Custom tags have the tag value here
     */
    key: string;
    /**
     * Any attributes that aren't yet supported by this provider but have meanwhile gotten introduced by a newer version of the Dynatrace REST API
     */
    unknowns?: string;
    /**
     * The value of the tag. Not applicable to custom tags
     */
    value?: string;
}
export interface ServiceNamingConditionConditionTech {
    /**
     * Reverses the operator. For example it turns the **begins with** into **does not begin with**
     */
    negate?: boolean;
    /**
     * Operator of the comparison. Possible values are EQUALS and EXISTS. You can reverse it by setting **negate** to `true`
     */
    operator: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * The value to compare to
     */
    value?: outputs.ServiceNamingConditionConditionTechValue;
}
export interface ServiceNamingConditionConditionTechValue {
    /**
     * Predefined technology, if technology is not predefined, then the verbatim type must be set.
     */
    type?: string;
    /**
     * Any attributes that aren't yet supported by this provider
     */
    unknowns?: string;
    /**
     * Non-predefined technology, use for custom technologies
     */
    verbatimType?: string;
}
export interface SessionReplayWebPrivacyMaskingPresets {
    /**
     * (Field has overlap with `dynatrace.ApplicationDataPrivacy`) The elements are defined by the CSS selector or attribute name.
     */
    playbackMaskingAllowListRules?: outputs.SessionReplayWebPrivacyMaskingPresetsPlaybackMaskingAllowListRules;
    /**
     * (Field has overlap with `dynatrace.ApplicationDataPrivacy`) The elements are defined by the CSS selector or attribute name.
     */
    playbackMaskingBlockListRules?: outputs.SessionReplayWebPrivacyMaskingPresetsPlaybackMaskingBlockListRules;
    /**
     * (Field has overlap with `dynatrace.ApplicationDataPrivacy`) Possible Values: `MASK_ALL`, `MASK_USER_INPUT`, `ALLOW_LIST`, `BLOCK_LIST`
     */
    playbackMaskingPreset: string;
    /**
     * (Field has overlap with `dynatrace.ApplicationDataPrivacy`) The elements are defined by the CSS selector or attribute name.
     */
    recordingMaskingAllowListRules?: outputs.SessionReplayWebPrivacyMaskingPresetsRecordingMaskingAllowListRules;
    /**
     * (Field has overlap with `dynatrace.ApplicationDataPrivacy`) The elements are defined by the CSS selector or attribute name.
     */
    recordingMaskingBlockListRules?: outputs.SessionReplayWebPrivacyMaskingPresetsRecordingMaskingBlockListRules;
    /**
     * (Field has overlap with `dynatrace.ApplicationDataPrivacy`) Possible Values: `MASK_USER_INPUT`, `ALLOW_LIST`, `BLOCK_LIST`, `MASK_ALL`
     */
    recordingMaskingPreset: string;
}
export interface SessionReplayWebPrivacyMaskingPresetsPlaybackMaskingAllowListRules {
    allowListRules: outputs.SessionReplayWebPrivacyMaskingPresetsPlaybackMaskingAllowListRulesAllowListRule[];
}
export interface SessionReplayWebPrivacyMaskingPresetsPlaybackMaskingAllowListRulesAllowListRule {
    /**
     * Attribute masking can be applied to web applications that store data within attributes, typically data-NAME attributes in HTML5. When you define attributes, their values are masked while recording but not removed.
     */
    attributeExpression?: string;
    /**
     * Content masking can be applied to webpages where personal data is displayed. When content masking is applied to parent elements, all child elements are masked by default.
     */
    cssExpression?: string;
    /**
     * Possible Values: `ATTRIBUTE`, `ELEMENT`
     */
    target: string;
}
export interface SessionReplayWebPrivacyMaskingPresetsPlaybackMaskingBlockListRules {
    blockListRules: outputs.SessionReplayWebPrivacyMaskingPresetsPlaybackMaskingBlockListRulesBlockListRule[];
}
export interface SessionReplayWebPrivacyMaskingPresetsPlaybackMaskingBlockListRulesBlockListRule {
    /**
     * Attribute masking can be applied to web applications that store data within attributes, typically data-NAME attributes in HTML5. When you define attributes, their values are masked while recording but not removed.
     */
    attributeExpression?: string;
    /**
     * Content masking can be applied to webpages where personal data is displayed. When content masking is applied to parent elements, all child elements are masked by default.
     */
    cssExpression?: string;
    /**
     * Hide user interactions with these elements, including clicks that expand elements, highlighting that results from hovering a cursor over an option, and selection of specific form options.
     */
    hideUserInteraction?: boolean;
    /**
     * Possible Values: `ELEMENT`, `ATTRIBUTE`
     */
    target: string;
}
export interface SessionReplayWebPrivacyMaskingPresetsRecordingMaskingAllowListRules {
    allowListRules: outputs.SessionReplayWebPrivacyMaskingPresetsRecordingMaskingAllowListRulesAllowListRule[];
}
export interface SessionReplayWebPrivacyMaskingPresetsRecordingMaskingAllowListRulesAllowListRule {
    /**
     * Attribute masking can be applied to web applications that store data within attributes, typically data-NAME attributes in HTML5. When you define attributes, their values are masked while recording but not removed.
     */
    attributeExpression?: string;
    /**
     * Content masking can be applied to webpages where personal data is displayed. When content masking is applied to parent elements, all child elements are masked by default.
     */
    cssExpression?: string;
    /**
     * Possible Values: `ATTRIBUTE`, `ELEMENT`
     */
    target: string;
}
export interface SessionReplayWebPrivacyMaskingPresetsRecordingMaskingBlockListRules {
    blockListRules: outputs.SessionReplayWebPrivacyMaskingPresetsRecordingMaskingBlockListRulesBlockListRule[];
}
export interface SessionReplayWebPrivacyMaskingPresetsRecordingMaskingBlockListRulesBlockListRule {
    /**
     * Attribute masking can be applied to web applications that store data within attributes, typically data-NAME attributes in HTML5. When you define attributes, their values are masked while recording but not removed.
     */
    attributeExpression?: string;
    /**
     * Content masking can be applied to webpages where personal data is displayed. When content masking is applied to parent elements, all child elements are masked by default.
     */
    cssExpression?: string;
    /**
     * Hide user interactions with these elements, including clicks that expand elements, highlighting that results from hovering a cursor over an option, and selection of specific form options.
     */
    hideUserInteraction?: boolean;
    /**
     * Possible Values: `ELEMENT`, `ATTRIBUTE`
     */
    target: string;
}
export interface SiteReliabilityGuardianObjectives {
    objectives: outputs.SiteReliabilityGuardianObjectivesObjective[];
}
export interface SiteReliabilityGuardianObjectivesObjective {
    /**
     * Enable auto adaptive threshold
     */
    autoAdaptiveThresholdEnabled?: boolean;
    /**
     * Possible Values: `GREATER_THAN_OR_EQUAL`, `LESS_THAN_OR_EQUAL`
     */
    comparisonOperator: string;
    /**
     * no documentation available
     */
    description?: string;
    /**
     * Display Unit
     */
    displayUnit?: outputs.SiteReliabilityGuardianObjectivesObjectiveDisplayUnit;
    /**
     * DQL query
     */
    dqlQuery?: string;
    /**
     * Objective name
     */
    name: string;
    /**
     * Possible Values: `DQL`, `REFERENCE_SLO`
     */
    objectiveType: string;
    /**
     * Please enter the metric key of your desired SLO. SLO metric keys have to start with 'func:slo.'
     */
    referenceSlo?: string;
    /**
     * no documentation available
     */
    target?: number;
    /**
     * no documentation available
     */
    warning?: number;
}
export interface SiteReliabilityGuardianObjectivesObjectiveDisplayUnit {
    /**
     * Base Unit
     */
    base: string;
    /**
     * Decimals
     */
    decimals: number;
    /**
     * display as unit
     */
    display: string;
}
export interface SiteReliabilityGuardianVariables {
    variables: outputs.SiteReliabilityGuardianVariablesVariable[];
}
export interface SiteReliabilityGuardianVariablesVariable {
    /**
     * Value
     */
    definition: string;
    /**
     * no documentation available
     */
    name: string;
}
export interface SloErrorBudgetBurnRate {
    /**
     * The error budget burn rate calculation is enabled (true) or disabled (false).
     */
    burnRateVisualizationEnabled?: boolean;
    /**
     * The threshold between a slow and a fast burn rate.
     */
    fastBurnThreshold?: number;
}
export interface SloV2ErrorBudgetBurnRate {
    /**
     * Burn rate visualization enabled
     */
    burnRateVisualizationEnabled: boolean;
    /**
     * The threshold defines when a burn rate is marked as fast-burning (high-emergency). Burn rates lower than this threshold (and greater than 1) are highlighted as slow-burn (low-emergency).
     */
    fastBurnThreshold?: number;
}
export interface SpanCaptureRuleMatches {
    /**
     * Matching strategies for the Span
     */
    matches: outputs.SpanCaptureRuleMatchesMatch[];
}
export interface SpanCaptureRuleMatchesMatch {
    /**
     * Whether to match strings case sensitively or not
     */
    caseSensitive?: boolean;
    /**
     * Possible values are `EQUALS`, `CONTAINS`, `STARTS_WITH`, `ENDS_WITH`, `DOES_NOT_EQUAL`, `DOES_NOT_CONTAIN`, `DOES_NOT_START_WITH` and `DOES_NOT_END_WITH`.
     */
    comparison: string;
    /**
     * The name of the attribute if `source` is `ATTRIBUTE`
     */
    key?: string;
    /**
     * What to match against. Possible values are `SPAN_NAME`, `SPAN_KIND`, `ATTRIBUTE`, `INSTRUMENTATION_LIBRARY_NAME` and `INSTRUMENTATION_LIBRARY_VERSION`
     */
    source: string;
    /**
     * The value to compare against. When `source` is `SPAN_KIND` the only allowed values are `INTERNAL`, `SERVER`, `CLIENT`, `PRODUCER` and `CONSUMER`
     */
    value?: string;
}
export interface SpanContextPropagationMatches {
    /**
     * Matching strategies for the Span
     */
    matches: outputs.SpanContextPropagationMatchesMatch[];
}
export interface SpanContextPropagationMatchesMatch {
    /**
     * Whether to match strings case sensitively or not
     */
    caseSensitive?: boolean;
    /**
     * Possible values are `EQUALS`, `CONTAINS`, `STARTS_WITH`, `ENDS_WITH`, `DOES_NOT_EQUAL`, `DOES_NOT_CONTAIN`, `DOES_NOT_START_WITH` and `DOES_NOT_END_WITH`.
     */
    comparison: string;
    /**
     * The name of the attribute if `source` is `ATTRIBUTE`
     */
    key?: string;
    /**
     * What to match against. Possible values are `SPAN_NAME`, `SPAN_KIND`, `ATTRIBUTE`, `INSTRUMENTATION_LIBRARY_NAME` and `INSTRUMENTATION_LIBRARY_VERSION`
     */
    source: string;
    /**
     * The value to compare against. When `source` is `SPAN_KIND` the only allowed values are `INTERNAL`, `SERVER`, `CLIENT`, `PRODUCER` and `CONSUMER`
     */
    value?: string;
}
export interface SpanEntryPointMatches {
    /**
     * Matching strategies for the Span
     */
    matches: outputs.SpanEntryPointMatchesMatch[];
}
export interface SpanEntryPointMatchesMatch {
    /**
     * Whether to match strings case sensitively or not
     */
    caseSensitive?: boolean;
    /**
     * Possible values are `EQUALS`, `CONTAINS`, `STARTS_WITH`, `ENDS_WITH`, `DOES_NOT_EQUAL`, `DOES_NOT_CONTAIN`, `DOES_NOT_START_WITH` and `DOES_NOT_END_WITH`.
     */
    comparison: string;
    /**
     * The name of the attribute if `source` is `ATTRIBUTE`
     */
    key?: string;
    /**
     * What to match against. Possible values are `SPAN_NAME`, `SPAN_KIND`, `ATTRIBUTE`, `INSTRUMENTATION_LIBRARY_NAME` and `INSTRUMENTATION_LIBRARY_VERSION`
     */
    source: string;
    /**
     * The value to compare against. When `source` is `SPAN_KIND` the only allowed values are `INTERNAL`, `SERVER`, `CLIENT`, `PRODUCER` and `CONSUMER`
     */
    value?: string;
}
export interface UpdateWindowsDailyRecurrence {
    /**
     * Every **X** days:
     * * `1` = every day,
     * * `2` = every two days,
     * * `3` = every three days,
     * * etc.
     */
    every: number;
    /**
     * Recurrence range
     */
    recurrenceRange: outputs.UpdateWindowsDailyRecurrenceRecurrenceRange;
    /**
     * Update time
     */
    updateTime: outputs.UpdateWindowsDailyRecurrenceUpdateTime;
}
export interface UpdateWindowsDailyRecurrenceRecurrenceRange {
    /**
     * no documentation available
     */
    end: string;
    /**
     * no documentation available
     */
    start: string;
}
export interface UpdateWindowsDailyRecurrenceUpdateTime {
    /**
     * Duration (minutes)
     */
    duration: number;
    /**
     * Start time (24-hour clock)
     */
    startTime: string;
    /**
     * Possible Values: `GMT_06_00`, `GMT_12_00`, `GMT_10_00`, `GMT_07_00`, `GMT_00_00`, `GMT_11_00`, `GMT_03_00`, `GMT_01_00`, `GMT_05_00`, `GMT_09_00`, `GMT_02_00`, `GMT_04_00`, `GMT_08_00`
     */
    timeZone: string;
}
export interface UpdateWindowsMonthlyRecurrence {
    /**
     * Every **X** months:
     * * `1` = every month,
     * * `2` = every two months,
     * * `3` = every three months,
     * * etc.
     */
    every: number;
    /**
     * Recurrence range
     */
    recurrenceRange: outputs.UpdateWindowsMonthlyRecurrenceRecurrenceRange;
    /**
     * Day of the month
     */
    selectedMonthDay: number;
    /**
     * Update time
     */
    updateTime: outputs.UpdateWindowsMonthlyRecurrenceUpdateTime;
}
export interface UpdateWindowsMonthlyRecurrenceRecurrenceRange {
    /**
     * no documentation available
     */
    end: string;
    /**
     * no documentation available
     */
    start: string;
}
export interface UpdateWindowsMonthlyRecurrenceUpdateTime {
    /**
     * Duration (minutes)
     */
    duration: number;
    /**
     * Start time (24-hour clock)
     */
    startTime: string;
    /**
     * Possible Values: `GMT_06_00`, `GMT_12_00`, `GMT_10_00`, `GMT_07_00`, `GMT_00_00`, `GMT_11_00`, `GMT_03_00`, `GMT_01_00`, `GMT_05_00`, `GMT_09_00`, `GMT_02_00`, `GMT_04_00`, `GMT_08_00`
     */
    timeZone: string;
}
export interface UpdateWindowsOnceRecurrence {
    /**
     * Update time
     */
    recurrenceRange: outputs.UpdateWindowsOnceRecurrenceRecurrenceRange;
}
export interface UpdateWindowsOnceRecurrenceRecurrenceRange {
    /**
     * no documentation available
     */
    end: string;
    /**
     * no documentation available
     */
    start: string;
}
export interface UpdateWindowsWeeklyRecurrence {
    /**
     * Every **X** weeks:
     * * `1` = every week,
     * * `2` = every two weeks,
     * * `3` = every three weeks,
     * * etc.
     */
    every: number;
    /**
     * Recurrence range
     */
    recurrenceRange: outputs.UpdateWindowsWeeklyRecurrenceRecurrenceRange;
    /**
     * Day of the week
     */
    selectedWeekDays: outputs.UpdateWindowsWeeklyRecurrenceSelectedWeekDays;
    /**
     * Update time
     */
    updateTime: outputs.UpdateWindowsWeeklyRecurrenceUpdateTime;
}
export interface UpdateWindowsWeeklyRecurrenceRecurrenceRange {
    /**
     * no documentation available
     */
    end: string;
    /**
     * no documentation available
     */
    start: string;
}
export interface UpdateWindowsWeeklyRecurrenceSelectedWeekDays {
    /**
     * no documentation available
     */
    friday: boolean;
    /**
     * no documentation available
     */
    monday: boolean;
    /**
     * no documentation available
     */
    saturday: boolean;
    /**
     * no documentation available
     */
    sunday: boolean;
    /**
     * no documentation available
     */
    thursday: boolean;
    /**
     * no documentation available
     */
    tuesday: boolean;
    /**
     * no documentation available
     */
    wednesday: boolean;
}
export interface UpdateWindowsWeeklyRecurrenceUpdateTime {
    /**
     * Duration (minutes)
     */
    duration: number;
    /**
     * Start time (24-hour clock)
     */
    startTime: string;
    /**
     * Possible Values: `GMT_06_00`, `GMT_12_00`, `GMT_10_00`, `GMT_07_00`, `GMT_00_00`, `GMT_11_00`, `GMT_03_00`, `GMT_01_00`, `GMT_05_00`, `GMT_09_00`, `GMT_02_00`, `GMT_04_00`, `GMT_08_00`
     */
    timeZone: string;
}
export interface UrlBasedSamplingQueryParameters {
    parameters: outputs.UrlBasedSamplingQueryParametersParameter[];
}
export interface UrlBasedSamplingQueryParametersParameter {
    /**
     * Query parameter name
     */
    name: string;
    /**
     * Query parameter value
     */
    value?: string;
    /**
     * Query parameter value is undefined
     */
    valueIsUndefined?: boolean;
}
export interface UserActionMetricsFilters {
    filters: outputs.UserActionMetricsFiltersFilter[];
}
export interface UserActionMetricsFiltersFilter {
    /**
     * Field name
     */
    fieldName: string;
    /**
     * Possible Values: `EQUALS`, `GREATER_THAN`, `GREATER_THAN_OR_EQUAL_TO`, `IN`, `IS_NOT_NULL`, `IS_NULL`, `LESS_THAN`, `LESS_THAN_OR_EQUAL_TO`, `LIKE`, `NOT_EQUAL`, `NOT_LIKE`, `STARTS_WITH`
     */
    operator: string;
    /**
     * no documentation available
     */
    value?: string;
    /**
     * Values
     */
    valueIns?: string[];
}
export interface UserActionMetricsValue {
    /**
     * Field name
     */
    fieldName?: string;
    /**
     * Possible Values: `COUNTER`, `FIELD`
     */
    type: string;
}
export interface UserGroupPermissions {
    /**
     * A permission granted to one or multiple environments
     */
    grants: outputs.UserGroupPermissionsGrant[];
}
export interface UserGroupPermissionsGrant {
    /**
     * The ids of the environments this permission grants the user access to.
     */
    environments?: string[];
    /**
     * The permission. Possible values are `VIEWER`, `MANAGE_SETTINGS`, `AGENT_INSTALL`, `LOG_VIEWER`, `VIEW_SENSITIVE_REQUEST_DATA`, `CONFIGURE_REQUEST_CAPTURE_DATA`, `REPLAY_SESSION_DATA`, `REPLAY_SESSION_DATA_WITHOUT_MASKING`, `MANAGE_SECURITY_PROBLEMS` and `MANAGE_SUPPORT_TICKETS`.
     */
    permission: string;
}
export interface UserSessionMetricsFilters {
    filters: outputs.UserSessionMetricsFiltersFilter[];
}
export interface UserSessionMetricsFiltersFilter {
    /**
     * Field name
     */
    fieldName: string;
    /**
     * Possible Values: `EQUALS`, `GREATER_THAN`, `GREATER_THAN_OR_EQUAL_TO`, `IN`, `IS_NOT_NULL`, `IS_NULL`, `LESS_THAN`, `LESS_THAN_OR_EQUAL_TO`, `LIKE`, `NOT_EQUAL`, `NOT_LIKE`, `STARTS_WITH`
     */
    operator: string;
    /**
     * no documentation available
     */
    value?: string;
    /**
     * Values
     */
    valueIns?: string[];
}
export interface UserSessionMetricsValue {
    /**
     * Field name
     */
    fieldName?: string;
    /**
     * Possible Values: `COUNTER`, `FIELD`
     */
    type: string;
}
export interface VmwareAnomaliesDroppedPacketsDetection {
    /**
     * Alert if the condition is met in 3 out of 5 samples
     */
    customThresholds?: outputs.VmwareAnomaliesDroppedPacketsDetectionCustomThresholds;
    /**
     * Possible Values: `Auto`, `Custom`
     */
    detectionMode?: string;
    /**
     * This setting is enabled (`true`) or disabled (`false`)
     */
    enabled: boolean;
}
export interface VmwareAnomaliesDroppedPacketsDetectionCustomThresholds {
    /**
     * Receive/transmit dropped packets rate on NIC is higher than
     */
    droppedPacketsPerSecond: number;
}
export interface VmwareAnomaliesEsxiHighCpuDetection {
    /**
     * Alert if **all three** conditions are met in 3 out of 5 samples
     */
    customThresholds?: outputs.VmwareAnomaliesEsxiHighCpuDetectionCustomThresholds;
    /**
     * Possible Values: `Auto`, `Custom`
     */
    detectionMode?: string;
    /**
     * This setting is enabled (`true`) or disabled (`false`)
     */
    enabled: boolean;
}
export interface VmwareAnomaliesEsxiHighCpuDetectionCustomThresholds {
    /**
     * At least one peak occurred when Hypervisor CPU usage was higher than
     */
    cpuPeakPercentage: number;
    /**
     * CPU usage is higher than
     */
    cpuUsagePercentage: number;
    /**
     * VM CPU ready is higher than
     */
    vmCpuReadyPercentage: number;
}
export interface VmwareAnomaliesEsxiHighMemoryDetection {
    /**
     * Alert if the condition is met in 3 out of 5 samples
     */
    customThresholds?: outputs.VmwareAnomaliesEsxiHighMemoryDetectionCustomThresholds;
    /**
     * Possible Values: `Auto`, `Custom`
     */
    detectionMode?: string;
    /**
     * This setting is enabled (`true`) or disabled (`false`)
     */
    enabled: boolean;
}
export interface VmwareAnomaliesEsxiHighMemoryDetectionCustomThresholds {
    /**
     * ESXi host swap IN/OUT or compression/decompression rate is higher than
     */
    compressionDecompressionRate: number;
}
export interface VmwareAnomaliesGuestCpuLimitDetection {
    /**
     * Alert if **all three** conditions are met in 3 out of 5 samples
     */
    customThresholds?: outputs.VmwareAnomaliesGuestCpuLimitDetectionCustomThresholds;
    /**
     * Possible Values: `Auto`, `Custom`
     */
    detectionMode?: string;
    /**
     * This setting is enabled (`true`) or disabled (`false`)
     */
    enabled: boolean;
}
export interface VmwareAnomaliesGuestCpuLimitDetectionCustomThresholds {
    /**
     * Hypervisor CPU usage is higher than
     */
    hostCpuUsagePercentage: number;
    /**
     * VM CPU ready is higher than
     */
    vmCpuReadyPercentage: number;
    /**
     * VM CPU usage (VM CPU Usage Mhz / VM CPU limit in Mhz) is higher than
     */
    vmCpuUsagePercentage: number;
}
export interface VmwareAnomaliesLowDatastoreSpaceDetection {
    /**
     * Alert if the condition is met in 1 out of 5 samples
     */
    customThresholds?: outputs.VmwareAnomaliesLowDatastoreSpaceDetectionCustomThresholds;
    /**
     * Possible Values: `Auto`, `Custom`
     */
    detectionMode?: string;
    /**
     * This setting is enabled (`true`) or disabled (`false`)
     */
    enabled: boolean;
}
export interface VmwareAnomaliesLowDatastoreSpaceDetectionCustomThresholds {
    /**
     * Datastore free space is lower than
     */
    freeSpacePercentage: number;
}
export interface VmwareAnomaliesOverloadedStorageDetection {
    /**
     * Alert if the condition is met in 3 out of 5 samples
     */
    customThresholds?: outputs.VmwareAnomaliesOverloadedStorageDetectionCustomThresholds;
    /**
     * Possible Values: `Auto`, `Custom`
     */
    detectionMode?: string;
    /**
     * This setting is enabled (`true`) or disabled (`false`)
     */
    enabled: boolean;
}
export interface VmwareAnomaliesOverloadedStorageDetectionCustomThresholds {
    /**
     * Number of command aborts is higher than
     */
    commandAbortsNumber: number;
}
export interface VmwareAnomaliesSlowPhysicalStorageDetection {
    /**
     * Alert if **any** condition is met in 4 out of 5 samples
     */
    customThresholds?: outputs.VmwareAnomaliesSlowPhysicalStorageDetectionCustomThresholds;
    /**
     * Possible Values: `Auto`, `Custom`
     */
    detectionMode?: string;
    /**
     * This setting is enabled (`true`) or disabled (`false`)
     */
    enabled: boolean;
}
export interface VmwareAnomaliesSlowPhysicalStorageDetectionCustomThresholds {
    /**
     * Read/write latency is higher than
     */
    avgReadWriteLatency: number;
    /**
     * Peak value for read/write latency is higher than
     */
    peakReadWriteLatency: number;
}
export interface VmwareAnomaliesUndersizedStorageDetection {
    /**
     * Alert if **any** condition is met in 3 out of 5 samples
     */
    customThresholds?: outputs.VmwareAnomaliesUndersizedStorageDetectionCustomThresholds;
    /**
     * Possible Values: `Auto`, `Custom`
     */
    detectionMode?: string;
    /**
     * This setting is enabled (`true`) or disabled (`false`)
     */
    enabled: boolean;
}
export interface VmwareAnomaliesUndersizedStorageDetectionCustomThresholds {
    /**
     * Average queue command latency is higher than
     */
    averageQueueCommandLatency: number;
    /**
     * Peak queue command latency is higher than
     */
    peakQueueCommandLatency: number;
}
export interface VulnerabilityCodeCriteria {
    /**
     * Process group
     */
    processGroup?: string;
}
export interface VulnerabilityCodeMetadata {
    /**
     * no documentation available
     */
    comment: string;
}
export interface VulnerabilityCodeResourceAttributeConditions {
    resourceAttributeConditions: outputs.VulnerabilityCodeResourceAttributeConditionsResourceAttributeCondition[];
}
export interface VulnerabilityCodeResourceAttributeConditionsResourceAttributeCondition {
    /**
     * Possible Values: `CONTAINS`, `DOES_NOT_CONTAIN`, `DOES_NOT_END_WITH`, `DOES_NOT_EXIST`, `DOES_NOT_START_WITH`, `ENDS_WITH`, `EQUALS`, `EXISTS`, `NOT_EQUALS`, `STARTS_WITH`
     */
    matcher: string;
    /**
     * Resource attribute key
     */
    resourceAttributeKey: string;
    /**
     * Resource attribute value
     */
    resourceAttributeValue?: string;
}
export interface VulnerabilityCodeVulnerabilityDetectionControl {
    /**
     * Possible Values: `MONITORING_OFF`, `MONITORING_ON`
     */
    monitoringMode: string;
}
export interface VulnerabilitySettingsTechnologies {
    /**
     * NET
     */
    enableDotNet: boolean;
    /**
     * NET runtimes
     */
    enableDotNetRuntime?: boolean;
    /**
     * Go
     */
    enableGo: boolean;
    /**
     * Java
     */
    enableJava: boolean;
    /**
     * Java runtimes
     */
    enableJavaRuntime?: boolean;
    /**
     * Kubernetes
     */
    enableKubernetes: boolean;
    /**
     * Node.js
     */
    enableNodeJs: boolean;
    /**
     * Node.js runtimes
     */
    enableNodeJsRuntime?: boolean;
    /**
     * PHP
     */
    enablePhp: boolean;
    /**
     * Python
     */
    enablePython?: boolean;
    /**
     * Python runtimes
     */
    enablePythonRuntime?: boolean;
}
export interface WebAppAnomaliesErrorRate {
    /**
     * This setting is enabled (`true`) or disabled (`false`)
     */
    enabled: boolean;
    /**
     * Alert if the percentage of failing user actions increases by **both** the absolute and relative thresholds:
     */
    errorRateAuto?: outputs.WebAppAnomaliesErrorRateErrorRateAuto;
    /**
     * Possible Values: `Auto`, `Fixed`
     */
    errorRateDetectionMode?: string;
    /**
     * no documentation available
     */
    errorRateFixed?: outputs.WebAppAnomaliesErrorRateErrorRateFixed;
}
export interface WebAppAnomaliesErrorRateErrorRateAuto {
    /**
     * Absolute threshold
     */
    absoluteIncrease: number;
    /**
     * Avoid over-alerting
     */
    overAlertingProtection: outputs.WebAppAnomaliesErrorRateErrorRateAutoOverAlertingProtection;
    /**
     * Relative threshold
     */
    relativeIncrease: number;
}
export interface WebAppAnomaliesErrorRateErrorRateAutoOverAlertingProtection {
    /**
     * Only alert if there are at least
     */
    actionsPerMinute: number;
    /**
     * Only alert if the abnormal state remains for at least
     */
    minutesAbnormalState: number;
}
export interface WebAppAnomaliesErrorRateErrorRateFixed {
    /**
     * To avoid over-alerting for low traffic applications
     */
    errorRateReqPerMin: number;
    /**
     * Possible Values: `Low`, `Medium`, `High`
     */
    errorRateSensitivity: string;
    /**
     * Alert if this custom error rate threshold is exceeded during any 5-minute-period
     */
    maxFailureRateIncrease: number;
    /**
     * Amount of minutes the observed traffic has to stay in abnormal state before alert
     */
    minutesAbnormalState: number;
}
export interface WebAppAnomaliesResponseTime {
    /**
     * Possible Values: `Auto`, `Fixed`
     */
    detectionMode?: string;
    /**
     * This setting is enabled (`true`) or disabled (`false`)
     */
    enabled: boolean;
    /**
     * no documentation available
     */
    responseTimeAuto?: outputs.WebAppAnomaliesResponseTimeResponseTimeAuto;
    /**
     * no documentation available
     */
    responseTimeFixed?: outputs.WebAppAnomaliesResponseTimeResponseTimeFixed;
}
export interface WebAppAnomaliesResponseTimeResponseTimeAuto {
    /**
     * Avoid over-alerting
     */
    overAlertingProtection: outputs.WebAppAnomaliesResponseTimeResponseTimeAutoOverAlertingProtection;
    /**
     * Alert if the median response time of all user actions degrades beyond **both** the absolute and relative thresholds:
     */
    responseTimeAll: outputs.WebAppAnomaliesResponseTimeResponseTimeAutoResponseTimeAll;
    /**
     * Alert if the response time of the slowest 10% of requests degrades beyond **both** the absolute and relative thresholds:
     */
    responseTimeSlowest: outputs.WebAppAnomaliesResponseTimeResponseTimeAutoResponseTimeSlowest;
}
export interface WebAppAnomaliesResponseTimeResponseTimeAutoOverAlertingProtection {
    /**
     * Only alert if there are at least
     */
    actionsPerMinute: number;
    /**
     * Only alert if the abnormal state remains for at least
     */
    minutesAbnormalState: number;
}
export interface WebAppAnomaliesResponseTimeResponseTimeAutoResponseTimeAll {
    /**
     * Absolute threshold
     */
    degradationMilliseconds: number;
    /**
     * Relative threshold
     */
    degradationPercent: number;
}
export interface WebAppAnomaliesResponseTimeResponseTimeAutoResponseTimeSlowest {
    /**
     * Absolute threshold
     */
    slowestDegradationMilliseconds: number;
    /**
     * Relative threshold
     */
    slowestDegradationPercent: number;
}
export interface WebAppAnomaliesResponseTimeResponseTimeFixed {
    /**
     * Avoid over-alerting
     */
    overAlertingProtection: outputs.WebAppAnomaliesResponseTimeResponseTimeFixedOverAlertingProtection;
    /**
     * Alert if the key performance metric of all requests degrades beyond this threshold:
     */
    responseTimeAll: outputs.WebAppAnomaliesResponseTimeResponseTimeFixedResponseTimeAll;
    /**
     * Alert if the key performance metric of the slowest 10% of requests degrades beyond this threshold:
     */
    responseTimeSlowest: outputs.WebAppAnomaliesResponseTimeResponseTimeFixedResponseTimeSlowest;
    /**
     * Possible Values: `Medium`, `High`, `Low`
     */
    sensitivity: string;
}
export interface WebAppAnomaliesResponseTimeResponseTimeFixedOverAlertingProtection {
    /**
     * Only alert if there are at least
     */
    actionsPerMinute: number;
    /**
     * Only alert if the abnormal state remains for at least
     */
    minutesAbnormalState: number;
}
export interface WebAppAnomaliesResponseTimeResponseTimeFixedResponseTimeAll {
    /**
     * Alert if the key performance metric degrades beyond this many ms within an observation period of 5 minutes
     */
    degradationMilliseconds: number;
}
export interface WebAppAnomaliesResponseTimeResponseTimeFixedResponseTimeSlowest {
    /**
     * Alert if the key performance metric of the slowest 10% degrades beyond this many ms within an observation period of 5 minutes
     */
    slowestDegradationMilliseconds: number;
}
export interface WebAppAnomaliesTrafficDrops {
    /**
     * This setting is enabled (`true`) or disabled (`false`)
     */
    enabled: boolean;
    /**
     * Dynatrace learns your typical application traffic over an observation period of one week.
     */
    trafficDrops?: outputs.WebAppAnomaliesTrafficDropsTrafficDrops;
}
export interface WebAppAnomaliesTrafficDropsTrafficDrops {
    /**
     * Minutes the observed traffic has to stay in abnormal state before alert
     */
    abnormalStateAbnormalState: number;
    /**
     * Alert if the observed traffic is less than this percentage of the expected value
     */
    trafficDropPercentage: number;
}
export interface WebAppAnomaliesTrafficSpikes {
    /**
     * This setting is enabled (`true`) or disabled (`false`)
     */
    enabled: boolean;
    /**
     * Dynatrace learns your typical application traffic over an observation period of one week.
     */
    trafficSpikes?: outputs.WebAppAnomaliesTrafficSpikesTrafficSpikes;
}
export interface WebAppAnomaliesTrafficSpikesTrafficSpikes {
    /**
     * Minutes an application has to stay in abnormal state before alert
     */
    minutesAbnormalState: number;
    /**
     * Alert if the observed traffic is more than this percentage of the expected value
     */
    trafficSpikePercentage: number;
}
export interface WebAppAutoInjectionCacheControlHeaders {
    /**
     * [How to ensure timely configuration updates for automatic injection?](https://dt-url.net/m9039ea)
     */
    cacheControlHeaders: boolean;
}
export interface WebAppAutoInjectionMonitoringCodeSourceSection {
    /**
     * Real User Monitoring code source
     */
    codeSource: string;
    /**
     * Specify the source path for placement of your application's custom JavaScript library file. By default, this path is set to the root directory of your web server. A custom source path may be necessary if your server operates behind a firewall.
     */
    monitoringCodePath?: string;
}
export interface WebAppAutoInjectionSnippetFormat {
    /**
     * Possible Values: `DEFERRED`, `SYNCHRONOUSLY`
     */
    codeSnippetType?: string;
    /**
     * Snippet format
     */
    snippetFormat: string;
}
export interface WebAppCustomErrorsErrorRules {
    errorRules: outputs.WebAppCustomErrorsErrorRulesErrorRule[];
}
export interface WebAppCustomErrorsErrorRulesErrorRule {
    /**
     * Capture settings
     */
    captureSettings: outputs.WebAppCustomErrorsErrorRulesErrorRuleCaptureSettings;
    /**
     * Possible Values: `ALL`, `BEGINS_WITH`, `CONTAINS`, `ENDS_WITH`, `EQUALS`
     */
    keyMatcher: string;
    /**
     * A case-insensitive key pattern
     */
    keyPattern?: string;
    /**
     * Possible Values: `ALL`, `BEGINS_WITH`, `CONTAINS`, `ENDS_WITH`, `EQUALS`
     */
    valueMatcher: string;
    /**
     * A case-insensitive value pattern
     */
    valuePattern?: string;
}
export interface WebAppCustomErrorsErrorRulesErrorRuleCaptureSettings {
    /**
     * Capture this error
     */
    capture: boolean;
    /**
     * [View more details](https://dt-url.net/hd580p2k)
     */
    considerForAi?: boolean;
    /**
     * Include error in Apdex calculations
     */
    impactApdex?: boolean;
}
export interface WebAppEnablementRum {
    /**
     * (Field has overlap with `dynatrace.WebApplication`) Percentage of user sessions captured and analyzed
     */
    costAndTrafficControl: number;
    /**
     * (Field has overlap with `dynatrace.WebApplication`) This setting is enabled (`true`) or disabled (`false`)
     */
    enabled: boolean;
    /**
     * Enable Real User Monitoring powered by Grail
     */
    enabledOnGrail?: boolean;
}
export interface WebAppEnablementSessionReplay {
    /**
     * (Field has overlap with `dynatrace.WebApplication`) [Percentage of user sessions recorded with Session Replay](https://dt-url.net/sr-cost-traffic-control). For example, if you have 50% for RUM and 50% for Session Replay, it results in 25% of sessions recorded with Session Replay.
     */
    costAndTrafficControl: number;
    /**
     * (Field has overlap with `dynatrace.WebApplication`) This setting is enabled (`true`) or disabled (`false`)
     */
    enabled: boolean;
}
export interface WebAppKeyPerformanceCustomThresholds {
    /**
     * If **User action duration** is above this value, the action is assigned to the Frustrated performance zone.
     */
    frustratingThresholdSeconds: number;
    /**
     * If **User action duration** is below this value, the action is assigned to the Satisfied performance zone.
     */
    toleratedThresholdSeconds: number;
}
export interface WebAppKeyPerformanceLoadFallbackThresholds {
    /**
     * If **User action duration** is above this value, the action is assigned to the Frustrated performance zone.
     */
    frustratingFallbackThresholdSeconds: number;
    /**
     * If **User action duration** is below this value, the action is assigned to the Satisfied performance zone.
     */
    toleratedFallbackThresholdSeconds: number;
}
export interface WebAppKeyPerformanceLoadThresholds {
    /**
     * If the key performance metric is above this value, the action is assigned to the Frustrated performance zone.
     */
    frustratingThresholdSeconds: number;
    /**
     * If the key performance metric is below this value, the action is assigned to the Satisfied performance zone.
     */
    toleratedThresholdSeconds: number;
}
export interface WebAppKeyPerformanceXhrFallbackThresholds {
    /**
     * If **User action duration** is above this value, the action is assigned to the Frustrated performance zone.
     */
    frustratingFallbackThresholdSeconds: number;
    /**
     * If **User action duration** is below this value, the action is assigned to the Satisfied performance zone.
     */
    toleratedFallbackThresholdSeconds: number;
}
export interface WebAppKeyPerformanceXhrThresholds {
    /**
     * If the key performance metric is above this value, the action is assigned to the Frustrated performance zone.
     */
    frustratingThresholdSeconds: number;
    /**
     * If the key performance metric is below this value, the action is assigned to the Satisfied performance zone.
     */
    toleratedThresholdSeconds: number;
}
export interface WebAppRequestErrorsErrorRules {
    errorRules: outputs.WebAppRequestErrorsErrorRulesErrorRule[];
}
export interface WebAppRequestErrorsErrorRulesErrorRule {
    /**
     * Capture settings
     */
    captureSettings: outputs.WebAppRequestErrorsErrorRulesErrorRuleCaptureSettings;
    /**
     * Match by errors that have CSP violations
     */
    considerCspViolations: boolean;
    /**
     * Match by errors that have failed image requests
     */
    considerFailedImages: boolean;
    /**
     * Match by error code
     */
    errorCodes?: string;
    /**
     * Filter settings
     */
    filterSettings: outputs.WebAppRequestErrorsErrorRulesErrorRuleFilterSettings;
}
export interface WebAppRequestErrorsErrorRulesErrorRuleCaptureSettings {
    /**
     * Capture this error
     */
    capture: boolean;
    /**
     * [View more details](https://dt-url.net/hd580p2k)
     */
    considerForAi?: boolean;
    /**
     * Include error in Apdex calculations
     */
    impactApdex?: boolean;
}
export interface WebAppRequestErrorsErrorRulesErrorRuleFilterSettings {
    /**
     * Possible Values: `BEGINS_WITH`, `CONTAINS`, `ENDS_WITH`, `EQUALS`
     */
    filter?: string;
    /**
     * no documentation available
     */
    url?: string;
}
export interface WebApplicationConversionGoals {
    /**
     * A conversion goal of the application
     */
    goals: outputs.WebApplicationConversionGoalsGoal[];
}
export interface WebApplicationConversionGoalsGoal {
    /**
     * Configuration of a destination-based conversion goal
     */
    destination?: outputs.WebApplicationConversionGoalsGoalDestination;
    /**
     * The ID of conversion goal.
     */
    id: string;
    /**
     * The name of the conversion goal. Valid length within 1 and 50 characters.
     */
    name: string;
    /**
     * The type of the web application. Possible values are `AUTO_INJECTED`, `BROWSER_EXTENSION_INJECTED` and `MANUALLY_INJECTED`
     */
    type?: string;
    /**
     * Configuration of a destination-based conversion goal
     */
    userAction?: outputs.WebApplicationConversionGoalsGoalUserAction;
    /**
     * Configuration of a destination-based conversion goal
     */
    visitDuration?: outputs.WebApplicationConversionGoalsGoalVisitDuration;
    /**
     * Configuration of a destination-based conversion goal
     */
    visitNumAction?: outputs.WebApplicationConversionGoalsGoalVisitNumAction;
}
export interface WebApplicationConversionGoalsGoalDestination {
    /**
     * The match is case-sensitive (`true`) or (`false`)
     */
    caseSensitive?: boolean;
    /**
     * The operator of the match. Possible values are `Begins`, `Contains` and `Ends`.
     */
    matchType?: string;
    /**
     * The path to be reached to hit the conversion goal
     */
    urlOrPath: string;
}
export interface WebApplicationConversionGoalsGoalUserAction {
    /**
     * Type of the action to which the rule applies. Possible values are `Custom`, `Load` and `Xhr`.
     */
    actionType?: string;
    /**
     * The match is case-sensitive (`true`) or (`false`)
     */
    caseSensitive?: boolean;
    /**
     * The type of the entity to which the rule applies. Possible values are `ActionName`, `CssSelector`, `JavaScriptVariable`, `MetaTag`, `PagePath`, `PageTitle`, `PageUrl`, `UrlAnchor` and `XhrUrl`.
     */
    matchEntity?: string;
    /**
     * The operator of the match. Possible values are `Begins`, `Contains` and `Ends`.
     */
    matchType?: string;
    /**
     * The value to be matched to hit the conversion goal
     */
    value?: string;
}
export interface WebApplicationConversionGoalsGoalVisitDuration {
    /**
     * The duration of session to hit the conversion goal, in milliseconds
     */
    duration: number;
}
export interface WebApplicationConversionGoalsGoalVisitNumAction {
    /**
     * The number of user actions to hit the conversion goal
     */
    numUserActions?: number;
}
export interface WebApplicationCustomActionApdexSettings {
    /**
     * Fallback threshold of an XHR action, defining a tolerable user experience, when the configured KPM is not available. Values between 0 and 240000 are allowed.
     */
    frustratingFallbackThreshold: number;
    /**
     * Maximal value of apdex, which is considered as tolerable user experience. Values between 0 and 240000 are allowed.
     */
    frustratingThreshold: number;
    /**
     * no documentation available
     *
     * @deprecated The attribute `threshold` no longer exists in the API schema, please use `toleratedThreshold`, `frustratingThreshold`, `toleratedFallbackThreshold`, and `frustratingFallbackThreshold` instead
     */
    threshold?: number;
    /**
     * Fallback threshold of an XHR action, defining a satisfied user experience, when the configured KPM is not available. Values between 0 and 60000 are allowed.
     */
    toleratedFallbackThreshold: number;
    /**
     * Maximal value of apdex, which is considered as satisfied user experience. Values between 0 and 60000 are allowed.
     */
    toleratedThreshold: number;
}
export interface WebApplicationKeyUserAction {
    /**
     * Configuration of the key user action
     */
    actions: outputs.WebApplicationKeyUserActionAction[];
}
export interface WebApplicationKeyUserActionAction {
    /**
     * The domain where the action is performed.
     */
    domain?: string;
    /**
     * The name of the action
     */
    name: string;
    /**
     * The type of the action. Possible values are `Custom`, `Load` and `Xhr`.
     */
    type: string;
}
export interface WebApplicationLoadActionApdexSettings {
    /**
     * Fallback threshold of an XHR action, defining a tolerable user experience, when the configured KPM is not available. Values between 0 and 240000 are allowed.
     */
    frustratingFallbackThreshold: number;
    /**
     * Maximal value of apdex, which is considered as tolerable user experience. Values between 0 and 240000 are allowed.
     */
    frustratingThreshold: number;
    /**
     * no documentation available
     *
     * @deprecated The attribute `threshold` no longer exists in the API schema, please use `toleratedThreshold`, `frustratingThreshold`, `toleratedFallbackThreshold`, and `frustratingFallbackThreshold` instead
     */
    threshold?: number;
    /**
     * Fallback threshold of an XHR action, defining a satisfied user experience, when the configured KPM is not available. Values between 0 and 60000 are allowed.
     */
    toleratedFallbackThreshold: number;
    /**
     * Maximal value of apdex, which is considered as satisfied user experience. Values between 0 and 60000 are allowed.
     */
    toleratedThreshold: number;
}
export interface WebApplicationMetaDataCaptureSettings {
    /**
     * Java script agent meta data capture settings
     */
    captures?: outputs.WebApplicationMetaDataCaptureSettingsCapture[];
}
export interface WebApplicationMetaDataCaptureSettingsCapture {
    /**
     * The name of the meta data to capture
     */
    capturingName: string;
    /**
     * Name for displaying the captured values in Dynatrace
     */
    name: string;
    /**
     * `true` if this metadata should be captured regardless of the privacy settings, `false` otherwise
     */
    publicMetadata?: boolean;
    /**
     * The type of the meta data to capture. Possible values are `COOKIE`, `CSS_SELECTOR`, `JAVA_SCRIPT_FUNCTION`, `JAVA_SCRIPT_VARIABLE`, `META_TAG` and `QUERY_STRING`.
     */
    type: string;
    /**
     * The unique ID of the meta data to capture
     */
    uniqueId?: number;
    /**
     * `true` if the last captured value should be used for this metadata. By default the first value will be used.
     */
    useLastValue?: boolean;
}
export interface WebApplicationMonitoringSettings {
    /**
     * Add the cross origin = anonymous attribute to capture JavaScript error messages and W3C resource timings
     */
    addCrossOriginAnonymousAttribute: boolean;
    /**
     * Advanced JavaScript tag settings
     */
    advancedJavascriptTagSettings: outputs.WebApplicationMonitoringSettingsAdvancedJavascriptTagSettings;
    /**
     * The name of the angular package
     */
    angularPackageName?: string;
    /**
     * Settings for restricting certain browser type, version, platform and, comparator. It also restricts the mode
     */
    browserRestrictionSettings?: outputs.WebApplicationMonitoringSettingsBrowserRestrictionSettings;
    /**
     * Optimize the value of cache control headers for use with Dynatrace real user monitoring enabled/disabled
     */
    cacheControlHeaderOptimizations?: boolean;
    /**
     * Settings for content capture
     */
    contentCapture: outputs.WebApplicationMonitoringSettingsContentCapture;
    /**
     * Domain for cookie placement. Maximum 150 characters.
     */
    cookiePlacementDomain?: string;
    /**
     * To enable RUM for XHR calls to AWS Lambda, define a regular expression matching these calls, Dynatrace can then automatically add a custom header (`x-dtc`) to each such request to the respective endpoints in AWS.
     */
    correlationHeaderInclusionRegex?: string;
    /**
     * The location to send monitoring data from the JavaScript tag.
     *
     *  Specify either a relative or an absolute URL. If you use an absolute URL, data will be sent using CORS.
     *
     *  **Required** for auto-injected applications, optional for agentless applications. Maximum 512 characters.
     */
    customConfigurationProperties?: string;
    /**
     * You can exclude some actions from becoming XHR actions.
     *
     * Put a regular expression, matching all the required URLs, here.
     *
     * If noting specified the feature is disabled
     */
    excludeXhrRegex?: string;
    /**
     * `fetch()` request capture enabled/disabled
     */
    fetchRequests?: boolean;
    /**
     * Possible valures are `CODE_SNIPPET`, `CODE_SNIPPET_ASYNC`, `INLINE_CODE` and `JAVASCRIPT_TAG`.
     */
    injectionMode: string;
    /**
     * Instrumented web or app server.
     */
    instrumentedWebServer?: boolean;
    /**
     * Settings for restricting certain ip addresses and for introducing subnet mask. It also restricts the mode
     */
    ipAddressRestrictionSettings?: outputs.WebApplicationMonitoringSettingsIpAddressRestrictionSettings;
    /**
     * Support of various JavaScript frameworks
     */
    javascriptFrameworkSupport?: outputs.WebApplicationMonitoringSettingsJavascriptFrameworkSupport;
    /**
     * Java script injection rules
     */
    javascriptInjectionRules?: outputs.WebApplicationMonitoringSettingsJavascriptInjectionRules;
    /**
     * The location of your application’s custom JavaScript library file.
     *
     *  If nothing specified the root directory of your web server is used.
     *
     *  **Required** for auto-injected applications, not supported by agentless applications. Maximum 512 characters.
     */
    libraryFileLocation?: string;
    /**
     * The location to send monitoring data from the JavaScript tag.
     *
     *  Specify either a relative or an absolute URL. If you use an absolute URL, data will be sent using CORS.
     *
     *  **Required** for auto-injected applications, optional for agentless applications. Maximum 512 characters.
     */
    monitoringDataPath?: string;
    /**
     * Same site cookie attribute
     */
    sameSiteCookieAttribute?: string;
    /**
     * Time duration for the cache settings
     */
    scriptTagCacheDurationInHours: number;
    /**
     * Secure attribute usage for Dynatrace cookies enabled/disabled
     */
    secureCookieAttribute?: boolean;
    /**
     * Path to identify the server’s request ID. Maximum 150 characters.
     */
    serverRequestPathId?: string;
    /**
     * Send beacon data via CORS.
     */
    useCors?: boolean;
    /**
     * `XmlHttpRequest` support enabled/disabled
     */
    xmlHttpRequest?: boolean;
}
export interface WebApplicationMonitoringSettingsAdvancedJavascriptTagSettings {
    /**
     * Additional event handlers and wrappers
     */
    additionalEventHandlers: outputs.WebApplicationMonitoringSettingsAdvancedJavascriptTagSettingsAdditionalEventHandlers;
    /**
     * In addition to the event handlers, events called using `addEventListener` or `attachEvent` can be captured. Be careful with this option! Event wrappers can conflict with the JavaScript code on a web page
     */
    eventWrapperSettings?: outputs.WebApplicationMonitoringSettingsAdvancedJavascriptTagSettingsEventWrapperSettings;
    /**
     * Global event capture settings
     */
    globalEventCaptureSettings?: outputs.WebApplicationMonitoringSettingsAdvancedJavascriptTagSettingsGlobalEventCaptureSettings;
    /**
     * Instrumentation of unsupported Ajax frameworks enabled/disabled
     */
    instrumentUnsupportedAjaxFrameworks?: boolean;
    /**
     * Maximum character length for action names. Valid values range from 5 to 10000.
     */
    maxActionNameLength: number;
    /**
     * Maximum number of errors to be captured per page. Valid values range from 0 to 50.
     */
    maxErrorsToCapture: number;
    /**
     * Additional special characters that are to be escaped using non-alphanumeric characters in HTML escape format. Maximum length 30 character. Allowed characters are `^`, `\`, `<` and `>`.
     */
    specialCharactersToEscape?: string;
    /**
     * Send the beacon signal as a synchronous XMLHttpRequest using Firefox enabled/disabled
     */
    syncBeaconFirefox?: boolean;
    /**
     * Send the beacon signal as a synchronous XMLHttpRequest using Internet Explorer enabled/disabled
     */
    syncBeaconInternetExplorer?: boolean;
}
export interface WebApplicationMonitoringSettingsAdvancedJavascriptTagSettingsAdditionalEventHandlers {
    /**
     * Blur event handler enabled/disabled
     */
    blur?: boolean;
    /**
     * Change event handler enabled/disabled
     */
    change?: boolean;
    /**
     * Click event handler enabled/disabled
     */
    click?: boolean;
    /**
     * Max. number of DOM nodes to instrument. Valid values range from 0 to 100000.
     */
    maxDomNodes: number;
    /**
     * Mouseup event handler enabled/disabled
     */
    mouseup?: boolean;
    /**
     * toString method enabled/disabled
     */
    toStringMethod?: boolean;
    /**
     * Use mouseup event for clicks enabled/disabled
     */
    useMouseUpEventForClicks?: boolean;
}
export interface WebApplicationMonitoringSettingsAdvancedJavascriptTagSettingsEventWrapperSettings {
    /**
     * Blur enabled/disabled
     */
    blur?: boolean;
    /**
     * Change enabled/disabled
     */
    change?: boolean;
    /**
     * Click enabled/disabled
     */
    click?: boolean;
    /**
     * MouseUp enabled/disabled
     */
    mouseup?: boolean;
    /**
     * TouchEnd enabled/disabled
     */
    touchEnd?: boolean;
    /**
     * TouchStart enabled/disabled
     */
    touchStart?: boolean;
}
export interface WebApplicationMonitoringSettingsAdvancedJavascriptTagSettingsGlobalEventCaptureSettings {
    /**
     * Additional events to be captured globally as user input.
     */
    additionalEventCapturedAsUserInput?: string;
    /**
     * Change enabled/disabled
     */
    change?: boolean;
    /**
     * Click enabled/disabled
     */
    click?: boolean;
    /**
     * DoubleClick enabled/disabled
     */
    doubleclick?: boolean;
    /**
     * KeyDown enabled/disabled
     */
    keydown?: boolean;
    /**
     * KeyUp enabled/disabled
     */
    keyup?: boolean;
    /**
     * MouseDown enabled/disabled
     */
    mousedown?: boolean;
    /**
     * MouseUp enabled/disabled
     */
    mouseup?: boolean;
    /**
     * Scroll enabled/disabled
     */
    scroll?: boolean;
    /**
     * TouchEnd enabled/disabled
     */
    touchEnd?: boolean;
    /**
     * TouchStart enabled/disabled
     */
    touchStart?: boolean;
}
export interface WebApplicationMonitoringSettingsBrowserRestrictionSettings {
    /**
     * The mode of the list of browser restrictions. Possible values area `EXCLUDE` and `INCLUDE`.
     */
    mode: string;
    /**
     * A list of browser restrictions
     */
    restrictions?: outputs.WebApplicationMonitoringSettingsBrowserRestrictionSettingsRestrictions;
}
export interface WebApplicationMonitoringSettingsBrowserRestrictionSettingsRestrictions {
    /**
     * Browser exclusion rules for the browsers that are to be excluded
     */
    restrictions: outputs.WebApplicationMonitoringSettingsBrowserRestrictionSettingsRestrictionsRestriction[];
}
export interface WebApplicationMonitoringSettingsBrowserRestrictionSettingsRestrictionsRestriction {
    /**
     * The type of the browser that is used. Possible values are `ANDROID_WEBKIT`, `BOTS_SPIDERS`, `CHROME`, `EDGE`, `FIREFOX`, `INTERNET_EXPLORER,`OPERA`and`SAFARI`
     */
    browserType: string;
    /**
     * The version of the browser that is used
     */
    browserVersion?: string;
    /**
     * No documentation available. Possible values are `EQUALS`, `GREATER_THAN_OR_EQUAL` and `LOWER_THAN_OR_EQUAL`.
     */
    comparator?: string;
    /**
     * The platform on which the browser is being used. Possible values are `ALL`, `DESKTOP` and `MOBILE`
     */
    platform?: string;
}
export interface WebApplicationMonitoringSettingsContentCapture {
    /**
     * JavaScript errors monitoring enabled/disabled
     */
    javascriptErrors?: boolean;
    /**
     * Settings for resource timings capture
     */
    resourceTimingSettings: outputs.WebApplicationMonitoringSettingsContentCaptureResourceTimingSettings;
    /**
     * Settings for timed action capture
     */
    timeoutSettings: outputs.WebApplicationMonitoringSettingsContentCaptureTimeoutSettings;
    /**
     * Visually complete and Speed index support enabled/disabled
     */
    visuallyCompleteAndSpeedIndex?: boolean;
    /**
     * Settings for VisuallyComplete
     */
    visuallyCompleteSettings?: outputs.WebApplicationMonitoringSettingsContentCaptureVisuallyCompleteSettings;
}
export interface WebApplicationMonitoringSettingsContentCaptureResourceTimingSettings {
    /**
     * Instrumentation delay for monitoring resource and image resource impact in browsers that don't offer W3C resource timings.
     */
    instrumentationDelay: number;
    /**
     * Timing for JavaScript files and images on non-W3C supported browsers enabled/disabled
     */
    nonW3cResourceTimings?: boolean;
    /**
     * Defines how detailed resource timings are captured.
     *
     * Only effective if **w3cResourceTimings** or **nonW3cResourceTimings** is enabled. Possible values are `CAPTURE_ALL_SUMMARIES`, `CAPTURE_FULL_DETAILS` and `CAPTURE_LIMITED_SUMMARIES`
     */
    resourceTimingCaptureType?: string;
    /**
     * Limits the number of domains for which W3C resource timings are captured.
     *
     * Only effective if **resourceTimingCaptureType** is `CAPTURE_LIMITED_SUMMARIES`. Valid values range from 0 to 50.
     */
    resourceTimingsDomainLimit?: number;
    /**
     * W3C resource timings for third party/CDN enabled/disabled
     */
    w3cResourceTimings?: boolean;
}
export interface WebApplicationMonitoringSettingsContentCaptureTimeoutSettings {
    /**
     * Defines how deep temporary actions may cascade. 0 disables temporary actions completely. Recommended value if enabled is 3
     */
    temporaryActionLimit: number;
    /**
     * The total timeout of all cascaded timeouts that should still be able to create a temporary action
     */
    temporaryActionTotalTimeout: number;
    /**
     * Timed action support enabled/disabled.
     */
    timedActionSupport?: boolean;
}
export interface WebApplicationMonitoringSettingsContentCaptureVisuallyCompleteSettings {
    /**
     * A RegularExpression used to exclude images and iframes from being detected by the VC module
     */
    excludeUrlRegex?: string;
    /**
     * Query selector for mutation nodes to ignore in VC and SI calculation
     */
    ignoredMutationsList?: string;
    /**
     * The time in ms the VC module waits for no mutations happening on the page after the load action. Defaults to 1000. Valid values range from 0 to 30000.
     */
    inactivityTimeout?: number;
    /**
     * Determines the time in ms VC waits after an action closes to start calculation. Defaults to 50. Valid values range from 0 to 5000.
     */
    mutationTimeout?: number;
    /**
     * Minimum visible area in pixels of elements to be counted towards VC and SI. Defaults to 50. Valid values range from 0 to 10000.
     */
    threshold?: number;
}
export interface WebApplicationMonitoringSettingsIpAddressRestrictionSettings {
    /**
     * The mode of the list of ip address restrictions. Possible values area `EXCLUDE` and `INCLUDE`.
     */
    mode: string;
    /**
     * The IP addresses or the IP address ranges to be mapped to the location
     */
    restrictions?: outputs.WebApplicationMonitoringSettingsIpAddressRestrictionSettingsRestrictions;
}
export interface WebApplicationMonitoringSettingsIpAddressRestrictionSettingsRestrictions {
    /**
     * The IP address or the IP address range to be mapped to the location
     */
    ranges: outputs.WebApplicationMonitoringSettingsIpAddressRestrictionSettingsRestrictionsRange[];
}
export interface WebApplicationMonitoringSettingsIpAddressRestrictionSettingsRestrictionsRange {
    /**
     * The IP address to be mapped.
     */
    address: string;
    /**
     * The **to** address of the IP address range.
     */
    addressTo?: string;
    /**
     * The subnet mask of the IP address range. Valid values range from 0 to 128.
     */
    subnetMask?: number;
}
export interface WebApplicationMonitoringSettingsJavascriptFrameworkSupport {
    /**
     * ActiveXObject support enabled/disabled
     */
    activeXObject?: boolean;
    /**
     * AngularJS and Angular support enabled/disabled
     */
    angular?: boolean;
    /**
     * Dojo support enabled/disabled
     */
    dojo?: boolean;
    /**
     * ExtJS, Sencha Touch support enabled/disabled
     */
    extjs?: boolean;
    /**
     * ICEfaces support enabled/disabled
     */
    icefaces?: boolean;
    /**
     * jQuery, Backbone.js support enabled/disabled
     */
    jquery?: boolean;
    /**
     * MooTools support enabled/disabled
     */
    mooTools?: boolean;
    /**
     * Prototype support enabled/disabled
     */
    prototype?: boolean;
}
export interface WebApplicationMonitoringSettingsJavascriptInjectionRules {
    /**
     * Java script injection rule
     */
    rules: outputs.WebApplicationMonitoringSettingsJavascriptInjectionRulesRule[];
}
export interface WebApplicationMonitoringSettingsJavascriptInjectionRulesRule {
    /**
     * `fetch()` request capture enabled/disabled
     */
    enabled?: boolean;
    /**
     * The HTML pattern of the java script injection
     */
    htmlPattern?: string;
    /**
     * The url rule of the java script injection. Possible values are `AFTER_SPECIFIC_HTML`, `AUTOMATIC_INJECTION`, `BEFORE_SPECIFIC_HTML` and `DO_NOT_INJECT`.
     */
    rule: string;
    /**
     * The target against which the rule of the java script injection should be matched. Possible values are `PAGE_QUERY` and `URL`.
     */
    target?: string;
    /**
     * The url operator of the java script injection. Possible values are `ALL_PAGES`, `CONTAINS`, `ENDS_WITH`, `EQUALS` and `STARTS_WITH`.
     */
    urlOperator: string;
    /**
     * The url pattern of the java script injection
     */
    urlPattern?: string;
}
export interface WebApplicationSessionReplayConfig {
    /**
     * (Field has overlap with `dynatrace.WebAppEnablement`) Session replay sampling rating in percent
     */
    costControlPercentage: number;
    /**
     * (Field has overlap with `dynatrace.SessionReplayResourceCapture`) A list of URLs to be excluded from CSS resource capturing
     */
    cssResourceCapturingExclusionRules?: string[];
    /**
     * (Field has overlap with `dynatrace.SessionReplayResourceCapture`) Capture (`true`) or don't capture (`false`) CSS resources from the session
     */
    enableCssResourceCapturing?: boolean;
    /**
     * (Field has overlap with `dynatrace.WebAppEnablement`) SessionReplay Enabled/Disabled
     */
    enabled?: boolean;
}
export interface WebApplicationUserActionAndSessionProperties {
    /**
     * User action and session properties settings
     */
    properties?: outputs.WebApplicationUserActionAndSessionPropertiesProperty[];
}
export interface WebApplicationUserActionAndSessionPropertiesProperty {
    /**
     * The aggregation type of the property.
     */
    aggregation?: string;
    /**
     * The cleanup rule of the property.
     *
     * Defines how to extract the data you need from a string value. Specify the [regular expression](https://dt-url.net/k9e0iaq) for the data you need there
     */
    cleanupRule?: string;
    /**
     * The display name of the property
     */
    displayName?: string;
    /**
     * Unique id among all userTags and properties of this application
     */
    id: number;
    /**
     * If `true`, the value of this property will always be stored in lower case. Defaults to `false`.
     */
    ignoreCase?: boolean;
    /**
     * Key of the property
     */
    key: string;
    /**
     * If the `type` is `LONG_STRING`, the max length for this property. Must be a multiple of `100`. Defaults to `200`. Maximum is `1000`.
     */
    longStringLength?: number;
    /**
     * If the origin is `META_DATA`, metaData id of the property
     */
    metadataId?: number;
    /**
     * The origin of the property. Possible values are `JAVASCRIPT_API`, `META_DATA` and `SERVER_SIDE_REQUEST_ATTRIBUTE`.
     */
    origin: string;
    /**
     * The ID of the request attribute.
     *
     * Only applicable when the **origin** is set to `SERVER_SIDE_REQUEST_ATTRIBUTE`
     */
    serverSideRequestAttribute?: string;
    /**
     * If `true`, the property is stored as a session property
     */
    storeAsSessionProperty?: boolean;
    /**
     * If `true`, the property is stored as a user action property
     */
    storeAsUserActionProperty?: boolean;
    /**
     * The data type of the property. Possible values are `DATE`, `DOUBLE`, `LONG`, `LONG_STRING` and `STRING`.
     */
    type: string;
}
export interface WebApplicationUserActionNamingSettings {
    /**
     * User action naming rules for custom actions
     */
    customActionNamingRules?: outputs.WebApplicationUserActionNamingSettingsCustomActionNamingRules;
    /**
     * Case insensitive naming
     */
    ignoreCase?: boolean;
    /**
     * User action naming rules for loading actions
     */
    loadActionNamingRules?: outputs.WebApplicationUserActionNamingSettingsLoadActionNamingRules;
    /**
     * User action placeholders
     */
    placeholders?: outputs.WebApplicationUserActionNamingSettingsPlaceholders;
    /**
     * User action naming rules for custom actions. If not specified Dynatrace assumes `__sid`, `cfid`, `cftoken`, `phpsessid` and `sid`.
     */
    queryParameterCleanups: string[];
    /**
     * Deactivate this setting if different domains should not result in separate user actions
     */
    splitUserActionsByDomain?: boolean;
    /**
     * First load action found under an XHR action should be used when true. Else the deepest one under the xhr action is used
     */
    useFirstDetectedLoadAction?: boolean;
    /**
     * User action naming rules for XHR actions
     */
    xhrActionNamingRules?: outputs.WebApplicationUserActionNamingSettingsXhrActionNamingRules;
}
export interface WebApplicationUserActionNamingSettingsCustomActionNamingRules {
    /**
     * The settings of naming rule
     */
    rules: outputs.WebApplicationUserActionNamingSettingsCustomActionNamingRulesRule[];
}
export interface WebApplicationUserActionNamingSettingsCustomActionNamingRulesRule {
    /**
     * Defines the conditions when the naming rule should apply
     */
    conditions?: outputs.WebApplicationUserActionNamingSettingsCustomActionNamingRulesRuleConditions;
    /**
     * Naming pattern. Use Curly brackets `{}` to select placeholders
     */
    template: string;
    /**
     * If set to `true` the conditions will be connected by logical OR instead of logical AND
     */
    useOrConditions?: boolean;
}
export interface WebApplicationUserActionNamingSettingsCustomActionNamingRulesRuleConditions {
    /**
     * Defines the conditions when the naming rule should apply
     */
    conditions: outputs.WebApplicationUserActionNamingSettingsCustomActionNamingRulesRuleConditionsCondition[];
}
export interface WebApplicationUserActionNamingSettingsCustomActionNamingRulesRuleConditionsCondition {
    /**
     * Must be a defined placeholder wrapped in curly braces
     */
    operand1: string;
    /**
     * Must be null if operator is `IS_EMPTY`, a regex if operator is `MATCHES_REGULAR_ERPRESSION`. In all other cases the value can be a freetext or a placeholder wrapped in curly braces
     */
    operand2?: string;
    /**
     * The operator of the condition. Possible values are `CONTAINS`, `ENDS_WITH`, `EQUALS`, `IS_EMPTY`, `IS_NOT_EMPTY`, `MATCHES_REGULAR_EXPRESSION`, `NOT_CONTAINS`, `NOT_ENDS_WITH`, `NOT_EQUALS`, `NOT_MATCHES_REGULAR_EXPRESSION`, `NOT_STARTS_WITH` and `STARTS_WITH`.
     */
    operator: string;
}
export interface WebApplicationUserActionNamingSettingsLoadActionNamingRules {
    /**
     * The settings of naming rule
     */
    rules: outputs.WebApplicationUserActionNamingSettingsLoadActionNamingRulesRule[];
}
export interface WebApplicationUserActionNamingSettingsLoadActionNamingRulesRule {
    /**
     * Defines the conditions when the naming rule should apply
     */
    conditions?: outputs.WebApplicationUserActionNamingSettingsLoadActionNamingRulesRuleConditions;
    /**
     * Naming pattern. Use Curly brackets `{}` to select placeholders
     */
    template: string;
    /**
     * If set to `true` the conditions will be connected by logical OR instead of logical AND
     */
    useOrConditions?: boolean;
}
export interface WebApplicationUserActionNamingSettingsLoadActionNamingRulesRuleConditions {
    /**
     * Defines the conditions when the naming rule should apply
     */
    conditions: outputs.WebApplicationUserActionNamingSettingsLoadActionNamingRulesRuleConditionsCondition[];
}
export interface WebApplicationUserActionNamingSettingsLoadActionNamingRulesRuleConditionsCondition {
    /**
     * Must be a defined placeholder wrapped in curly braces
     */
    operand1: string;
    /**
     * Must be null if operator is `IS_EMPTY`, a regex if operator is `MATCHES_REGULAR_ERPRESSION`. In all other cases the value can be a freetext or a placeholder wrapped in curly braces
     */
    operand2?: string;
    /**
     * The operator of the condition. Possible values are `CONTAINS`, `ENDS_WITH`, `EQUALS`, `IS_EMPTY`, `IS_NOT_EMPTY`, `MATCHES_REGULAR_EXPRESSION`, `NOT_CONTAINS`, `NOT_ENDS_WITH`, `NOT_EQUALS`, `NOT_MATCHES_REGULAR_EXPRESSION`, `NOT_STARTS_WITH` and `STARTS_WITH`.
     */
    operator: string;
}
export interface WebApplicationUserActionNamingSettingsPlaceholders {
    /**
     * User action placeholders
     */
    placeholders: outputs.WebApplicationUserActionNamingSettingsPlaceholdersPlaceholder[];
}
export interface WebApplicationUserActionNamingSettingsPlaceholdersPlaceholder {
    /**
     * The input for the place holder. Possible values are `ELEMENT_IDENTIFIER`, `INPUT_TYPE`, `METADATA`, `PAGE_TITLE`, `PAGE_URL`, `SOURCE_URL`, `TOP_XHR_URL` and `XHR_URL`
     */
    input: string;
    /**
     * The ID of the metadata
     */
    metadataId?: number;
    /**
     * Placeholder name. Valid length needs to be between 1 and 50 characters
     */
    name: string;
    /**
     * The part to process. Possible values are `ALL`, `ANCHOR` and `PATH`
     */
    processingPart: string;
    /**
     * The processing step settings
     */
    processingSteps?: outputs.WebApplicationUserActionNamingSettingsPlaceholdersPlaceholderProcessingSteps;
    /**
     * Use the element identifier that was selected by Dynatrace
     */
    useGuessedElementIdentifier?: boolean;
}
export interface WebApplicationUserActionNamingSettingsPlaceholdersPlaceholderProcessingSteps {
    /**
     * The processing step
     */
    steps: outputs.WebApplicationUserActionNamingSettingsPlaceholdersPlaceholderProcessingStepsStep[];
}
export interface WebApplicationUserActionNamingSettingsPlaceholdersPlaceholderProcessingStepsStep {
    /**
     * If set to `true`: Returns the input if `patternBefore` or `patternAfter` cannot be found and the `type` is `SUBSTRING`. Returns the input if `regularExpression` doesn't match and `type` is `EXTRACT_BY_REGULAR_EXPRESSION`.
     */
    fallbackToInput?: boolean;
    /**
     * The pattern after the required value. It will be removed.
     */
    patternAfter?: string;
    /**
     * The required occurrence of **patternAfter**. Possible values are `FIRST` and `LAST`.
     */
    patternAfterSearchType?: string;
    /**
     * The pattern before the required value. It will be removed.
     */
    patternBefore?: string;
    /**
     * The required occurrence of **patternBefore**. Possible values are `FIRST` and `LAST`.
     */
    patternBeforeSearchType?: string;
    /**
     * The pattern to be replaced.
     *
     *  Only applicable if the `type` is `REPLACE_WITH_PATTERN`.
     */
    patternToReplace?: string;
    /**
     * A regular expression for the string to be extracted or replaced. Only applicable if the `type` is `EXTRACT_BY_REGULAR_EXPRESSION` or `REPLACE_WITH_REGULAR_EXPRESSION`.
     */
    regularExpression?: string;
    /**
     * Replacement for the original value
     */
    replacement?: string;
    /**
     * An action to be taken by the processing:
     */
    type: string;
}
export interface WebApplicationUserActionNamingSettingsXhrActionNamingRules {
    /**
     * The settings of naming rule
     */
    rules: outputs.WebApplicationUserActionNamingSettingsXhrActionNamingRulesRule[];
}
export interface WebApplicationUserActionNamingSettingsXhrActionNamingRulesRule {
    /**
     * Defines the conditions when the naming rule should apply
     */
    conditions?: outputs.WebApplicationUserActionNamingSettingsXhrActionNamingRulesRuleConditions;
    /**
     * Naming pattern. Use Curly brackets `{}` to select placeholders
     */
    template: string;
    /**
     * If set to `true` the conditions will be connected by logical OR instead of logical AND
     */
    useOrConditions?: boolean;
}
export interface WebApplicationUserActionNamingSettingsXhrActionNamingRulesRuleConditions {
    /**
     * Defines the conditions when the naming rule should apply
     */
    conditions: outputs.WebApplicationUserActionNamingSettingsXhrActionNamingRulesRuleConditionsCondition[];
}
export interface WebApplicationUserActionNamingSettingsXhrActionNamingRulesRuleConditionsCondition {
    /**
     * Must be a defined placeholder wrapped in curly braces
     */
    operand1: string;
    /**
     * Must be null if operator is `IS_EMPTY`, a regex if operator is `MATCHES_REGULAR_ERPRESSION`. In all other cases the value can be a freetext or a placeholder wrapped in curly braces
     */
    operand2?: string;
    /**
     * The operator of the condition. Possible values are `CONTAINS`, `ENDS_WITH`, `EQUALS`, `IS_EMPTY`, `IS_NOT_EMPTY`, `MATCHES_REGULAR_EXPRESSION`, `NOT_CONTAINS`, `NOT_ENDS_WITH`, `NOT_EQUALS`, `NOT_MATCHES_REGULAR_EXPRESSION`, `NOT_STARTS_WITH` and `STARTS_WITH`.
     */
    operator: string;
}
export interface WebApplicationUserTags {
    /**
     * User tag settings
     */
    tags: outputs.WebApplicationUserTagsTag[];
}
export interface WebApplicationUserTagsTag {
    /**
     * Cleanup rule expression of the userTag
     */
    cleanupRule?: string;
    id?: number;
    /**
     * If `true`, the value of this tag will always be stored in lower case. Defaults to `false`.
     */
    ignoreCase?: boolean;
    /**
     * If it's of type metaData, metaData id of the userTag
     */
    metadataId?: number;
    /**
     * The ID of the RrequestAttribute for the userTag
     */
    serverSideRequestAttribute?: string;
    /**
     * A unique ID among all userTags and properties of this application. Minimum value is 1.
     */
    uniqueId: number;
}
export interface WebApplicationWaterfallSettings {
    /**
     * Warn about resources with a lower browser cache rate above *X*%. Values between 1 and 100 are allowed.
     */
    resourceBrowserCachingThreshold: number;
    /**
     * Warn about resources larger than *X* bytes. Values between 0 and 99999000 are allowed.
     */
    resourcesThreshold: number;
    /**
     * Warn about slow CDN resources with a response time above *X* ms. Values between 0 and 99999000 are allowed.
     */
    slowCndResourcesThreshold: number;
    /**
     * Warn about slow 1st party resources with a response time above *X* ms. Values between 0 and 99999000 are allowed.
     */
    slowFirstPartyResourcesThreshold: number;
    /**
     * Warn about slow 3rd party resources with a response time above *X* ms. Values between 0 and 99999000 are allowed.
     */
    slowThirdPartyResourcesThreshold: number;
    /**
     * Warn if Speed index exceeds *X* % of Visually complete. Values between 1 and 99 are allowed.
     */
    speedIndexVisuallyCompleteRatioThreshold: number;
    /**
     * Warn about uncompressed resources larger than *X* bytes. Values between 0 and 99999 are allowed.
     */
    uncompressedResourcesThreshold: number;
}
export interface WebApplicationXhrActionApdexSettings {
    /**
     * Fallback threshold of an XHR action, defining a tolerable user experience, when the configured KPM is not available. Values between 0 and 240000 are allowed.
     */
    frustratingFallbackThreshold: number;
    /**
     * Maximal value of apdex, which is considered as tolerable user experience. Values between 0 and 240000 are allowed.
     */
    frustratingThreshold: number;
    /**
     * no documentation available
     *
     * @deprecated The attribute `threshold` no longer exists in the API schema, please use `toleratedThreshold`, `frustratingThreshold`, `toleratedFallbackThreshold`, and `frustratingFallbackThreshold` instead
     */
    threshold?: number;
    /**
     * Fallback threshold of an XHR action, defining a satisfied user experience, when the configured KPM is not available. Values between 0 and 60000 are allowed.
     */
    toleratedFallbackThreshold: number;
    /**
     * Maximal value of apdex, which is considered as satisfied user experience. Values between 0 and 60000 are allowed.
     */
    toleratedThreshold: number;
}
export interface WebhookNotificationHeaders {
    /**
     * An additional HTTP Header to include when sending requests
     */
    headers: outputs.WebhookNotificationHeadersHeader[];
}
export interface WebhookNotificationHeadersHeader {
    /**
     * The name of the HTTP header
     */
    name: string;
    /**
     * The value of the HTTP header as a sensitive property. May contain an empty value. `secretValue` and `value` are mutually exclusive. Only one of those two is allowed to be specified.
     */
    secretValue?: string;
    /**
     * The value of the HTTP header. May contain an empty value. `secretValue` and `value` are mutually exclusive. Only one of those two is allowed to be specified.
     */
    value?: string;
}
export interface WebhookNotificationOauth2Credentials {
    /**
     * Access token URL
     */
    accessTokenUrl: string;
    /**
     * If false, the client credentials are included in the HTTP request body.
     */
    authenticateViaRequestHeader?: boolean;
    /**
     * Client ID
     */
    clientId: string;
    /**
     * Client secret
     */
    clientSecret: string;
    /**
     * The scope of access you are requesting
     */
    scope?: string;
}
export interface XmattersNotificationHeaders {
    /**
     * An additional HTTP Header to include when sending requests
     */
    headers: outputs.XmattersNotificationHeadersHeader[];
}
export interface XmattersNotificationHeadersHeader {
    /**
     * The name of the HTTP header
     */
    name: string;
    /**
     * The value of the HTTP header as a sensitive property. May contain an empty value. `secretValue` and `value` are mutually exclusive. Only one of those two is allowed to be specified.
     */
    secretValue?: string;
    /**
     * The value of the HTTP header. May contain an empty value. `secretValue` and `value` are mutually exclusive. Only one of those two is allowed to be specified.
     */
    value?: string;
}
