UNPKG

@pulumiverse/dynatrace

Version:

A Pulumi package for creating and managing Dynatrace cloud resources.

904 lines 1.25 MB
import * as pulumi from "@pulumi/pulumi"; import * as inputs from "../types/input"; export interface AlertingFilters { /** * A conditions for the metric usage */ filters?: pulumi.Input<pulumi.Input<inputs.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?: pulumi.Input<inputs.AlertingFiltersFilterCustom>; /** * Configuration of a custom event filter. Filters custom events by title or description. If both specified, the AND logic applies */ predefined?: pulumi.Input<inputs.AlertingFiltersFilterPredefined>; } export interface AlertingFiltersFilterCustom { /** * Configuration of a matching filter */ description?: pulumi.Input<inputs.AlertingFiltersFilterCustomDescription>; /** * Configuration of a matching filter */ metadata?: pulumi.Input<inputs.AlertingFiltersFilterCustomMetadata>; /** * Configuration of a matching filter */ title?: pulumi.Input<inputs.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?: pulumi.Input<boolean>; /** * The filter is enabled (`true`) or disabled (`false`) */ enabled?: pulumi.Input<boolean>; /** * Reverses the comparison **operator**. For example it turns the **begins with** into **does not begin with** */ negate?: pulumi.Input<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: pulumi.Input<string>; /** * The value to compare to */ value: pulumi.Input<string>; } export interface AlertingFiltersFilterCustomMetadata { /** * Define filters for event properties. A maximum of 20 properties is allowed. */ items: pulumi.Input<inputs.AlertingFiltersFilterCustomMetadataItems>; } export interface AlertingFiltersFilterCustomMetadataItems { filters: pulumi.Input<pulumi.Input<inputs.AlertingFiltersFilterCustomMetadataItemsFilter>[]>; } export interface AlertingFiltersFilterCustomMetadataItemsFilter { /** * GET /api/v2/eventProperties for list of available keys */ key: pulumi.Input<string>; /** * no documentation available */ negate?: pulumi.Input<boolean>; /** * Value */ value: pulumi.Input<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?: pulumi.Input<boolean>; /** * The filter is enabled (`true`) or disabled (`false`) */ enabled?: pulumi.Input<boolean>; /** * Reverses the comparison **operator**. For example it turns the **begins with** into **does not begin with** */ negate?: pulumi.Input<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: pulumi.Input<string>; /** * The value to compare to */ value: pulumi.Input<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?: pulumi.Input<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: pulumi.Input<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?: pulumi.Input<pulumi.Input<inputs.AlertingProfileEventTypeFilterCustomEventFilter>[]>; /** * Configuration of a custom event filter. Filters custom events by title or description. If both specified, the AND logic applies */ predefinedEventFilters?: pulumi.Input<pulumi.Input<inputs.AlertingProfileEventTypeFilterPredefinedEventFilter>[]>; /** * allows for configuring properties that are not explicitly supported by the current version of this provider */ unknowns?: pulumi.Input<string>; } export interface AlertingProfileEventTypeFilterCustomEventFilter { /** * Configuration of a matching filter */ customDescriptionFilters?: pulumi.Input<pulumi.Input<inputs.AlertingProfileEventTypeFilterCustomEventFilterCustomDescriptionFilter>[]>; /** * Configuration of a matching filter */ customTitleFilters?: pulumi.Input<pulumi.Input<inputs.AlertingProfileEventTypeFilterCustomEventFilterCustomTitleFilter>[]>; /** * allows for configuring properties that are not explicitly supported by the current version of this provider */ unknowns?: pulumi.Input<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?: pulumi.Input<boolean>; /** * The filter is enabled (`true`) or disabled (`false`) */ enabled?: pulumi.Input<boolean>; /** * Reverses the comparison **operator**. For example it turns the **begins with** into **does not begin with** */ negate?: pulumi.Input<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: pulumi.Input<string>; /** * allows for configuring properties that are not explicitly supported by the current version of this provider */ unknowns?: pulumi.Input<string>; /** * The value to compare to */ value: pulumi.Input<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?: pulumi.Input<boolean>; /** * The filter is enabled (`true`) or disabled (`false`) */ enabled?: pulumi.Input<boolean>; /** * Reverses the comparison **operator**. For example it turns the **begins with** into **does not begin with** */ negate?: pulumi.Input<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: pulumi.Input<string>; /** * allows for configuring properties that are not explicitly supported by the current version of this provider */ unknowns?: pulumi.Input<string>; /** * The value to compare to */ value: pulumi.Input<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: pulumi.Input<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?: pulumi.Input<boolean>; /** * allows for configuring properties that are not explicitly supported by the current version of this provider */ unknowns?: pulumi.Input<string>; } export interface AlertingProfileMetadata { /** * Dynatrace server version */ clusterVersion?: pulumi.Input<string>; /** * A Sorted list of the version numbers of the configuration */ configurationVersions?: pulumi.Input<pulumi.Input<number>[]>; /** * A Sorted list of the version numbers of the configuration */ currentConfigurationVersions?: pulumi.Input<pulumi.Input<string>[]>; } export interface AlertingProfileRule { /** * Send a notification if a problem remains open longer than *X* minutes */ delayInMinutes: pulumi.Input<number>; /** * The severity level to trigger the alert. Possible values are `AVAILABILITY`, `CUSTOM_ALERT`, `ERROR`,`MONITORING_UNAVAILABLE`,`PERFORMANCE` and `RESOURCE_CONTENTION`. */ severityLevel: pulumi.Input<string>; /** * Configuration of the tag filtering of the alerting profile */ tagFilters: pulumi.Input<pulumi.Input<inputs.AlertingProfileRuleTagFilter>[]>; /** * allows for configuring properties that are not explicitly supported by the current version of this provider */ unknowns?: pulumi.Input<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: pulumi.Input<string>; /** * A list of required tags */ tagFilters?: pulumi.Input<pulumi.Input<inputs.AlertingProfileRuleTagFilterTagFilter>[]>; /** * allows for configuring properties that are not explicitly supported by the current version of this provider */ unknowns?: pulumi.Input<string>; } export interface AlertingProfileRuleTagFilterTagFilter { /** * The origin of the tag, such as AWS or Cloud Foundry. Custom tags use the `CONTEXTLESS` value */ context: pulumi.Input<string>; /** * The key of the tag. Custom tags have the tag value here */ key: pulumi.Input<string>; /** * The value of the tag. Not applicable to custom tags */ value?: pulumi.Input<string>; } export interface AlertingRules { /** * A conditions for the metric usage */ rules?: pulumi.Input<pulumi.Input<inputs.AlertingRulesRule>[]>; } export interface AlertingRulesRule { /** * Send a notification if a problem remains open longer than *X* minutes */ delayInMinutes: pulumi.Input<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: pulumi.Input<string>; /** * The severity level to trigger the alert. Possible values are `AVAILABILITY`, `CUSTOM_ALERT`, `ERRORS`,`MONITORING_UNAVAILABLE`,`PERFORMANCE` and `RESOURCE_CONTENTION`. */ severityLevel: pulumi.Input<string>; /** * Entities which contain any/all of the configured tags will match this alerting profile. It is recommended to use manual tags. */ tags?: pulumi.Input<pulumi.Input<string>[]>; } export interface ApiDetectionConditions { conditions: pulumi.Input<pulumi.Input<inputs.ApiDetectionConditionsCondition>[]>; } export interface ApiDetectionConditionsCondition { /** * Possible Values: `FILE_NAME`, `FQCN`, `PACKAGE` */ base: pulumi.Input<string>; /** * Possible Values: `BEGINS_WITH`, `CONTAINS` */ matcher: pulumi.Input<string>; /** * no documentation available */ pattern: pulumi.Input<string>; } export interface AppMonitoringAppMonitoring { appMonitorings: pulumi.Input<pulumi.Input<inputs.AppMonitoringAppMonitoringAppMonitoring>[]>; } export interface AppMonitoringAppMonitoringAppMonitoring { /** * App ID */ appId: pulumi.Input<string>; /** * Possible Values: `debug`, `error`, `info`, `off`, `useDefault`, `warn` */ customLogLevel: pulumi.Input<string>; /** * Possible Values: `off`, `on`, `useDefault` */ customTraceLevel?: pulumi.Input<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?: pulumi.Input<inputs.ApplicationAnomaliesFailureRateAuto>; /** * Fixed thresholds for failure rate increase detection */ thresholds?: pulumi.Input<inputs.ApplicationAnomaliesFailureRateThresholds>; } export interface ApplicationAnomaliesFailureRateAuto { /** * Absolute increase of failing service calls to trigger an alert, % */ absolute: pulumi.Input<number>; /** * Relative increase of failing service calls to trigger an alert, % */ relative: pulumi.Input<number>; /** * allows for configuring properties that are not explicitly supported by the current version of this provider */ unknowns?: pulumi.Input<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: pulumi.Input<string>; /** * Failure rate during any 5-minute period to trigger an alert, % */ threshold: pulumi.Input<number>; /** * allows for configuring properties that are not explicitly supported by the current version of this provider */ unknowns?: pulumi.Input<string>; } export interface ApplicationAnomaliesResponseTime { /** * Parameters of the response time degradation auto-detection. Violation of **any** criterion triggers an alert */ auto?: pulumi.Input<inputs.ApplicationAnomaliesResponseTimeAuto>; /** * Fixed thresholds for response time degradation detection */ thresholds?: pulumi.Input<inputs.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: pulumi.Input<string>; /** * Alert if the response time degrades by more than *X* milliseconds */ milliseconds: pulumi.Input<number>; /** * Alert if the response time degrades by more than *X* % */ percent: pulumi.Input<number>; /** * Alert if the response time of the slowest 10% degrades by more than *X* milliseconds */ slowestMilliseconds: pulumi.Input<number>; /** * Alert if the response time of the slowest 10% degrades by more than *X* milliseconds */ slowestPercent: pulumi.Input<number>; /** * allows for configuring properties that are not explicitly supported by the current version of this provider */ unknowns?: pulumi.Input<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: pulumi.Input<string>; /** * Response time during any 5-minute period to trigger an alert, in milliseconds */ milliseconds: pulumi.Input<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: pulumi.Input<string>; /** * Response time of the 10% slowest during any 5-minute period to trigger an alert, in milliseconds */ slowestMilliseconds: pulumi.Input<number>; /** * allows for configuring properties that are not explicitly supported by the current version of this provider */ unknowns?: pulumi.Input<string>; } export interface ApplicationAnomaliesTraffic { /** * The configuration of traffic drops detection */ drops?: pulumi.Input<inputs.ApplicationAnomaliesTrafficDrops>; /** * The configuration of traffic spikes detection */ spikes?: pulumi.Input<inputs.ApplicationAnomaliesTrafficSpikes>; } export interface ApplicationAnomaliesTrafficDrops { /** * The detection is enabled (`true`) or disabled (`false`) */ enabled: pulumi.Input<boolean>; /** * Alert if the observed traffic is less than *X* % of the expected value */ percent?: pulumi.Input<number>; } export interface ApplicationAnomaliesTrafficSpikes { /** * The detection is enabled (`true`) or disabled (`false`) */ enabled: pulumi.Input<boolean>; /** * Alert if the observed traffic is less than *X* % of the expected value */ percent?: pulumi.Input<number>; } export interface ApplicationDataPrivacySessionReplayDataPrivacy { /** * (Field has overlap with `dynatrace.SessionReplayWebPrivacy`) Content masking settings for Session Replay. */ contentMaskingSettings: pulumi.Input<inputs.ApplicationDataPrivacySessionReplayDataPrivacyContentMaskingSettings>; /** * (Field has overlap with `dynatrace.SessionReplayWebPrivacy`) If `true`, session recording is disabled until JavaScriptAPI `dtrum.enableSessionReplay()` is called */ optIn?: pulumi.Input<boolean>; /** * (Field has overlap with `dynatrace.SessionReplayWebPrivacy`) A list of URLs to be excluded from recording */ urlExclusionRules?: pulumi.Input<pulumi.Input<string>[]>; } export interface ApplicationDataPrivacySessionReplayDataPrivacyContentMaskingSettings { /** * (Field has overlap with `dynatrace.SessionReplayWebPrivacy`) Configuration of the Session Replay masking during Playback */ playback: pulumi.Input<inputs.ApplicationDataPrivacySessionReplayDataPrivacyContentMaskingSettingsPlayback>; /** * (Field has overlap with `dynatrace.SessionReplayWebPrivacy`) Configuration of the Session Replay masking during Recording */ recording: pulumi.Input<inputs.ApplicationDataPrivacySessionReplayDataPrivacyContentMaskingSettingsRecording>; } export interface ApplicationDataPrivacySessionReplayDataPrivacyContentMaskingSettingsPlayback { /** * The type of the masking: */ preset: pulumi.Input<string>; /** * A list of masking rules */ rules?: pulumi.Input<inputs.ApplicationDataPrivacySessionReplayDataPrivacyContentMaskingSettingsPlaybackRules>; } export interface ApplicationDataPrivacySessionReplayDataPrivacyContentMaskingSettingsPlaybackRules { /** * The masking rule defining how data is hidden */ rules: pulumi.Input<pulumi.Input<inputs.ApplicationDataPrivacySessionReplayDataPrivacyContentMaskingSettingsPlaybackRulesRule>[]>; } export interface ApplicationDataPrivacySessionReplayDataPrivacyContentMaskingSettingsPlaybackRulesRule { /** * The selector for the element or the attribute to be masked. */ selector: pulumi.Input<string>; /** * The type of the masking rule */ type: pulumi.Input<string>; /** * Interactions with the element are (`true`) or are not (`false) masked */ userInteractionHidden?: pulumi.Input<boolean>; } export interface ApplicationDataPrivacySessionReplayDataPrivacyContentMaskingSettingsRecording { /** * The type of the masking: */ preset: pulumi.Input<string>; /** * A list of masking rules */ rules?: pulumi.Input<inputs.ApplicationDataPrivacySessionReplayDataPrivacyContentMaskingSettingsRecordingRules>; } export interface ApplicationDataPrivacySessionReplayDataPrivacyContentMaskingSettingsRecordingRules { /** * The masking rule defining how data is hidden */ rules: pulumi.Input<pulumi.Input<inputs.ApplicationDataPrivacySessionReplayDataPrivacyContentMaskingSettingsRecordingRulesRule>[]>; } export interface ApplicationDataPrivacySessionReplayDataPrivacyContentMaskingSettingsRecordingRulesRule { /** * The selector for the element or the attribute to be masked. */ selector: pulumi.Input<string>; /** * The type of the masking rule */ type: pulumi.Input<string>; /** * Interactions with the element are (`true`) or are not (`false) masked */ userInteractionHidden?: pulumi.Input<boolean>; } export interface ApplicationDetectionRuleFilterConfig { /** * Where to look for the pattern value, possible values are `DOMAIN` or `URL` */ applicationMatchTarget: pulumi.Input<string>; /** * The operator used for matching the application detection rule, possible values are `BEGINS_WITH`, `CONTAINS`, `ENDS_WITH`, `EQUALS`, `MATCHES` */ applicationMatchType: pulumi.Input<string>; /** * The value to look for with the application detection rule */ pattern: pulumi.Input<string>; } export interface ApplicationErrorRulesCustomErrors { /** * Configuration of the custom error in the web application */ rules: pulumi.Input<pulumi.Input<inputs.ApplicationErrorRulesCustomErrorsRule>[]>; } export interface ApplicationErrorRulesCustomErrorsRule { /** * Capture (`true`) or ignore (`false`) the error */ capture?: pulumi.Input<boolean>; /** * Include (`true`) or exclude (`false`) the error in Davis AI [problem detection and analysis](https://dt-url.net/a963kd2) */ customAlerting?: pulumi.Input<boolean>; /** * Include (`true`) or exclude (`false`) the error in Apdex calculation */ impactApdex?: pulumi.Input<boolean>; /** * The matching operation for the **keyPattern**. Possible values are `BEGINS_WITH`, `CONTAINS`, `ENDS_WITH` and `EQUALS` */ keyMatcher?: pulumi.Input<string>; /** * The key of the error to look for */ keyPattern?: pulumi.Input<string>; /** * The matching operation for the **valuePattern**. Possible values are `BEGINS_WITH`, `CONTAINS`, `ENDS_WITH` and `EQUALS`. */ valueMatcher?: pulumi.Input<string>; /** * The value of the error to look for */ valuePattern?: pulumi.Input<string>; } export interface ApplicationErrorRulesHttpErrors { /** * Configuration of the HTTP error in the web application */ rules: pulumi.Input<pulumi.Input<inputs.ApplicationErrorRulesHttpErrorsRule>[]>; } export interface ApplicationErrorRulesHttpErrorsRule { /** * Capture (`true`) or ignore (`false`) the error */ capture?: pulumi.Input<boolean>; /** * If `true`, match by errors that have CSP Rule violations */ considerBlockedRequests?: pulumi.Input<boolean>; /** * Include (`true`) or exclude (`false`) the error in Davis AI [problem detection and analysis](https://dt-url.net/a963kd2) */ considerForAi?: pulumi.Input<boolean>; /** * If `true`, match by errors that have unknown HTTP status code */ considerUnknownErrorCode?: pulumi.Input<boolean>; /** * The HTTP status code or status code range to match by. */ errorCodes?: pulumi.Input<string>; /** * The matching rule for the URL. Popssible values are `BEGINS_WITH`, `CONTAINS`, `ENDS_WITH` and `EQUALS`. */ filter?: pulumi.Input<string>; /** * If `true`, filter errors by URL */ filterByUrl?: pulumi.Input<boolean>; /** * Include (`true`) or exclude (`false`) the error in Apdex calculation */ impactApdex?: pulumi.Input<boolean>; /** * The URL to look for */ url?: pulumi.Input<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: pulumi.Input<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: pulumi.Input<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: pulumi.Input<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: pulumi.Input<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: pulumi.Input<string>; } export interface AppsecNotificationEmailConfiguration { /** * BCC */ bccRecipients?: pulumi.Input<pulumi.Input<string>[]>; /** * CC */ ccRecipients?: pulumi.Input<pulumi.Input<string>[]>; /** * To */ recipients: pulumi.Input<pulumi.Input<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: pulumi.Input<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: pulumi.Input<string>; /** * The project key of the Jira issue to be created by this notification. */ projectKey: pulumi.Input<string>; /** * The URL of the Jira API endpoint. */ url: pulumi.Input<string>; /** * The username of the Jira profile. */ username: pulumi.Input<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: pulumi.Input<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: pulumi.Input<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: pulumi.Input<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: pulumi.Input<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: pulumi.Input<string>; } export interface AppsecNotificationWebhookConfiguration { /** * Accept any SSL certificate (including self-signed and invalid certificates) */ acceptAnyCertificate: pulumi.Input<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?: pulumi.Input<inputs.AppsecNotificationWebhookConfigurationHeaders>; /** * Webhook endpoint URL */ url: pulumi.Input<string>; } export interface AppsecNotificationWebhookConfigurationHeaders { headers: pulumi.Input<pulumi.Input<inputs.AppsecNotificationWebhookConfigurationHeadersHeader>[]>; } export interface AppsecNotificationWebhookConfigurationHeadersHeader { /** * no documentation available */ name: pulumi.Input<string>; /** * Secret HTTP header value */ secret: pulumi.Input<boolean>; /** * The secret value of the HTTP header. May contain an empty value. */ secretValue?: pulumi.Input<string>; /** * The value of the HTTP header. May contain an empty value. */ value?: pulumi.Input<string>; } export interface AttackAllowlistAttackHandling { /** * Possible Values: `MONITOR`, `OFF` */ blockingStrategy: pulumi.Input<string>; } export interface AttackAllowlistCriteria { /** * Only consider attacks matching the specified pattern. */ attackPattern?: pulumi.Input<string>; /** * Source IP */ sourceIp?: pulumi.Input<string>; } export interface AttackAllowlistMetadata { /** * no documentation available */ comment: pulumi.Input<string>; } export interface AttackAllowlistResourceAttributeConditions { resourceAttributeConditions: pulumi.Input<pulumi.Input<inputs.AttackAllowlistResourceAttributeConditionsResourceAttributeCondition>[]>; } export interface AttackAllowlistResourceAttributeConditionsResourceAttributeCondition { /** * Possible Values: `CONTAINS`, `DOES_NOT_CONTAIN`, `DOES_NOT_END_WITH`, `