{"name":"signalfx","version":"7.22.0","description":"A Pulumi package for creating and managing SignalFx resources.","keywords":["pulumi","signalfx"],"homepage":"https://pulumi.io","license":"Apache-2.0","attribution":"This Pulumi package is based on the [`signalfx` Terraform Provider](https://github.com/splunk-terraform/terraform-provider-signalfx).","repository":"https://github.com/pulumi/pulumi-signalfx","meta":{"moduleFormat":"(.*)(?:/[^/]*)"},"language":{"csharp":{"packageReferences":{"Pulumi":"3.*"},"namespaces":{"automatedarchival":"automatedArchival","aws":"Aws","azure":"Azure","gcp":"Gcp","index":"index","jira":"Jira","log":"Log","opsgenie":"Opsgenie","pagerduty":"PagerDuty","servicenow":"ServiceNow","signalfx":"SignalFx","slack":"Slack","victorops":"VictorOps"},"compatibility":"tfbridge20","respectSchemaVersion":true},"go":{"importBasePath":"github.com/pulumi/pulumi-signalfx/sdk/v7/go/signalfx","generateResourceContainerTypes":true,"generateExtraInputTypes":true,"respectSchemaVersion":true},"nodejs":{"packageDescription":"A Pulumi package for creating and managing SignalFx resources.","readme":"\u003e This provider is a derived work of the [Terraform Provider](https://github.com/splunk-terraform/terraform-provider-signalfx)\n\u003e distributed under [MPL 2.0](https://www.mozilla.org/en-US/MPL/2.0/). If you encounter a bug or missing feature,\n\u003e first check the [`pulumi-signalfx` repo](https://github.com/pulumi/pulumi-signalfx/issues); however, if that doesn't turn up anything,\n\u003e please consult the source [`terraform-provider-signalfx` repo](https://github.com/splunk-terraform/terraform-provider-signalfx/issues).","devDependencies":{"@types/mime":"^2.0.0","@types/node":"^10.0.0"},"compatibility":"tfbridge20","disableUnionOutputTypes":true,"respectSchemaVersion":true},"python":{"readme":"\u003e This provider is a derived work of the [Terraform Provider](https://github.com/splunk-terraform/terraform-provider-signalfx)\n\u003e distributed under [MPL 2.0](https://www.mozilla.org/en-US/MPL/2.0/). If you encounter a bug or missing feature,\n\u003e first check the [`pulumi-signalfx` repo](https://github.com/pulumi/pulumi-signalfx/issues); however, if that doesn't turn up anything,\n\u003e please consult the source [`terraform-provider-signalfx` repo](https://github.com/splunk-terraform/terraform-provider-signalfx/issues).","compatibility":"tfbridge20","respectSchemaVersion":true,"pyproject":{"enabled":true}}},"config":{"variables":{"apiUrl":{"type":"string","description":"API URL for your Splunk Observability Cloud org, may include a realm"},"authToken":{"type":"string","description":"Splunk Observability Cloud auth token"},"customAppUrl":{"type":"string","description":"Application URL for your Splunk Observability Cloud org, often customized for organizations using SSO","deprecationMessage":"Remove the definition, the provider will automatically populate the custom app URL as needed"},"email":{"type":"string","description":"Used to create a session token instead of an API token, it requires the account to be configured to login with Email and Password"},"featurePreview":{"type":"object","additionalProperties":{"type":"boolean"},"description":"Allows for users to opt-in to new features that are considered experimental or not ready for general availability yet."},"organizationId":{"type":"string","description":"Required if the user is configured to be part of multiple organizations"},"password":{"type":"string","description":"Used to create a session token instead of an API token, it requires the account to be configured to login with Email and Password","secret":true},"retryMaxAttempts":{"type":"integer","description":"Max retries for a single HTTP call. Defaults to 4"},"retryWaitMaxSeconds":{"type":"integer","description":"Maximum retry wait for a single HTTP call in seconds. Defaults to 30"},"retryWaitMinSeconds":{"type":"integer","description":"Minimum retry wait for a single HTTP call in seconds. Defaults to 1"},"tags":{"type":"array","items":{"type":"string"},"description":"Allows for Tags to be added by default to resources that allow for tags to be included. If there is already tags configured, the global tags are added in prefix."},"teams":{"type":"array","items":{"type":"string"},"description":"Allows for teams to be defined at a provider level, and apply to all applicable resources created."},"timeoutSeconds":{"type":"integer","description":"Timeout duration for a single HTTP call in seconds. Defaults to 120"}}},"types":{"signalfx:automatedarchival/ExemptMetricExemptMetric:ExemptMetricExemptMetric":{"properties":{"created":{"type":"integer","description":"Timestamp of when the automated archival setting was created\n"},"creator":{"type":"string","description":"ID of the creator of the automated archival setting\n"},"lastUpdated":{"type":"integer","description":"Timestamp of when the automated archival setting was last updated\n"},"lastUpdatedBy":{"type":"string","description":"ID of user who last updated the automated archival setting\n"},"name":{"type":"string","description":"Name of the metric to be exempted from automated archival\n"}},"type":"object","required":["name"],"language":{"nodejs":{"requiredOutputs":["created","creator","lastUpdated","lastUpdatedBy","name"]}}},"signalfx:aws/IntegrationCustomNamespaceSyncRule:IntegrationCustomNamespaceSyncRule":{"properties":{"defaultAction":{"type":"string","description":"Controls the Splunk Observability Cloud default behavior for processing data from an AWS namespace. Splunk Observability Cloud ignores this property unless you specify the \u003cspan pulumi-lang-nodejs=\"`filterAction`\" pulumi-lang-dotnet=\"`FilterAction`\" pulumi-lang-go=\"`filterAction`\" pulumi-lang-python=\"`filter_action`\" pulumi-lang-yaml=\"`filterAction`\" pulumi-lang-java=\"`filterAction`\"\u003e`filter_action`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`filterSource`\" pulumi-lang-dotnet=\"`FilterSource`\" pulumi-lang-go=\"`filterSource`\" pulumi-lang-python=\"`filter_source`\" pulumi-lang-yaml=\"`filterSource`\" pulumi-lang-java=\"`filterSource`\"\u003e`filter_source`\u003c/span\u003e properties. If you do specify them, use this property to control how Splunk Observability Cloud treats data that doesn't match the filter. The available actions are one of `\"Include\"` or `\"Exclude\"`.\n"},"filterAction":{"type":"string","description":"Controls how Splunk Observability Cloud processes data from a custom AWS namespace. The available actions are one of `\"Include\"` or `\"Exclude\"`.\n"},"filterSource":{"type":"string","description":"Expression that selects the data that Splunk Observability Cloud should sync for the custom namespace associated with this sync rule. The expression uses the syntax defined for the SignalFlow `filter()` function; it can be any valid SignalFlow filter expression.\n"},"namespace":{"type":"string","description":"An AWS custom namespace having custom AWS metrics that you want to sync with Splunk Observability Cloud. See the AWS documentation on publishing metrics for more information.\n"}},"type":"object","required":["namespace"]},"signalfx:aws/IntegrationMetricStatsToSync:IntegrationMetricStatsToSync":{"properties":{"metric":{"type":"string","description":"AWS metric that you want to pick statistics for\n"},"namespace":{"type":"string","description":"An AWS namespace having AWS metric that you want to pick statistics for\n"},"stats":{"type":"array","items":{"type":"string"},"description":"AWS statistics you want to collect\n"}},"type":"object","required":["metric","namespace","stats"]},"signalfx:aws/IntegrationNamespaceSyncRule:IntegrationNamespaceSyncRule":{"properties":{"defaultAction":{"type":"string","description":"Controls the Splunk Observability Cloud default behavior for processing data from an AWS namespace. Splunk Observability Cloud ignores this property unless you specify the \u003cspan pulumi-lang-nodejs=\"`filterAction`\" pulumi-lang-dotnet=\"`FilterAction`\" pulumi-lang-go=\"`filterAction`\" pulumi-lang-python=\"`filter_action`\" pulumi-lang-yaml=\"`filterAction`\" pulumi-lang-java=\"`filterAction`\"\u003e`filter_action`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`filterSource`\" pulumi-lang-dotnet=\"`FilterSource`\" pulumi-lang-go=\"`filterSource`\" pulumi-lang-python=\"`filter_source`\" pulumi-lang-yaml=\"`filterSource`\" pulumi-lang-java=\"`filterSource`\"\u003e`filter_source`\u003c/span\u003e properties. If you do specify them, use this property to control how Splunk Observability Cloud treats data that doesn't match the filter. The available actions are one of `\"Include\"` or `\"Exclude\"`.\n"},"filterAction":{"type":"string","description":"Controls how Splunk Observability Cloud processes data from a custom AWS namespace. The available actions are one of `\"Include\"` or `\"Exclude\"`.\n"},"filterSource":{"type":"string","description":"Expression that selects the data that Splunk Observability Cloud should sync for the custom namespace associated with this sync rule. The expression uses the syntax defined for the SignalFlow `filter()` function; it can be any valid SignalFlow filter expression.\n"},"namespace":{"type":"string","description":"An AWS custom namespace having custom AWS metrics that you want to sync with Splunk Observability Cloud. See \u003cspan pulumi-lang-nodejs=\"`services`\" pulumi-lang-dotnet=\"`Services`\" pulumi-lang-go=\"`services`\" pulumi-lang-python=\"`services`\" pulumi-lang-yaml=\"`services`\" pulumi-lang-java=\"`services`\"\u003e`services`\u003c/span\u003e field description below for additional information.\n"}},"type":"object","required":["namespace"]},"signalfx:azure/IntegrationCustomNamespacesPerService:IntegrationCustomNamespacesPerService":{"properties":{"namespaces":{"type":"array","items":{"type":"string"},"description":"The additional namespaces.\n"},"service":{"type":"string","description":"The name of the service.\n"}},"type":"object","required":["namespaces","service"]},"signalfx:azure/IntegrationResourceFilterRule:IntegrationResourceFilterRule":{"properties":{"filterSource":{"type":"string","description":"Expression that selects the data that Splunk Observability Cloud should sync for the resource associated with this sync rule. The expression uses the syntax defined for the SignalFlow `filter()` function. The source of each filter rule must be in the form filter('key', 'value'). You can join multiple filter statements using the and and or operators. Referenced keys are limited to tags and must start with the azure_tag_ prefix.\n"}},"type":"object","required":["filterSource"]},"signalfx:gcp/IntegrationProjectServiceKey:IntegrationProjectServiceKey":{"properties":{"projectId":{"type":"string"},"projectKey":{"type":"string","secret":true}},"type":"object","required":["projectId","projectKey"]},"signalfx:gcp/IntegrationProjectWifConfig:IntegrationProjectWifConfig":{"properties":{"projectId":{"type":"string"},"wifConfig":{"type":"string"}},"type":"object","required":["projectId","wifConfig"]},"signalfx:gcp/IntegrationProjects:IntegrationProjects":{"properties":{"selectedProjectIds":{"type":"array","items":{"type":"string"},"description":"List of project IDs to synchronize metrics and metadata from. Use only if you don't want to automatically synchronize all projects.\n"},"syncMode":{"type":"string","description":"What mode of synchronizing projects should be used. Sync all tries to synchronize metrics and metadata from all discoverable projects.\n"}},"type":"object"},"signalfx:index/AlertMutingRuleFilter:AlertMutingRuleFilter":{"properties":{"negated":{"type":"boolean","description":"Determines if this is a \"not\" filter. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"property":{"type":"string","description":"The property to filter.\n"},"propertyValue":{"type":"string","description":"The property value to filter.\n"}},"type":"object","required":["property","propertyValue"]},"signalfx:index/AlertMutingRuleRecurrence:AlertMutingRuleRecurrence":{"properties":{"unit":{"type":"string","description":"The unit of the period. Can be days (d) or weeks (w).\n"},"value":{"type":"integer","description":"The amount of time, expressed as an integer, applicable to the unit specified.\n"}},"type":"object","required":["unit","value"]},"signalfx:index/DashboardChart:DashboardChart":{"properties":{"chartId":{"type":"string","description":"ID of the chart to display.\n"},"column":{"type":"integer","description":"The column to show the chart in (zero-based); this value always represents the leftmost column of the chart (between \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`11`\" pulumi-lang-dotnet=\"`11`\" pulumi-lang-go=\"`11`\" pulumi-lang-python=\"`11`\" pulumi-lang-yaml=\"`11`\" pulumi-lang-java=\"`11`\"\u003e`11`\u003c/span\u003e).\n"},"height":{"type":"integer","description":"How many rows the chart should take up (greater than or equal to \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e). \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e by default.\n"},"row":{"type":"integer","description":"The row to show the chart in (zero-based); if `height \u003e 1`, this value represents the topmost row of the chart (greater than or equal to \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e).\n"},"width":{"type":"integer","description":"How many columns (out of a total of 12) the chart should take up (between \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`12`\" pulumi-lang-dotnet=\"`12`\" pulumi-lang-go=\"`12`\" pulumi-lang-python=\"`12`\" pulumi-lang-yaml=\"`12`\" pulumi-lang-java=\"`12`\"\u003e`12`\u003c/span\u003e). \u003cspan pulumi-lang-nodejs=\"`12`\" pulumi-lang-dotnet=\"`12`\" pulumi-lang-go=\"`12`\" pulumi-lang-python=\"`12`\" pulumi-lang-yaml=\"`12`\" pulumi-lang-java=\"`12`\"\u003e`12`\u003c/span\u003e by default.\n"}},"type":"object","required":["chartId"]},"signalfx:index/DashboardColumn:DashboardColumn":{"properties":{"chartIds":{"type":"array","items":{"type":"string"},"description":"List of IDs of the charts to display.\n"},"column":{"type":"integer","description":"Column number for the layout.\n"},"height":{"type":"integer","description":"How many rows every chart should take up (greater than or equal to 1). 1 by default.\n"},"width":{"type":"integer","description":"How many columns (out of a total of \u003cspan pulumi-lang-nodejs=\"`12`\" pulumi-lang-dotnet=\"`12`\" pulumi-lang-go=\"`12`\" pulumi-lang-python=\"`12`\" pulumi-lang-yaml=\"`12`\" pulumi-lang-java=\"`12`\"\u003e`12`\u003c/span\u003e) every chart should take up (between \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`12`\" pulumi-lang-dotnet=\"`12`\" pulumi-lang-go=\"`12`\" pulumi-lang-python=\"`12`\" pulumi-lang-yaml=\"`12`\" pulumi-lang-java=\"`12`\"\u003e`12`\u003c/span\u003e). \u003cspan pulumi-lang-nodejs=\"`12`\" pulumi-lang-dotnet=\"`12`\" pulumi-lang-go=\"`12`\" pulumi-lang-python=\"`12`\" pulumi-lang-yaml=\"`12`\" pulumi-lang-java=\"`12`\"\u003e`12`\u003c/span\u003e by default.\n"}},"type":"object","required":["chartIds"]},"signalfx:index/DashboardEventOverlay:DashboardEventOverlay":{"properties":{"color":{"type":"string","description":"Color to use : gray, blue, azure, navy, brown, orange, yellow, iris, magenta, pink, purple, violet, lilac, emerald, green, aquamarine.\n"},"label":{"type":"string","description":"Text shown in the dropdown when selecting this overlay from the menu.\n"},"line":{"type":"boolean","description":"Show a vertical line for the event. \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e by default.\n"},"signal":{"type":"string","description":"Search term used to choose the events shown in the overlay.\n"},"sources":{"type":"array","items":{"$ref":"#/types/signalfx:index/DashboardEventOverlaySource:DashboardEventOverlaySource"},"description":"Each element specifies a filter to use against the signal specified in the \u003cspan pulumi-lang-nodejs=\"`signal`\" pulumi-lang-dotnet=\"`Signal`\" pulumi-lang-go=\"`signal`\" pulumi-lang-python=\"`signal`\" pulumi-lang-yaml=\"`signal`\" pulumi-lang-java=\"`signal`\"\u003e`signal`\u003c/span\u003e.\n"},"type":{"type":"string","description":"Can be set to `eventTimeSeries` (the default) to refer to externally reported events, or `detectorEvents` to refer to events from detector triggers.\n"}},"type":"object","required":["signal"]},"signalfx:index/DashboardEventOverlaySource:DashboardEventOverlaySource":{"properties":{"negated":{"type":"boolean","description":"If true, only data that does not match the specified value of the specified property appear in the event overlay. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"property":{"type":"string","description":"The name of a dimension to filter against.\n"},"values":{"type":"array","items":{"type":"string"},"description":"A list of values to be used with the \u003cspan pulumi-lang-nodejs=\"`property`\" pulumi-lang-dotnet=\"`Property`\" pulumi-lang-go=\"`property`\" pulumi-lang-python=\"`property`\" pulumi-lang-yaml=\"`property`\" pulumi-lang-java=\"`property`\"\u003e`property`\u003c/span\u003e, they will be combined via `OR`.\n"}},"type":"object","required":["property","values"]},"signalfx:index/DashboardFilter:DashboardFilter":{"properties":{"applyIfExist":{"type":"boolean","description":"If true, this filter will also match data that doesn't have this property at all.\n"},"negated":{"type":"boolean","description":"Whether this filter should be a not filter. \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e by default.\n"},"property":{"type":"string","description":"A metric time series dimension or property name.\n"},"values":{"type":"array","items":{"type":"string"},"description":"List of of strings (which will be treated as an OR filter on the property).\n"}},"type":"object","required":["property","values"]},"signalfx:index/DashboardGrid:DashboardGrid":{"properties":{"chartIds":{"type":"array","items":{"type":"string"},"description":"List of IDs of the charts to display.\n"},"height":{"type":"integer","description":"How many rows every chart should take up (greater than or equal to \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e). \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e by default.\n"},"width":{"type":"integer","description":"How many columns (out of a total of 12) every chart should take up (between \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`12`\" pulumi-lang-dotnet=\"`12`\" pulumi-lang-go=\"`12`\" pulumi-lang-python=\"`12`\" pulumi-lang-yaml=\"`12`\" pulumi-lang-java=\"`12`\"\u003e`12`\u003c/span\u003e). \u003cspan pulumi-lang-nodejs=\"`12`\" pulumi-lang-dotnet=\"`12`\" pulumi-lang-go=\"`12`\" pulumi-lang-python=\"`12`\" pulumi-lang-yaml=\"`12`\" pulumi-lang-java=\"`12`\"\u003e`12`\u003c/span\u003e by default.\n"}},"type":"object","required":["chartIds"]},"signalfx:index/DashboardGroupDashboard:DashboardGroupDashboard":{"properties":{"configId":{"type":"string","description":"The ID of the association between the dashboard group and the dashboard\n"},"dashboardId":{"type":"string","description":"The dashboard id to mirror\n"},"descriptionOverride":{"type":"string","description":"The description that will override the original dashboards's description.\n"},"filterOverrides":{"type":"array","items":{"$ref":"#/types/signalfx:index/DashboardGroupDashboardFilterOverride:DashboardGroupDashboardFilterOverride"},"description":"The description that will override the original dashboards's description.\n"},"nameOverride":{"type":"string","description":"The name that will override the original dashboards's name.\n"},"variableOverrides":{"type":"array","items":{"$ref":"#/types/signalfx:index/DashboardGroupDashboardVariableOverride:DashboardGroupDashboardVariableOverride"},"description":"The description that will override the original dashboards's description.\n"}},"type":"object","required":["dashboardId"],"language":{"nodejs":{"requiredOutputs":["configId","dashboardId"]}}},"signalfx:index/DashboardGroupDashboardFilterOverride:DashboardGroupDashboardFilterOverride":{"properties":{"negated":{"type":"boolean","description":"If true, only data that does not match the specified value of the specified property appear in the event overlay. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"property":{"type":"string","description":"The name of a dimension to filter against.\n"},"values":{"type":"array","items":{"type":"string"},"description":"A list of values to be used with the \u003cspan pulumi-lang-nodejs=\"`property`\" pulumi-lang-dotnet=\"`Property`\" pulumi-lang-go=\"`property`\" pulumi-lang-python=\"`property`\" pulumi-lang-yaml=\"`property`\" pulumi-lang-java=\"`property`\"\u003e`property`\u003c/span\u003e, they will be combined via `OR`.\n"}},"type":"object","required":["property","values"]},"signalfx:index/DashboardGroupDashboardVariableOverride:DashboardGroupDashboardVariableOverride":{"properties":{"property":{"type":"string","description":"A metric time series dimension or property name.\n"},"values":{"type":"array","items":{"type":"string"},"description":"(Optional) List of of strings (which will be treated as an OR filter on the property).\n"},"valuesSuggesteds":{"type":"array","items":{"type":"string"},"description":"A list of strings of suggested values for this variable; these suggestions will receive priority when values are autosuggested for this variable.\n"}},"type":"object","required":["property"]},"signalfx:index/DashboardGroupImportQualifier:DashboardGroupImportQualifier":{"properties":{"filters":{"type":"array","items":{"$ref":"#/types/signalfx:index/DashboardGroupImportQualifierFilter:DashboardGroupImportQualifierFilter"},"description":"Filter to apply to each chart in the dashboard\n"},"metric":{"type":"string"}},"type":"object"},"signalfx:index/DashboardGroupImportQualifierFilter:DashboardGroupImportQualifierFilter":{"properties":{"negated":{"type":"boolean","description":"(false by default) Whether this filter should be a \"not\" filter\n"},"property":{"type":"string","description":"A metric time series dimension or property name\n"},"values":{"type":"array","items":{"type":"string"},"description":"List of strings (which will be treated as an OR filter on the property)\n"}},"type":"object","required":["property","values"]},"signalfx:index/DashboardGroupPermission:DashboardGroupPermission":{"properties":{"actions":{"type":"array","items":{"type":"string"},"description":"Action the user, team, or organization can take with the dashboard group. List of values (value can be \"READ\" or \"WRITE\").\n"},"principalId":{"type":"string","description":"ID of the user, team, or organization for which you're granting permissions.\n"},"principalType":{"type":"string","description":"Clarify whether this permission configuration is for a user, a team, or an organization. Value can be one of \"USER\", \"TEAM\", or \"ORG\".\n"}},"type":"object","required":["principalId","principalType"]},"signalfx:index/DashboardPermissions:DashboardPermissions":{"properties":{"acls":{"type":"array","items":{"$ref":"#/types/signalfx:index/DashboardPermissionsAcl:DashboardPermissionsAcl"},"description":"List of read and write permission configurations to specify which user, team, and organization can view and/or edit your dashboard. Use the `permissions.parent` instead if you want to inherit permissions.\n"},"parent":{"type":"string","description":"ID of the dashboard group you want your dashboard to inherit permissions from. Use the `permissions.acl` instead if you want to specify various read and write permission configurations.\n"}},"type":"object"},"signalfx:index/DashboardPermissionsAcl:DashboardPermissionsAcl":{"properties":{"actions":{"type":"array","items":{"type":"string"},"description":"Action the user, team, or organization can take with the dashboard. List of values (value can be \"READ\" or \"WRITE\").\n"},"principalId":{"type":"string","description":"ID of the user, team, or organization for which you're granting permissions.\n"},"principalType":{"type":"string","description":"Clarify whether this permission configuration is for a user, a team, or an organization. Value can be one of \"USER\", \"TEAM\", or \"ORG\".\n"}},"type":"object","required":["principalId","principalType"]},"signalfx:index/DashboardSelectedEventOverlay:DashboardSelectedEventOverlay":{"properties":{"signal":{"type":"string","description":"Search term used to choose the events shown in the overlay.\n"},"sources":{"type":"array","items":{"$ref":"#/types/signalfx:index/DashboardSelectedEventOverlaySource:DashboardSelectedEventOverlaySource"},"description":"Each element specifies a filter to use against the signal specified in the \u003cspan pulumi-lang-nodejs=\"`signal`\" pulumi-lang-dotnet=\"`Signal`\" pulumi-lang-go=\"`signal`\" pulumi-lang-python=\"`signal`\" pulumi-lang-yaml=\"`signal`\" pulumi-lang-java=\"`signal`\"\u003e`signal`\u003c/span\u003e.\n"},"type":{"type":"string","description":"Can be set to `eventTimeSeries` (the default) to refer to externally reported events, or `detectorEvents` to refer to events from detector triggers.\n"}},"type":"object","required":["signal"]},"signalfx:index/DashboardSelectedEventOverlaySource:DashboardSelectedEventOverlaySource":{"properties":{"negated":{"type":"boolean","description":"If true, only data that does not match the specified value of the specified property appear in the event overlay. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"property":{"type":"string","description":"The name of a dimension to filter against.\n"},"values":{"type":"array","items":{"type":"string"},"description":"A list of values to be used with the \u003cspan pulumi-lang-nodejs=\"`property`\" pulumi-lang-dotnet=\"`Property`\" pulumi-lang-go=\"`property`\" pulumi-lang-python=\"`property`\" pulumi-lang-yaml=\"`property`\" pulumi-lang-java=\"`property`\"\u003e`property`\u003c/span\u003e, they will be combined via `OR`.\n"}},"type":"object","required":["property","values"]},"signalfx:index/DashboardVariable:DashboardVariable":{"properties":{"alias":{"type":"string","description":"An alias for the dashboard variable. This text will appear as the label for the dropdown field on the dashboard.\n"},"applyIfExist":{"type":"boolean","description":"If true, this variable will also match data that doesn't have this property at all.\n"},"description":{"type":"string","description":"Variable description.\n"},"property":{"type":"string","description":"A metric time series dimension or property name.\n"},"replaceOnly":{"type":"boolean","description":"If \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, this variable will only apply to charts that have a filter for the property.\n"},"restrictedSuggestions":{"type":"boolean","description":"If \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, this variable may only be set to the values listed in \u003cspan pulumi-lang-nodejs=\"`valuesSuggested`\" pulumi-lang-dotnet=\"`ValuesSuggested`\" pulumi-lang-go=\"`valuesSuggested`\" pulumi-lang-python=\"`values_suggested`\" pulumi-lang-yaml=\"`valuesSuggested`\" pulumi-lang-java=\"`valuesSuggested`\"\u003e`values_suggested`\u003c/span\u003e and only these values will appear in autosuggestion menus. \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e by default.\n"},"valueRequired":{"type":"boolean","description":"Determines whether a value is required for this variable (and therefore whether it will be possible to view this dashboard without this filter applied). \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e by default.\n"},"values":{"type":"array","items":{"type":"string"},"description":"List of of strings (which will be treated as an OR filter on the property).\n"},"valuesSuggesteds":{"type":"array","items":{"type":"string"},"description":"A list of strings of suggested values for this variable; these suggestions will receive priority when values are autosuggested for this variable.\n"}},"type":"object","required":["alias","property"]},"signalfx:index/DataLinkTargetAppdUrl:DataLinkTargetAppdUrl":{"properties":{"name":{"type":"string","description":"User-assigned target name. Use this value to differentiate between the link targets for a data link object.\n"},"url":{"type":"string","description":"URL string for an AppDynamics instance.\n"}},"type":"object","required":["name","url"]},"signalfx:index/DataLinkTargetExternalUrl:DataLinkTargetExternalUrl":{"properties":{"minimumTimeWindow":{"type":"string","description":"The [minimum time window](https://dev.splunk.com/observability/docs/administration/datalinks/) for a search sent to an external site. Defaults to \u003cspan pulumi-lang-nodejs=\"`6000`\" pulumi-lang-dotnet=\"`6000`\" pulumi-lang-go=\"`6000`\" pulumi-lang-python=\"`6000`\" pulumi-lang-yaml=\"`6000`\" pulumi-lang-java=\"`6000`\"\u003e`6000`\u003c/span\u003e\n"},"name":{"type":"string","description":"User-assigned target name. Use this value to differentiate between the link targets for a data link object.\n"},"propertyKeyMapping":{"type":"object","additionalProperties":{"type":"string"},"description":"Describes the relationship between Splunk Observability Cloud metadata keys and external system properties when the key names are different.\n"},"timeFormat":{"type":"string","description":"[Designates the format](https://dev.splunk.com/observability/docs/administration/datalinks/) of \u003cspan pulumi-lang-nodejs=\"`minimumTimeWindow`\" pulumi-lang-dotnet=\"`MinimumTimeWindow`\" pulumi-lang-go=\"`minimumTimeWindow`\" pulumi-lang-python=\"`minimum_time_window`\" pulumi-lang-yaml=\"`minimumTimeWindow`\" pulumi-lang-java=\"`minimumTimeWindow`\"\u003e`minimum_time_window`\u003c/span\u003e in the same data link target object. Must be one of `\"ISO8601\"`, `\"EpochSeconds\"` or `\"Epoch\"` (which is milliseconds). Defaults to `\"ISO8601\"`.\n"},"url":{"type":"string","description":"URL string for a Splunk instance or external system data link target. [See the supported template variables](https://dev.splunk.com/observability/docs/administration/datalinks/).\n"}},"type":"object","required":["name","url"]},"signalfx:index/DataLinkTargetSignalfxDashboard:DataLinkTargetSignalfxDashboard":{"properties":{"dashboardGroupId":{"type":"string","description":"SignalFx-assigned ID of the dashboard link target's dashboard group\n"},"dashboardId":{"type":"string","description":"SignalFx-assigned ID of the dashboard link target\n"},"isDefault":{"type":"boolean","description":"Flag that designates a target as the default for a data link object. \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e by default\n"},"name":{"type":"string","description":"User-assigned target name. Use this value to differentiate between the link targets for a data link object.\n"}},"type":"object","required":["dashboardGroupId","dashboardId","name"]},"signalfx:index/DataLinkTargetSplunk:DataLinkTargetSplunk":{"properties":{"name":{"type":"string","description":"User-assigned target name. Use this value to differentiate between the link targets for a data link object.\n"},"propertyKeyMapping":{"type":"object","additionalProperties":{"type":"string"},"description":"Describes the relationship between Splunk Observability Cloud metadata keys and external system properties when the key names are different.\n"}},"type":"object","required":["name"]},"signalfx:index/DetectorRule:DetectorRule":{"properties":{"description":{"type":"string","description":"Description for the rule. Displays as the alert condition in the Alert Rules tab of the detector editor in the web UI.\n"},"detectLabel":{"type":"string","description":"A detect label which matches a detect label within \u003cspan pulumi-lang-nodejs=\"`programText`\" pulumi-lang-dotnet=\"`ProgramText`\" pulumi-lang-go=\"`programText`\" pulumi-lang-python=\"`program_text`\" pulumi-lang-yaml=\"`programText`\" pulumi-lang-java=\"`programText`\"\u003e`program_text`\u003c/span\u003e.\n"},"disabled":{"type":"boolean","description":"When true, notifications and events will not be generated for the detect label. \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e by default.\n"},"notifications":{"type":"array","items":{"type":"string"},"description":"List of strings specifying where notifications will be sent when an incident occurs. See [Create A Single Detector](https://dev.splunk.com/observability/reference/api/detectors/latest) for more info.\n"},"parameterizedBody":{"type":"string","description":"Custom notification message body when an alert is triggered. See [Set Up Detectors to Trigger Alerts](https://docs.splunk.com/observability/en/alerts-detectors-notifications/create-detectors-for-alerts.html) for more info.\n"},"parameterizedSubject":{"type":"string","description":"Custom notification message subject when an alert is triggered. See [Set Up Detectors to Trigger Alerts](https://docs.splunk.com/observability/en/alerts-detectors-notifications/create-detectors-for-alerts.html) for more info.\n"},"reminderNotification":{"$ref":"#/types/signalfx:index/DetectorRuleReminderNotification:DetectorRuleReminderNotification","description":"Reminder notification in a detector rule lets you send multiple notifications for active alerts over a defined period of time. **Note:** This feature is not present in all accounts. Please contact support if you are unsure.\n"},"runbookUrl":{"type":"string","description":"URL of page to consult when an alert is triggered. This can be used with custom notification messages.\n"},"severity":{"type":"string","description":"The severity of the rule, must be one of: `\"Critical\"`, `\"Major\"`, `\"Minor\"`, `\"Warning\"`, `\"Info\"`.\n"},"tip":{"type":"string","description":"Plain text suggested first course of action, such as a command line to execute. This can be used with custom notification messages.\n"}},"type":"object","required":["detectLabel","severity"]},"signalfx:index/DetectorRuleReminderNotification:DetectorRuleReminderNotification":{"properties":{"intervalMs":{"type":"integer","description":"The interval at which you want to receive the notifications, in milliseconds.\n"},"timeoutMs":{"type":"integer","description":"The duration during which repeat notifications are sent, in milliseconds.\n"},"type":{"type":"string","description":"Type of reminder notification. Currently, the only supported value is TIMEOUT.\n"}},"type":"object","required":["intervalMs","type"]},"signalfx:index/DetectorVizOption:DetectorVizOption":{"properties":{"color":{"type":"string","description":"Color to use : gray, blue, azure, navy, brown, orange, yellow, iris, magenta, pink, purple, violet, lilac, emerald, green, aquamarine.\n"},"displayName":{"type":"string","description":"Specifies an alternate value for the Plot Name column of the Data Table associated with the chart.\n"},"label":{"type":"string","description":"Label used in the publish statement that displays the plot (metric time series data) you want to customize.\n"},"valuePrefix":{"type":"string","description":", \u003cspan pulumi-lang-nodejs=\"`valueSuffix`\" pulumi-lang-dotnet=\"`ValueSuffix`\" pulumi-lang-go=\"`valueSuffix`\" pulumi-lang-python=\"`value_suffix`\" pulumi-lang-yaml=\"`valueSuffix`\" pulumi-lang-java=\"`valueSuffix`\"\u003e`value_suffix`\u003c/span\u003e - (Optional) Arbitrary prefix/suffix to display with the value of this plot.\n\n**Notes**\n\nUse both \u003cspan pulumi-lang-nodejs=\"`maxDelay`\" pulumi-lang-dotnet=\"`MaxDelay`\" pulumi-lang-go=\"`maxDelay`\" pulumi-lang-python=\"`max_delay`\" pulumi-lang-yaml=\"`maxDelay`\" pulumi-lang-java=\"`maxDelay`\"\u003e`max_delay`\u003c/span\u003e in your detector configuration and an \u003cspan pulumi-lang-nodejs=\"`extrapolation`\" pulumi-lang-dotnet=\"`Extrapolation`\" pulumi-lang-go=\"`extrapolation`\" pulumi-lang-python=\"`extrapolation`\" pulumi-lang-yaml=\"`extrapolation`\" pulumi-lang-java=\"`extrapolation`\"\u003e`extrapolation`\u003c/span\u003e policy in your program text to reduce false positives and false negatives.\n"},"valueSuffix":{"type":"string","description":"An arbitrary suffix to display with the value of this plot\n"},"valueUnit":{"type":"string","description":"A unit to attach to this plot. Units support automatic scaling (eg thousands of bytes will be displayed as kilobytes). Values values are `Bit, Kilobit, Megabit, Gigabit, Terabit, Petabit, Exabit, Zettabit, Yottabit, Byte, Kibibyte, Mebibyte, Gibibyte (note: this was previously typoed as Gigibyte), Tebibyte, Pebibyte, Exbibyte, Zebibyte, Yobibyte, Nanosecond, Microsecond, Millisecond, Second, Minute, Hour, Day, Week`.\n"}},"type":"object","required":["label"]},"signalfx:index/HeatmapChartColorRange:HeatmapChartColorRange":{"properties":{"color":{"type":"string","description":"The color range to use. The starting hex color value for data values in a heatmap chart. Specify the value as a 6-character hexadecimal value preceded by the '#' character, for example \"#ea1849\" (grass green).\n"},"maxValue":{"type":"number","description":"The maximum value within the coloring range.\n"},"minValue":{"type":"number","description":"The minimum value within the coloring range.\n"}},"type":"object","required":["color"]},"signalfx:index/HeatmapChartColorScale:HeatmapChartColorScale":{"properties":{"color":{"type":"string","description":"The color range to use. Hex values are not supported here. Must be one of red, gold, iris, green, jade, gray, blue, azure, navy, brown, orange, yellow, magenta, cerise, pink, violet, purple, lilac, emerald, chartreuse, yellowgreen, aquamarine.\n"},"gt":{"type":"number","description":"Indicates the lower threshold non-inclusive value for this range.\n"},"gte":{"type":"number","description":"Indicates the lower threshold inclusive value for this range.\n"},"lt":{"type":"number","description":"Indicates the upper threshold non-inclusive value for this range.\n"},"lte":{"type":"number","description":"Indicates the upper threshold inclusive value for this range.\n"}},"type":"object","required":["color"]},"signalfx:index/ListChartColorScale:ListChartColorScale":{"properties":{"color":{"type":"string","description":"The color to use. Must be one of red, gold, iris, green, jade, gray, blue, azure, navy, brown, orange, yellow, magenta, cerise, pink, violet, purple, lilac, emerald, chartreuse, yellowgreen, aquamarine.\n"},"gt":{"type":"number","description":"Indicates the lower threshold non-inclusive value for this range.\n"},"gte":{"type":"number","description":"Indicates the lower threshold inclusive value for this range.\n"},"lt":{"type":"number","description":"Indicates the upper threshold non-inculsive value for this range.\n"},"lte":{"type":"number","description":"Indicates the upper threshold inclusive value for this range.\n"}},"type":"object","required":["color"]},"signalfx:index/ListChartLegendOptionsField:ListChartLegendOptionsField":{"properties":{"enabled":{"type":"boolean","description":"True or False depending on if you want the property to be shown or hidden.\n"},"property":{"type":"string","description":"The name of the property to display. Note the special values of \u003cspan pulumi-lang-nodejs=\"`sfMetric`\" pulumi-lang-dotnet=\"`SfMetric`\" pulumi-lang-go=\"`sfMetric`\" pulumi-lang-python=\"`sf_metric`\" pulumi-lang-yaml=\"`sfMetric`\" pulumi-lang-java=\"`sfMetric`\"\u003e`sf_metric`\u003c/span\u003e (corresponding with the API's `Plot Name`) which shows the label of the time series `publish()` and `sf_originatingMetric` (corresponding with the API's `metric (sf metric)`) that shows the [name of the metric](https://dev.splunk.com/observability/docs/signalflow/functions/data_function/) for the time series being displayed.\n"}},"type":"object","required":["property"]},"signalfx:index/ListChartVizOption:ListChartVizOption":{"properties":{"color":{"type":"string","description":"The color to use. Must be one of red, gold, iris, green, jade, gray, blue, azure, navy, brown, orange, yellow, magenta, cerise, pink, violet, purple, lilac, emerald, chartreuse, yellowgreen, aquamarine.\n"},"displayName":{"type":"string","description":"Specifies an alternate value for the Plot Name column of the Data Table associated with the chart.\n"},"label":{"type":"string","description":"Label used in the publish statement that displays the plot (metric time series data) you want to customize.\n"},"valuePrefix":{"type":"string","description":", \u003cspan pulumi-lang-nodejs=\"`valueSuffix`\" pulumi-lang-dotnet=\"`ValueSuffix`\" pulumi-lang-go=\"`valueSuffix`\" pulumi-lang-python=\"`value_suffix`\" pulumi-lang-yaml=\"`valueSuffix`\" pulumi-lang-java=\"`valueSuffix`\"\u003e`value_suffix`\u003c/span\u003e - (Optional) Arbitrary prefix/suffix to display with the value of this plot.\n"},"valueSuffix":{"type":"string","description":"An arbitrary suffix to display with the value of this plot\n"},"valueUnit":{"type":"string","description":"A unit to attach to this plot. Units support automatic scaling (eg thousands of bytes will be displayed as kilobytes). Values values are `Bit, Kilobit, Megabit, Gigabit, Terabit, Petabit, Exabit, Zettabit, Yottabit, Byte, Kibibyte, Mebibyte, Gibibyte (note: this was previously typoed as Gigibyte), Tebibyte, Pebibyte, Exbibyte, Zebibyte, Yobibyte, Nanosecond, Microsecond, Millisecond, Second, Minute, Hour, Day, Week`.\n"}},"type":"object","required":["label"]},"signalfx:index/MetricRulesetAggregationRule:MetricRulesetAggregationRule":{"properties":{"aggregators":{"type":"array","items":{"$ref":"#/types/signalfx:index/MetricRulesetAggregationRuleAggregator:MetricRulesetAggregationRuleAggregator"},"description":"Aggregator object\n"},"description":{"type":"string","description":"Information about an aggregation rule\n"},"enabled":{"type":"boolean","description":"When false, this rule will not generate aggregated MTSs\n"},"matchers":{"type":"array","items":{"$ref":"#/types/signalfx:index/MetricRulesetAggregationRuleMatcher:MetricRulesetAggregationRuleMatcher"},"description":"Matcher object\n"},"name":{"type":"string","description":"name of the aggregation rule\n"}},"type":"object","required":["aggregators","enabled","matchers"]},"signalfx:index/MetricRulesetAggregationRuleAggregator:MetricRulesetAggregationRuleAggregator":{"properties":{"dimensions":{"type":"array","items":{"type":"string"},"description":"List of dimensions to either be kept or dropped in the new aggregated MTSs\n"},"dropDimensions":{"type":"boolean","description":"when true, the specified dimensions will be dropped from the aggregated MTSs\n"},"outputName":{"type":"string","description":"name of the new aggregated metric\n"},"type":{"type":"string","description":"Type of aggregator. Must always be \"rollup\"\n"}},"type":"object","required":["dimensions","dropDimensions","outputName","type"]},"signalfx:index/MetricRulesetAggregationRuleMatcher:MetricRulesetAggregationRuleMatcher":{"properties":{"filters":{"type":"array","items":{"$ref":"#/types/signalfx:index/MetricRulesetAggregationRuleMatcherFilter:MetricRulesetAggregationRuleMatcherFilter"},"description":"List of filters to filter the set of input MTSs\n"},"type":{"type":"string","description":"Type of matcher. Must always be \"dimension\"\n"}},"type":"object","required":["type"]},"signalfx:index/MetricRulesetAggregationRuleMatcherFilter:MetricRulesetAggregationRuleMatcherFilter":{"properties":{"not":{"type":"boolean","description":"When true, this filter will match all values not matching the property_values\n"},"property":{"type":"string","description":"Name of the dimension\n"},"propertyValues":{"type":"array","items":{"type":"string"},"description":"Value of the dimension\n"}},"type":"object","required":["not","property","propertyValues"]},"signalfx:index/MetricRulesetExceptionRule:MetricRulesetExceptionRule":{"properties":{"description":{"type":"string","description":"Information about an exception rule\n"},"enabled":{"type":"boolean","description":"When false, this rule will not route matched data to real-time\n"},"matchers":{"type":"array","items":{"$ref":"#/types/signalfx:index/MetricRulesetExceptionRuleMatcher:MetricRulesetExceptionRuleMatcher"},"description":"Matcher object\n"},"name":{"type":"string","description":"name of the exception rule\n"},"restorations":{"type":"array","items":{"$ref":"#/types/signalfx:index/MetricRulesetExceptionRuleRestoration:MetricRulesetExceptionRuleRestoration"},"description":"Properties of a restoration job\n"}},"type":"object","required":["enabled","matchers"]},"signalfx:index/MetricRulesetExceptionRuleMatcher:MetricRulesetExceptionRuleMatcher":{"properties":{"filters":{"type":"array","items":{"$ref":"#/types/signalfx:index/MetricRulesetExceptionRuleMatcherFilter:MetricRulesetExceptionRuleMatcherFilter"},"description":"List of filters to filter the set of input MTSs\n"},"type":{"type":"string","description":"Type of matcher. Must always be \"dimension\"\n"}},"type":"object","required":["type"]},"signalfx:index/MetricRulesetExceptionRuleMatcherFilter:MetricRulesetExceptionRuleMatcherFilter":{"properties":{"not":{"type":"boolean","description":"When true, this filter will match all values not matching the property_values\n"},"property":{"type":"string","description":"Name of the dimension\n"},"propertyValues":{"type":"array","items":{"type":"string"},"description":"Value of the dimension\n"}},"type":"object","required":["not","property","propertyValues"]},"signalfx:index/MetricRulesetExceptionRuleRestoration:MetricRulesetExceptionRuleRestoration":{"properties":{"restorationId":{"type":"string","description":"ID of the restoration job.\n"},"startTime":{"type":"string","description":"Time from which the restoration job will restore archived data, in the form of *nix time in milliseconds\n"},"stopTime":{"type":"string","description":"Time to which the restoration job will restore archived data, in the form of *nix time in milliseconds\n"}},"type":"object","required":["startTime"],"language":{"nodejs":{"requiredOutputs":["restorationId","startTime"]}}},"signalfx:index/MetricRulesetRoutingRule:MetricRulesetRoutingRule":{"properties":{"destination":{"type":"string","description":"end destination of the input metric. Must be `RealTime`, `Archived`, or `Drop`\n"}},"type":"object","required":["destination"]},"signalfx:index/OrgTokenDpmLimits:OrgTokenDpmLimits":{"properties":{"dpmLimit":{"type":"integer","description":"The datapoints per minute (dpm) limit for this token. If you exceed this limit, Splunk Observability Cloud sends out an alert.\n"},"dpmNotificationThreshold":{"type":"integer","description":"DPM level at which Splunk Observability Cloud sends the notification for this token. If you don't specify a notification, Splunk Observability Cloud sends the generic notification.\n"}},"type":"object","required":["dpmLimit"]},"signalfx:index/OrgTokenHostOrUsageLimits:OrgTokenHostOrUsageLimits":{"properties":{"containerLimit":{"type":"integer","description":"Max number of Docker containers that can use this token\n"},"containerNotificationThreshold":{"type":"integer","description":"Notification threshold for Docker containers\n"},"customMetricsLimit":{"type":"integer","description":"Max number of custom metrics that can be sent with this token\n"},"customMetricsNotificationThreshold":{"type":"integer","description":"Notification threshold for custom metrics\n"},"highResMetricsLimit":{"type":"integer","description":"Max number of hi-res metrics that can be sent with this toke\n"},"highResMetricsNotificationThreshold":{"type":"integer","description":"Notification threshold for hi-res metrics\n"},"hostLimit":{"type":"integer","description":"Max number of hosts that can use this token\n"},"hostNotificationThreshold":{"type":"integer","description":"Notification threshold for hosts\n"}},"type":"object"},"signalfx:index/SingleValueChartColorScale:SingleValueChartColorScale":{"properties":{"color":{"type":"string","description":"The color to use. Must be one of red, gold, iris, green, jade, gray, blue, azure, navy, brown, orange, yellow, magenta, cerise, pink, violet, purple, lilac, emerald, chartreuse, yellowgreen, aquamarine.\n"},"gt":{"type":"number","description":"Indicates the lower threshold non-inclusive value for this range.\n"},"gte":{"type":"number","description":"Indicates the lower threshold inclusive value for this range.\n"},"lt":{"type":"number","description":"Indicates the upper threshold non-inculsive value for this range.\n"},"lte":{"type":"number","description":"Indicates the upper threshold inclusive value for this range.\n"}},"type":"object","required":["color"]},"signalfx:index/SingleValueChartVizOption:SingleValueChartVizOption":{"properties":{"color":{"type":"string","description":"The color to use. Must be one of gray, blue, light_blue, navy, dark_orange, orange, dark_yellow, magenta, cerise, pink, violet, purple, gray_blue, dark_green, green, aquamarine, red, yellow, vivid_yellow, light_green, or lime_green.\n"},"displayName":{"type":"string","description":"Specifies an alternate value for the Plot Name column of the Data Table associated with the chart.\n"},"label":{"type":"string","description":"Label used in the publish statement that displays the plot (metric time series data) you want to customize.\n"},"valuePrefix":{"type":"string","description":", \u003cspan pulumi-lang-nodejs=\"`valueSuffix`\" pulumi-lang-dotnet=\"`ValueSuffix`\" pulumi-lang-go=\"`valueSuffix`\" pulumi-lang-python=\"`value_suffix`\" pulumi-lang-yaml=\"`valueSuffix`\" pulumi-lang-java=\"`valueSuffix`\"\u003e`value_suffix`\u003c/span\u003e - (Optional) Arbitrary prefix/suffix to display with the value of this plot.\n"},"valueSuffix":{"type":"string","description":"An arbitrary suffix to display with the value of this plot\n"},"valueUnit":{"type":"string","description":"A unit to attach to this plot. Units support automatic scaling (eg thousands of bytes will be displayed as kilobytes). Values values are `Bit, Kilobit, Megabit, Gigabit, Terabit, Petabit, Exabit, Zettabit, Yottabit, Byte, Kibibyte, Mebibyte, Gibibyte (note: this was previously typoed as Gigibyte), Tebibyte, Pebibyte, Exbibyte, Zebibyte, Yobibyte, Nanosecond, Microsecond, Millisecond, Second, Minute, Hour, Day, Week`.\n"}},"type":"object","required":["label"]},"signalfx:index/SloInput:SloInput":{"properties":{"goodEventsLabel":{"type":"string","description":"Label used in `\u003cspan pulumi-lang-nodejs=\"\"programText\"\" pulumi-lang-dotnet=\"\"ProgramText\"\" pulumi-lang-go=\"\"programText\"\" pulumi-lang-python=\"\"program_text\"\" pulumi-lang-yaml=\"\"programText\"\" pulumi-lang-java=\"\"programText\"\"\u003e\"program_text\"\u003c/span\u003e` that refers to the data block which contains the stream of successful events\n"},"programText":{"type":"string","description":"SignalFlow program and arguments text strings that define the streams used as successful event count and total event count\n"},"totalEventsLabel":{"type":"string","description":"Label used in `\u003cspan pulumi-lang-nodejs=\"\"programText\"\" pulumi-lang-dotnet=\"\"ProgramText\"\" pulumi-lang-go=\"\"programText\"\" pulumi-lang-python=\"\"program_text\"\" pulumi-lang-yaml=\"\"programText\"\" pulumi-lang-java=\"\"programText\"\"\u003e\"program_text\"\u003c/span\u003e` that refers to the data block which contains the stream of total events\n"}},"type":"object","required":["programText"]},"signalfx:index/SloTarget:SloTarget":{"properties":{"alertRules":{"type":"array","items":{"$ref":"#/types/signalfx:index/SloTargetAlertRule:SloTargetAlertRule"},"description":"List of alert rules you want to set for this SLO target. An SLO alert rule of type BREACH is always required.\n"},"compliancePeriod":{"type":"string","description":"Compliance period of this SLO. This value must be within the range of 1d (1 days) to 30d (30 days), inclusive.\n"},"cycleStart":{"type":"string","description":"It can be used to change the cycle start time. For example, you can specify sunday as the start of the week (instead of the default monday)\n"},"cycleType":{"type":"string","description":"The cycle type of the calendar window, e.g. week, month.\n"},"slo":{"type":"number","description":"Target value in the form of a percentage\n"},"type":{"type":"string","description":"SLO target type can be the following type: `\"RollingWindow\"`, `\"CalendarWindow\"`\n"}},"type":"object","required":["alertRules","slo","type"],"language":{"nodejs":{"requiredOutputs":["alertRules","cycleStart","slo","type"]}}},"signalfx:index/SloTargetAlertRule:SloTargetAlertRule":{"properties":{"rules":{"type":"array","items":{"$ref":"#/types/signalfx:index/SloTargetAlertRuleRule:SloTargetAlertRuleRule"},"description":"Set of rules used for alerting.\n"},"type":{"type":"string","description":"SLO alert rule can be one of the following types: BREACH, ERROR_BUDGET_LEFT, BURN_RATE. Within an SLO object, you can only specify one SLO\u003cspan pulumi-lang-nodejs=\" alertRule \" pulumi-lang-dotnet=\" AlertRule \" pulumi-lang-go=\" alertRule \" pulumi-lang-python=\" alert_rule \" pulumi-lang-yaml=\" alertRule \" pulumi-lang-java=\" alertRule \"\u003e alert_rule \u003c/span\u003eper type. For example, you can't specify two\u003cspan pulumi-lang-nodejs=\" alertRule \" pulumi-lang-dotnet=\" AlertRule \" pulumi-lang-go=\" alertRule \" pulumi-lang-python=\" alert_rule \" pulumi-lang-yaml=\" alertRule \" pulumi-lang-java=\" alertRule \"\u003e alert_rule \u003c/span\u003eof type BREACH. See [SLO alerts](https://docs.splunk.com/observability/en/alerts-detectors-notifications/slo/burn-rate-alerts.html) for more info.\n"}},"type":"object","required":["rules","type"]},"signalfx:index/SloTargetAlertRuleRule:SloTargetAlertRuleRule":{"properties":{"description":{"type":"string","description":"Description for the rule. Displays as the alert condition in the Alert Rules tab of the detector editor in the web UI.\n"},"disabled":{"type":"boolean","description":"When true, notifications and events will not be generated for the detect label. \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e by default.\n"},"notifications":{"type":"array","items":{"type":"string"},"description":"List of strings specifying where notifications will be sent when an incident occurs. See [Create SLO](https://dev.splunk.com/observability/reference/api/slo/latest#endpoint-create-new-slo) for more info.\n"},"parameterizedBody":{"type":"string","description":"Custom notification message body when an alert is triggered. See [Alert message](https://docs.splunk.com/observability/en/alerts-detectors-notifications/create-detectors-for-alerts.html#alert-messages) for more info.\n"},"parameterizedSubject":{"type":"string","description":"Custom notification message subject when an alert is triggered. See [Alert message](https://docs.splunk.com/observability/en/alerts-detectors-notifications/create-detectors-for-alerts.html#alert-messages) for more info.\n"},"parameters":{"$ref":"#/types/signalfx:index/SloTargetAlertRuleRuleParameters:SloTargetAlertRuleRuleParameters","description":"Parameters for the SLO alert rule. Each SLO alert rule type accepts different parameters. If not specified, default parameters are used.\n"},"reminderNotification":{"$ref":"#/types/signalfx:index/SloTargetAlertRuleRuleReminderNotification:SloTargetAlertRuleRuleReminderNotification","description":"Reminder notification in a detector rule lets you send multiple notifications for active alerts over a defined period of time.\n"},"runbookUrl":{"type":"string","description":"URL of page to consult when an alert is triggered. This can be used with custom notification messages.\n"},"severity":{"type":"string","description":"The severity of the rule, must be one of: `\"Critical\"`, `\"Major\"`, `\"Minor\"`, `\"Warning\"`, `\"Info\"`.\n"},"tip":{"type":"string","description":"Plain text suggested first course of action, such as a command line to execute. This can be used with custom notification messages.\n"}},"type":"object","required":["severity"]},"signalfx:index/SloTargetAlertRuleRuleParameters:SloTargetAlertRuleRuleParameters":{"properties":{"burnRateThreshold1":{"type":"number","description":"Burn rate threshold 1 used in burn rate alert calculation. This value must be between 0 and 100/(100-SLO target). Note: `\"BURN_RATE\"` alert rules use the `\u003cspan pulumi-lang-nodejs=\"\"burnRateThreshold1\"\" pulumi-lang-dotnet=\"\"BurnRateThreshold1\"\" pulumi-lang-go=\"\"burnRateThreshold1\"\" pulumi-lang-python=\"\"burn_rate_threshold_1\"\" pulumi-lang-yaml=\"\"burnRateThreshold1\"\" pulumi-lang-java=\"\"burnRateThreshold1\"\"\u003e\"burn_rate_threshold_1\"\u003c/span\u003e` parameter. See [SLO alerts](https://docs.splunk.com/observability/en/alerts-detectors-notifications/slo/burn-rate-alerts.html) for more info.\n"},"burnRateThreshold2":{"type":"number","description":"Burn rate threshold 2 used in burn rate alert calculation. This value must be between 0 and 100/(100-SLO target). Note: `\"BURN_RATE\"` alert rules use the `\u003cspan pulumi-lang-nodejs=\"\"burnRateThreshold2\"\" pulumi-lang-dotnet=\"\"BurnRateThreshold2\"\" pulumi-lang-go=\"\"burnRateThreshold2\"\" pulumi-lang-python=\"\"burn_rate_threshold_2\"\" pulumi-lang-yaml=\"\"burnRateThreshold2\"\" pulumi-lang-java=\"\"burnRateThreshold2\"\"\u003e\"burn_rate_threshold_2\"\u003c/span\u003e` parameter. See [SLO alerts](https://docs.splunk.com/observability/en/alerts-detectors-notifications/slo/burn-rate-alerts.html) for more info.\n"},"fireLasting":{"type":"string","description":"Duration that indicates how long the alert condition is met before the alert is triggered. The value must be positive and smaller than the compliance period of the SLO target. Note: `\"BREACH\"` and `\"ERROR_BUDGET_LEFT\"` alert rules use the fireLasting parameter. Default: `\"5m\"`\n"},"longWindow1":{"type":"string","description":"Long window 1 used in burn rate alert calculation. This value must be longer than `\u003cspan pulumi-lang-nodejs=\"\"shortWindow1\"\" pulumi-lang-dotnet=\"\"ShortWindow1\"\" pulumi-lang-go=\"\"shortWindow1\"\" pulumi-lang-python=\"\"short_window_1\"\" pulumi-lang-yaml=\"\"shortWindow1\"\" pulumi-lang-java=\"\"shortWindow1\"\"\u003e\"short_window_1\"\u003c/span\u003e` and shorter than 90 days. Note: `\"BURN_RATE\"` alert rules use the `\u003cspan pulumi-lang-nodejs=\"\"longWindow1\"\" pulumi-lang-dotnet=\"\"LongWindow1\"\" pulumi-lang-go=\"\"longWindow1\"\" pulumi-lang-python=\"\"long_window_1\"\" pulumi-lang-yaml=\"\"longWindow1\"\" pulumi-lang-java=\"\"longWindow1\"\"\u003e\"long_window_1\"\u003c/span\u003e` parameter. See [SLO alerts](https://docs.splunk.com/observability/en/alerts-detectors-notifications/slo/burn-rate-alerts.html) for more info.\n"},"longWindow2":{"type":"string","description":"Long window 2 used in burn rate alert calculation. This value must be longer than `\u003cspan pulumi-lang-nodejs=\"\"shortWindow2\"\" pulumi-lang-dotnet=\"\"ShortWindow2\"\" pulumi-lang-go=\"\"shortWindow2\"\" pulumi-lang-python=\"\"short_window_2\"\" pulumi-lang-yaml=\"\"shortWindow2\"\" pulumi-lang-java=\"\"shortWindow2\"\"\u003e\"short_window_2\"\u003c/span\u003e` and shorter than 90 days. Note: `\"BURN_RATE\"` alert rules use the `\u003cspan pulumi-lang-nodejs=\"\"longWindow2\"\" pulumi-lang-dotnet=\"\"LongWindow2\"\" pulumi-lang-go=\"\"longWindow2\"\" pulumi-lang-python=\"\"long_window_2\"\" pulumi-lang-yaml=\"\"longWindow2\"\" pulumi-lang-java=\"\"longWindow2\"\"\u003e\"long_window_2\"\u003c/span\u003e` parameter. See [SLO alerts](https://docs.splunk.com/observability/en/alerts-detectors-notifications/slo/burn-rate-alerts.html) for more info.\n"},"percentErrorBudgetLeft":{"type":"number","description":"Error budget must be equal to or smaller than this percentage for the alert to be triggered. Note: `\"ERROR_BUDGET_LEFT\"` alert rules use the `\u003cspan pulumi-lang-nodejs=\"\"percentErrorBudgetLeft\"\" pulumi-lang-dotnet=\"\"PercentErrorBudgetLeft\"\" pulumi-lang-go=\"\"percentErrorBudgetLeft\"\" pulumi-lang-python=\"\"percent_error_budget_left\"\" pulumi-lang-yaml=\"\"percentErrorBudgetLeft\"\" pulumi-lang-java=\"\"percentErrorBudgetLeft\"\"\u003e\"percent_error_budget_left\"\u003c/span\u003e` parameter. Default: \u003cspan pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\"\u003e`100`\u003c/span\u003e\n"},"percentOfLasting":{"type":"number","description":"Percentage of the `\u003cspan pulumi-lang-nodejs=\"\"fireLasting\"\" pulumi-lang-dotnet=\"\"FireLasting\"\" pulumi-lang-go=\"\"fireLasting\"\" pulumi-lang-python=\"\"fire_lasting\"\" pulumi-lang-yaml=\"\"fireLasting\"\" pulumi-lang-java=\"\"fireLasting\"\"\u003e\"fire_lasting\"\u003c/span\u003e` duration that the alert condition is met before the alert is triggered. Note: `\"BREACH\"` and `\"ERROR_BUDGET_LEFT\"` alert rules use the `\u003cspan pulumi-lang-nodejs=\"\"percentOfLasting\"\" pulumi-lang-dotnet=\"\"PercentOfLasting\"\" pulumi-lang-go=\"\"percentOfLasting\"\" pulumi-lang-python=\"\"percent_of_lasting\"\" pulumi-lang-yaml=\"\"percentOfLasting\"\" pulumi-lang-java=\"\"percentOfLasting\"\"\u003e\"percent_of_lasting\"\u003c/span\u003e` parameter. Default: \u003cspan pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\"\u003e`100`\u003c/span\u003e\n"},"shortWindow1":{"type":"string","description":"Short window 1 used in burn rate alert calculation. This value must be longer than 1/30 of `\u003cspan pulumi-lang-nodejs=\"\"longWindow1\"\" pulumi-lang-dotnet=\"\"LongWindow1\"\" pulumi-lang-go=\"\"longWindow1\"\" pulumi-lang-python=\"\"long_window_1\"\" pulumi-lang-yaml=\"\"longWindow1\"\" pulumi-lang-java=\"\"longWindow1\"\"\u003e\"long_window_1\"\u003c/span\u003e`. Note: `\"BURN_RATE\"` alert rules use the `\u003cspan pulumi-lang-nodejs=\"\"shortWindow1\"\" pulumi-lang-dotnet=\"\"ShortWindow1\"\" pulumi-lang-go=\"\"shortWindow1\"\" pulumi-lang-python=\"\"short_window_1\"\" pulumi-lang-yaml=\"\"shortWindow1\"\" pulumi-lang-java=\"\"shortWindow1\"\"\u003e\"short_window_1\"\u003c/span\u003e` parameter. See [SLO alerts](https://docs.splunk.com/observability/en/alerts-detectors-notifications/slo/burn-rate-alerts.html) for more info.\n"},"shortWindow2":{"type":"string","description":"Short window 2 used in burn rate alert calculation. This value must be longer than 1/30 of `\u003cspan pulumi-lang-nodejs=\"\"longWindow2\"\" pulumi-lang-dotnet=\"\"LongWindow2\"\" pulumi-lang-go=\"\"longWindow2\"\" pulumi-lang-python=\"\"long_window_2\"\" pulumi-lang-yaml=\"\"longWindow2\"\" pulumi-lang-java=\"\"longWindow2\"\"\u003e\"long_window_2\"\u003c/span\u003e`. Note: `\"BURN_RATE\"` alert rules use the `\u003cspan pulumi-lang-nodejs=\"\"shortWindow2\"\" pulumi-lang-dotnet=\"\"ShortWindow2\"\" pulumi-lang-go=\"\"shortWindow2\"\" pulumi-lang-python=\"\"short_window_2\"\" pulumi-lang-yaml=\"\"shortWindow2\"\" pulumi-lang-java=\"\"shortWindow2\"\"\u003e\"short_window_2\"\u003c/span\u003e` parameter. See [SLO alerts](https://docs.splunk.com/observability/en/alerts-detectors-notifications/slo/burn-rate-alerts.html) for more info.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["burnRateThreshold1","burnRateThreshold2","fireLasting","longWindow1","longWindow2","percentErrorBudgetLeft","percentOfLasting","shortWindow1","shortWindow2"]}}},"signalfx:index/SloTargetAlertRuleRuleReminderNotification:SloTargetAlertRuleRuleReminderNotification":{"properties":{"intervalMs":{"type":"integer","description":"The interval at which you want to receive the notifications, in milliseconds.\n"},"timeoutMs":{"type":"integer","description":"The duration during which repeat notifications are sent, in milliseconds.\n"},"type":{"type":"string","description":"Type of the SLO. Currently just: `\"RequestBased\"` is supported.\n"}},"type":"object","required":["intervalMs","type"]},"signalfx:index/TableChartVizOption:TableChartVizOption":{"properties":{"color":{"type":"string","description":"The color to use. Must be one of gray, blue, azure, navy, brown, orange, yellow, magenta, red, pink, violet, purple, lilac, emerald, chartreuse, yellowgreen.\n"},"displayName":{"type":"string","description":"Specifies an alternate value for the Plot Name column of the Data Table associated with the chart.\n"},"label":{"type":"string","description":"The label used in the publish statement that displays the plot (metric time series data) you want to customize\n"},"valuePrefix":{"type":"string","description":"An arbitrary prefix to display with the value of this plot\n"},"valueSuffix":{"type":"string","description":"An arbitrary suffix to display with the value of this plot\n"},"valueUnit":{"type":"string","description":"A unit to attach to this plot. Units support automatic scaling (eg thousands of bytes will be displayed as kilobytes)\n"}},"type":"object","required":["label"]},"signalfx:index/TimeChartAxisLeft:TimeChartAxisLeft":{"properties":{"highWatermark":{"type":"number","description":"A line to draw as a high watermark.\n"},"highWatermarkLabel":{"type":"string","description":"A label to attach to the high watermark line.\n"},"label":{"type":"string","description":"Label of the left axis.\n"},"lowWatermark":{"type":"number","description":"A line to draw as a low watermark.\n"},"lowWatermarkLabel":{"type":"string","description":"A label to attach to the low watermark line.\n"},"maxValue":{"type":"number","description":"The maximum value for the left axis.\n"},"minValue":{"type":"number","description":"The minimum value for the left axis.\n"},"watermarks":{"type":"array","items":{"$ref":"#/types/signalfx:index/TimeChartAxisLeftWatermark:TimeChartAxisLeftWatermark"}}},"type":"object"},"signalfx:index/TimeChartAxisLeftWatermark:TimeChartAxisLeftWatermark":{"properties":{"label":{"type":"string","description":"Label to display associated with the watermark line\n"},"value":{"type":"number","description":"Axis value where the watermark line will be displayed\n"}},"type":"object","required":["value"]},"signalfx:index/TimeChartAxisRight:TimeChartAxisRight":{"properties":{"highWatermark":{"type":"number","description":"A line to draw as a high watermark.\n"},"highWatermarkLabel":{"type":"string","description":"A label to attach to the high watermark line.\n"},"label":{"type":"string","description":"Label of the right axis.\n"},"lowWatermark":{"type":"number","description":"A line to draw as a low watermark.\n"},"lowWatermarkLabel":{"type":"string","description":"A label to attach to the low watermark line.\n"},"maxValue":{"type":"number","description":"The maximum value for the right axis.\n"},"minValue":{"type":"number","description":"The minimum value for the right axis.\n"},"watermarks":{"type":"array","items":{"$ref":"#/types/signalfx:index/TimeChartAxisRightWatermark:TimeChartAxisRightWatermark"}}},"type":"object"},"signalfx:index/TimeChartAxisRightWatermark:TimeChartAxisRightWatermark":{"properties":{"label":{"type":"string","description":"Label to display associated with the watermark line\n"},"value":{"type":"number","description":"Axis value where the watermark line will be displayed\n"}},"type":"object","required":["value"]},"signalfx:index/TimeChartEventOption:TimeChartEventOption":{"properties":{"color":{"type":"string","description":"Color to use : gray, blue, azure, navy, brown, orange, yellow, iris, magenta, pink, purple, violet, lilac, emerald, green, aquamarine.\n"},"displayName":{"type":"string","description":"Specifies an alternate value for the Plot Name column of the Data Table associated with the chart.\n"},"label":{"type":"string","description":"Label used in the publish statement that displays the event query you want to customize.\n"}},"type":"object","required":["label"]},"signalfx:index/TimeChartHistogramOption:TimeChartHistogramOption":{"properties":{"colorTheme":{"type":"string","description":"Color to use. Must be one of red, gold, iris, green, jade, gray, blue, azure, navy, brown, orange, yellow, magenta, cerise, pink, violet, purple, lilac, emerald, chartreuse, yellowgreen, aquamarine.\n"}},"type":"object"},"signalfx:index/TimeChartLegendOptionsField:TimeChartLegendOptionsField":{"properties":{"enabled":{"type":"boolean","description":"True or False depending on if you want the property to be shown or hidden.\n"},"property":{"type":"string","description":"The name of the property to display. Note the special values of \u003cspan pulumi-lang-nodejs=\"`plotLabel`\" pulumi-lang-dotnet=\"`PlotLabel`\" pulumi-lang-go=\"`plotLabel`\" pulumi-lang-python=\"`plot_label`\" pulumi-lang-yaml=\"`plotLabel`\" pulumi-lang-java=\"`plotLabel`\"\u003e`plot_label`\u003c/span\u003e (corresponding with the API's \u003cspan pulumi-lang-nodejs=\"`sfMetric`\" pulumi-lang-dotnet=\"`SfMetric`\" pulumi-lang-go=\"`sfMetric`\" pulumi-lang-python=\"`sf_metric`\" pulumi-lang-yaml=\"`sfMetric`\" pulumi-lang-java=\"`sfMetric`\"\u003e`sf_metric`\u003c/span\u003e) which shows the label of the time series `publish()` and \u003cspan pulumi-lang-nodejs=\"`metric`\" pulumi-lang-dotnet=\"`Metric`\" pulumi-lang-go=\"`metric`\" pulumi-lang-python=\"`metric`\" pulumi-lang-yaml=\"`metric`\" pulumi-lang-java=\"`metric`\"\u003e`metric`\u003c/span\u003e (corresponding with the API's `sf_originatingMetric`) that shows the name of the metric for the time series being displayed.\n"}},"type":"object","required":["property"]},"signalfx:index/TimeChartVizOption:TimeChartVizOption":{"properties":{"axis":{"type":"string","description":"Y-axis associated with values for this plot. Must be either \u003cspan pulumi-lang-nodejs=\"`right`\" pulumi-lang-dotnet=\"`Right`\" pulumi-lang-go=\"`right`\" pulumi-lang-python=\"`right`\" pulumi-lang-yaml=\"`right`\" pulumi-lang-java=\"`right`\"\u003e`right`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`left`\" pulumi-lang-dotnet=\"`Left`\" pulumi-lang-go=\"`left`\" pulumi-lang-python=\"`left`\" pulumi-lang-yaml=\"`left`\" pulumi-lang-java=\"`left`\"\u003e`left`\u003c/span\u003e.\n"},"color":{"type":"string","description":"Color to use. Must be one of red, gold, iris, green, jade, gray, blue, azure, navy, brown, orange, yellow, magenta, cerise, pink, violet, purple, lilac, emerald, chartreuse, yellowgreen, aquamarine.\n"},"displayName":{"type":"string","description":"Specifies an alternate value for the Plot Name column of the Data Table associated with the chart.\n"},"label":{"type":"string","description":"Label used in the publish statement that displays the plot (metric time series data) you want to customize.\n"},"plotType":{"type":"string","description":"The visualization style to use. Must be `\"LineChart\"`, `\"AreaChart\"`, `\"ColumnChart\"`, or `\"Histogram\"`. Chart level \u003cspan pulumi-lang-nodejs=\"`plotType`\" pulumi-lang-dotnet=\"`PlotType`\" pulumi-lang-go=\"`plotType`\" pulumi-lang-python=\"`plot_type`\" pulumi-lang-yaml=\"`plotType`\" pulumi-lang-java=\"`plotType`\"\u003e`plot_type`\u003c/span\u003e by default.\n"},"valuePrefix":{"type":"string","description":", \u003cspan pulumi-lang-nodejs=\"`valueSuffix`\" pulumi-lang-dotnet=\"`ValueSuffix`\" pulumi-lang-go=\"`valueSuffix`\" pulumi-lang-python=\"`value_suffix`\" pulumi-lang-yaml=\"`valueSuffix`\" pulumi-lang-java=\"`valueSuffix`\"\u003e`value_suffix`\u003c/span\u003e - (Optional) Arbitrary prefix/suffix to display with the value of this plot.\n"},"valueSuffix":{"type":"string","description":"An arbitrary suffix to display with the value of this plot\n"},"valueUnit":{"type":"string","description":"A unit to attach to this plot. Units support automatic scaling (eg thousands of bytes will be displayed as kilobytes). Values values are `Bit, Kilobit, Megabit, Gigabit, Terabit, Petabit, Exabit, Zettabit, Yottabit, Byte, Kibibyte, Mebibyte, Gibibyte (note: this was previously typoed as Gigibyte), Tebibyte, Pebibyte, Exbibyte, Zebibyte, Yobibyte, Nanosecond, Microsecond, Millisecond, Second, Minute, Hour, Day, Week`.\n"}},"type":"object","required":["label"]},"signalfx:index/WebhookIntegrationHeader:WebhookIntegrationHeader":{"properties":{"headerKey":{"type":"string","description":"The key of the header to send\n"},"headerValue":{"type":"string","description":"The value of the header to send\n","secret":true}},"type":"object","required":["headerKey","headerValue"]},"signalfx:log/ViewColumn:ViewColumn":{"properties":{"name":{"type":"string","description":"Name of the log view.\n"}},"type":"object","required":["name"]},"signalfx:log/ViewSortOption:ViewSortOption":{"properties":{"descending":{"type":"boolean","description":"Name of the column\n"},"field":{"type":"string","description":"Name of the column\n"}},"type":"object","required":["descending","field"]}},"provider":{"description":"The provider type for the signalfx package. By default, resources use package-wide configuration\nsettings, however an explicit `Provider` instance may be created and passed during resource\nconstruction to achieve fine-grained programmatic control over provider settings. See the\n[documentation](https://www.pulumi.com/docs/reference/programming-model/#providers) for more information.\n","properties":{"apiUrl":{"type":"string","description":"API URL for your Splunk Observability Cloud org, may include a realm"},"authToken":{"type":"string","description":"Splunk Observability Cloud auth token"},"customAppUrl":{"type":"string","description":"Application URL for your Splunk Observability Cloud org, often customized for organizations using SSO","deprecationMessage":"Remove the definition, the provider will automatically populate the custom app URL as needed"},"email":{"type":"string","description":"Used to create a session token instead of an API token, it requires the account to be configured to login with Email and Password"},"featurePreview":{"type":"object","additionalProperties":{"type":"boolean"},"description":"Allows for users to opt-in to new features that are considered experimental or not ready for general availability yet."},"organizationId":{"type":"string","description":"Required if the user is configured to be part of multiple organizations"},"password":{"type":"string","description":"Used to create a session token instead of an API token, it requires the account to be configured to login with Email and Password","secret":true},"retryMaxAttempts":{"type":"integer","description":"Max retries for a single HTTP call. Defaults to 4"},"retryWaitMaxSeconds":{"type":"integer","description":"Maximum retry wait for a single HTTP call in seconds. Defaults to 30"},"retryWaitMinSeconds":{"type":"integer","description":"Minimum retry wait for a single HTTP call in seconds. Defaults to 1"},"tags":{"type":"array","items":{"type":"string"},"description":"Allows for Tags to be added by default to resources that allow for tags to be included. If there is already tags configured, the global tags are added in prefix."},"teams":{"type":"array","items":{"type":"string"},"description":"Allows for teams to be defined at a provider level, and apply to all applicable resources created."},"timeoutSeconds":{"type":"integer","description":"Timeout duration for a single HTTP call in seconds. Defaults to 120"}},"inputProperties":{"apiUrl":{"type":"string","description":"API URL for your Splunk Observability Cloud org, may include a realm"},"authToken":{"type":"string","description":"Splunk Observability Cloud auth token"},"customAppUrl":{"type":"string","description":"Application URL for your Splunk Observability Cloud org, often customized for organizations using SSO","deprecationMessage":"Remove the definition, the provider will automatically populate the custom app URL as needed"},"email":{"type":"string","description":"Used to create a session token instead of an API token, it requires the account to be configured to login with Email and Password"},"featurePreview":{"type":"object","additionalProperties":{"type":"boolean"},"description":"Allows for users to opt-in to new features that are considered experimental or not ready for general availability yet."},"organizationId":{"type":"string","description":"Required if the user is configured to be part of multiple organizations"},"password":{"type":"string","description":"Used to create a session token instead of an API token, it requires the account to be configured to login with Email and Password","secret":true},"retryMaxAttempts":{"type":"integer","description":"Max retries for a single HTTP call. Defaults to 4"},"retryWaitMaxSeconds":{"type":"integer","description":"Maximum retry wait for a single HTTP call in seconds. Defaults to 30"},"retryWaitMinSeconds":{"type":"integer","description":"Minimum retry wait for a single HTTP call in seconds. Defaults to 1"},"tags":{"type":"array","items":{"type":"string"},"description":"Allows for Tags to be added by default to resources that allow for tags to be included. If there is already tags configured, the global tags are added in prefix."},"teams":{"type":"array","items":{"type":"string"},"description":"Allows for teams to be defined at a provider level, and apply to all applicable resources created."},"timeoutSeconds":{"type":"integer","description":"Timeout duration for a single HTTP call in seconds. Defaults to 120"}},"methods":{"terraformConfig":"pulumi:providers:signalfx/terraformConfig"}},"resources":{"signalfx:automatedarchival/exemptMetric:ExemptMetric":{"properties":{"exemptMetrics":{"type":"array","items":{"$ref":"#/types/signalfx:automatedarchival/ExemptMetricExemptMetric:ExemptMetricExemptMetric"},"description":"List of metrics to be exempted from automated archival\n"}},"required":["exemptMetrics"],"inputProperties":{"exemptMetrics":{"type":"array","items":{"$ref":"#/types/signalfx:automatedarchival/ExemptMetricExemptMetric:ExemptMetricExemptMetric"},"description":"List of metrics to be exempted from automated archival\n","willReplaceOnChanges":true}},"requiredInputs":["exemptMetrics"],"stateInputs":{"description":"Input properties used for looking up and filtering ExemptMetric resources.\n","properties":{"exemptMetrics":{"type":"array","items":{"$ref":"#/types/signalfx:automatedarchival/ExemptMetricExemptMetric:ExemptMetricExemptMetric"},"description":"List of metrics to be exempted from automated archival\n","willReplaceOnChanges":true}},"type":"object"}},"signalfx:automatedarchival/settings:Settings":{"properties":{"created":{"type":"integer","description":"Timestamp of when the automated archival setting was created\n"},"creator":{"type":"string","description":"ID of the creator of the automated archival setting\n"},"enabled":{"type":"boolean","description":"Whether the automated archival is enabled for this organization or not\n"},"gracePeriod":{"type":"string","description":"Grace period is an org level setting that applies to the newly created metrics. This allows customers to protect newly added metrics that users haven’t had the time to use in charts and detectors from being automatically archived The value here uses ISO 8061 duration format. Examples - 'P0D', 'P15D', 'P30D', 'P45D', 'P60D'\n"},"lastUpdated":{"type":"integer","description":"Timestamp of when the automated archival setting was last updated\n"},"lastUpdatedBy":{"type":"string","description":"ID of user who last updated the automated archival setting\n"},"lookbackPeriod":{"type":"string","description":"This tracks if a metric was unused in the past N number of days (N one of 30, 45, or 60). We’ll archive a metric if it wasn’t used in the lookback period. The value here uses ISO 8061 duration format. Examples - 'P30D', 'P45D', 'P60D'\n"},"rulesetLimit":{"type":"integer","description":"Org limit for the number of rulesets that can be created\n"},"version":{"type":"string","description":"Version of the automated archival setting\n"}},"required":["created","creator","enabled","gracePeriod","lastUpdated","lastUpdatedBy","lookbackPeriod","version"],"inputProperties":{"enabled":{"type":"boolean","description":"Whether the automated archival is enabled for this organization or not\n"},"gracePeriod":{"type":"string","description":"Grace period is an org level setting that applies to the newly created metrics. This allows customers to protect newly added metrics that users haven’t had the time to use in charts and detectors from being automatically archived The value here uses ISO 8061 duration format. Examples - 'P0D', 'P15D', 'P30D', 'P45D', 'P60D'\n"},"lookbackPeriod":{"type":"string","description":"This tracks if a metric was unused in the past N number of days (N one of 30, 45, or 60). We’ll archive a metric if it wasn’t used in the lookback period. The value here uses ISO 8061 duration format. Examples - 'P30D', 'P45D', 'P60D'\n"},"rulesetLimit":{"type":"integer","description":"Org limit for the number of rulesets that can be created\n"}},"requiredInputs":["enabled","gracePeriod","lookbackPeriod"],"stateInputs":{"description":"Input properties used for looking up and filtering Settings resources.\n","properties":{"created":{"type":"integer","description":"Timestamp of when the automated archival setting was created\n"},"creator":{"type":"string","description":"ID of the creator of the automated archival setting\n"},"enabled":{"type":"boolean","description":"Whether the automated archival is enabled for this organization or not\n"},"gracePeriod":{"type":"string","description":"Grace period is an org level setting that applies to the newly created metrics. This allows customers to protect newly added metrics that users haven’t had the time to use in charts and detectors from being automatically archived The value here uses ISO 8061 duration format. Examples - 'P0D', 'P15D', 'P30D', 'P45D', 'P60D'\n"},"lastUpdated":{"type":"integer","description":"Timestamp of when the automated archival setting was last updated\n"},"lastUpdatedBy":{"type":"string","description":"ID of user who last updated the automated archival setting\n"},"lookbackPeriod":{"type":"string","description":"This tracks if a metric was unused in the past N number of days (N one of 30, 45, or 60). We’ll archive a metric if it wasn’t used in the lookback period. The value here uses ISO 8061 duration format. Examples - 'P30D', 'P45D', 'P60D'\n"},"rulesetLimit":{"type":"integer","description":"Org limit for the number of rulesets that can be created\n"},"version":{"type":"string","description":"Version of the automated archival setting\n"}},"type":"object"}},"signalfx:aws/externalIntegration:ExternalIntegration":{"description":"Splunk Observability AWS CloudWatch integrations using Role ARNs. For help with this integration see [Connect to AWS CloudWatch](https://docs.splunk.com/observability/en/gdi/get-data-in/connect/aws/aws-apiconfig.html).\n\n\u003e **NOTE** When managing integrations, use a session token of an administrator to authenticate the Splunk Observability provider. See [Operations that require a session token for an administrator](https://dev.splunk.com/observability/docs/administration/authtokens#Operations-that-require-a-session-token-for-an-administrator).\n\n\u003e **WARNING** This resource implements part of a workflow. Use it with \u003cspan pulumi-lang-nodejs=\"`signalfx.aws.Integration`\" pulumi-lang-dotnet=\"`signalfx.aws.Integration`\" pulumi-lang-go=\"`aws.Integration`\" pulumi-lang-python=\"`aws.Integration`\" pulumi-lang-yaml=\"`signalfx.aws.Integration`\" pulumi-lang-java=\"`signalfx.aws.Integration`\"\u003e`signalfx.aws.Integration`\u003c/span\u003e. Check with Splunk support for your realm's AWS account id.\n\n\u003e **NOTE** When AWS IAM role is also created by Terraform to enforce a proper cleanup sequence add role related resources as dependencies for the \u003cspan pulumi-lang-nodejs=\"`signalfx.aws.Integration`\" pulumi-lang-dotnet=\"`signalfx.aws.Integration`\" pulumi-lang-go=\"`aws.Integration`\" pulumi-lang-python=\"`aws.Integration`\" pulumi-lang-yaml=\"`signalfx.aws.Integration`\" pulumi-lang-java=\"`signalfx.aws.Integration`\"\u003e`signalfx.aws.Integration`\u003c/span\u003e resource. See the \u003cspan pulumi-lang-nodejs=\"`dependsOn`\" pulumi-lang-dotnet=\"`DependsOn`\" pulumi-lang-go=\"`dependsOn`\" pulumi-lang-python=\"`depends_on`\" pulumi-lang-yaml=\"`dependsOn`\" pulumi-lang-java=\"`dependsOn`\"\u003e`depends_on`\u003c/span\u003e section in the example script below.\n\n","properties":{"externalId":{"type":"string","description":"The external ID to use with your IAM role and with \u003cspan pulumi-lang-nodejs=\"`signalfx.aws.Integration`\" pulumi-lang-dotnet=\"`signalfx.aws.Integration`\" pulumi-lang-go=\"`aws.Integration`\" pulumi-lang-python=\"`aws.Integration`\" pulumi-lang-yaml=\"`signalfx.aws.Integration`\" pulumi-lang-java=\"`signalfx.aws.Integration`\"\u003e`signalfx.aws.Integration`\u003c/span\u003e.\n","secret":true},"name":{"type":"string","description":"The name of this integration\n"},"signalfxAwsAccount":{"type":"string","description":"The AWS Account ARN to use with your policies/roles, provided by Splunk Observability Cloud.\n","secret":true}},"required":["externalId","name","signalfxAwsAccount"],"inputProperties":{"name":{"type":"string","description":"The name of this integration\n","willReplaceOnChanges":true}},"stateInputs":{"description":"Input properties used for looking up and filtering ExternalIntegration resources.\n","properties":{"externalId":{"type":"string","description":"The external ID to use with your IAM role and with \u003cspan pulumi-lang-nodejs=\"`signalfx.aws.Integration`\" pulumi-lang-dotnet=\"`signalfx.aws.Integration`\" pulumi-lang-go=\"`aws.Integration`\" pulumi-lang-python=\"`aws.Integration`\" pulumi-lang-yaml=\"`signalfx.aws.Integration`\" pulumi-lang-java=\"`signalfx.aws.Integration`\"\u003e`signalfx.aws.Integration`\u003c/span\u003e.\n","secret":true},"name":{"type":"string","description":"The name of this integration\n","willReplaceOnChanges":true},"signalfxAwsAccount":{"type":"string","description":"The AWS Account ARN to use with your policies/roles, provided by Splunk Observability Cloud.\n","secret":true}},"type":"object"}},"signalfx:aws/integration:Integration":{"description":"AWS CloudWatch integrations for Splunk Observability Cloud. For help with this integration see [Monitoring Amazon Web Services](https://docs.splunk.com/observability/en/gdi/get-data-in/connect/aws/get-awstoc.html).\n\nThis resource implements a part of a workflow. Use it with one of either \u003cspan pulumi-lang-nodejs=\"`signalfx.aws.ExternalIntegration`\" pulumi-lang-dotnet=\"`signalfx.aws.ExternalIntegration`\" pulumi-lang-go=\"`aws.ExternalIntegration`\" pulumi-lang-python=\"`aws.ExternalIntegration`\" pulumi-lang-yaml=\"`signalfx.aws.ExternalIntegration`\" pulumi-lang-java=\"`signalfx.aws.ExternalIntegration`\"\u003e`signalfx.aws.ExternalIntegration`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`signalfx.aws.TokenIntegration`\" pulumi-lang-dotnet=\"`signalfx.aws.TokenIntegration`\" pulumi-lang-go=\"`aws.TokenIntegration`\" pulumi-lang-python=\"`aws.TokenIntegration`\" pulumi-lang-yaml=\"`signalfx.aws.TokenIntegration`\" pulumi-lang-java=\"`signalfx.aws.TokenIntegration`\"\u003e`signalfx.aws.TokenIntegration`\u003c/span\u003e.\n\n\u003e **NOTE** When managing integrations, use a session token of an administrator to authenticate the Splunk Observability provider. See [Operations that require a session token for an administrator](https://dev.splunk.com/observability/docs/administration/authtokens#Operations-that-require-a-session-token-for-an-administrator).\n\n## Example\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\nimport * as signalfx from \"@pulumi/signalfx\";\n\n//  This resource returns an account id in `external_id`…\nconst awsMyteamExternal = new signalfx.aws.ExternalIntegration(\"aws_myteam_external\", {name: \"My AWS integration\"});\n// Make yourself an AWS IAM role here, use `signalfx_aws_external_integration.aws_myteam_external.external_id`\nconst awsSfxExample = new aws.index.IamRole(\"aws_sfx_example\", {});\nconst awsMyteam = new signalfx.aws.Integration(\"aws_myteam\", {\n    enabled: true,\n    integrationId: awsMyteamExternal.id,\n    externalId: awsMyteamExternal.externalId,\n    roleArn: awsSfxRole.arn,\n    regions: [\"us-east-1\"],\n    pollRate: 300,\n    importCloudWatch: true,\n    enableAwsUsage: true,\n    customNamespaceSyncRules: [{\n        defaultAction: \"Exclude\",\n        filterAction: \"Include\",\n        filterSource: \"filter('code', '200')\",\n        namespace: \"my-custom-namespace\",\n    }],\n    namespaceSyncRules: [{\n        defaultAction: \"Exclude\",\n        filterAction: \"Include\",\n        filterSource: \"filter('code', '200')\",\n        namespace: \"AWS/EC2\",\n    }],\n    metricStatsToSyncs: [{\n        namespace: \"AWS/EC2\",\n        metric: \"NetworkPacketsIn\",\n        stats: [\"upper\"],\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\nimport pulumi_signalfx as signalfx\n\n#  This resource returns an account id in `external_id`…\naws_myteam_external = signalfx.aws.ExternalIntegration(\"aws_myteam_external\", name=\"My AWS integration\")\n# Make yourself an AWS IAM role here, use `signalfx_aws_external_integration.aws_myteam_external.external_id`\naws_sfx_example = aws.index.IamRole(\"aws_sfx_example\")\naws_myteam = signalfx.aws.Integration(\"aws_myteam\",\n    enabled=True,\n    integration_id=aws_myteam_external.id,\n    external_id=aws_myteam_external.external_id,\n    role_arn=aws_sfx_role[\"arn\"],\n    regions=[\"us-east-1\"],\n    poll_rate=300,\n    import_cloud_watch=True,\n    enable_aws_usage=True,\n    custom_namespace_sync_rules=[{\n        \"default_action\": \"Exclude\",\n        \"filter_action\": \"Include\",\n        \"filter_source\": \"filter('code', '200')\",\n        \"namespace\": \"my-custom-namespace\",\n    }],\n    namespace_sync_rules=[{\n        \"default_action\": \"Exclude\",\n        \"filter_action\": \"Include\",\n        \"filter_source\": \"filter('code', '200')\",\n        \"namespace\": \"AWS/EC2\",\n    }],\n    metric_stats_to_syncs=[{\n        \"namespace\": \"AWS/EC2\",\n        \"metric\": \"NetworkPacketsIn\",\n        \"stats\": [\"upper\"],\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\nusing SignalFx = Pulumi.SignalFx;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    //  This resource returns an account id in `external_id`…\n    var awsMyteamExternal = new SignalFx.Aws.ExternalIntegration(\"aws_myteam_external\", new()\n    {\n        Name = \"My AWS integration\",\n    });\n\n    // Make yourself an AWS IAM role here, use `signalfx_aws_external_integration.aws_myteam_external.external_id`\n    var awsSfxExample = new Aws.Index.IamRole(\"aws_sfx_example\");\n\n    var awsMyteam = new SignalFx.Aws.Integration(\"aws_myteam\", new()\n    {\n        Enabled = true,\n        IntegrationId = awsMyteamExternal.Id,\n        ExternalId = awsMyteamExternal.ExternalId,\n        RoleArn = awsSfxRole.Arn,\n        Regions = new[]\n        {\n            \"us-east-1\",\n        },\n        PollRate = 300,\n        ImportCloudWatch = true,\n        EnableAwsUsage = true,\n        CustomNamespaceSyncRules = new[]\n        {\n            new SignalFx.Aws.Inputs.IntegrationCustomNamespaceSyncRuleArgs\n            {\n                DefaultAction = \"Exclude\",\n                FilterAction = \"Include\",\n                FilterSource = \"filter('code', '200')\",\n                Namespace = \"my-custom-namespace\",\n            },\n        },\n        NamespaceSyncRules = new[]\n        {\n            new SignalFx.Aws.Inputs.IntegrationNamespaceSyncRuleArgs\n            {\n                DefaultAction = \"Exclude\",\n                FilterAction = \"Include\",\n                FilterSource = \"filter('code', '200')\",\n                Namespace = \"AWS/EC2\",\n            },\n        },\n        MetricStatsToSyncs = new[]\n        {\n            new SignalFx.Aws.Inputs.IntegrationMetricStatsToSyncArgs\n            {\n                Namespace = \"AWS/EC2\",\n                Metric = \"NetworkPacketsIn\",\n                Stats = new[]\n                {\n                    \"upper\",\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\tgoaws \"github.com/pulumi/pulumi-aws/sdk/v7/go/aws\"\n\t\"github.com/pulumi/pulumi-signalfx/sdk/v7/go/signalfx/aws\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// This resource returns an account id in `external_id`…\n\t\tawsMyteamExternal, err := aws.NewExternalIntegration(ctx, \"aws_myteam_external\", \u0026aws.ExternalIntegrationArgs{\n\t\t\tName: pulumi.String(\"My AWS integration\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Make yourself an AWS IAM role here, use `signalfx_aws_external_integration.aws_myteam_external.external_id`\n\t\t_, err = goaws.NewIamRole(ctx, \"aws_sfx_example\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = aws.NewIntegration(ctx, \"aws_myteam\", \u0026aws.IntegrationArgs{\n\t\t\tEnabled:       pulumi.Bool(true),\n\t\t\tIntegrationId: awsMyteamExternal.ID(),\n\t\t\tExternalId:    awsMyteamExternal.ExternalId,\n\t\t\tRoleArn:       pulumi.Any(awsSfxRole.Arn),\n\t\t\tRegions: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"us-east-1\"),\n\t\t\t},\n\t\t\tPollRate:         pulumi.Int(300),\n\t\t\tImportCloudWatch: pulumi.Bool(true),\n\t\t\tEnableAwsUsage:   pulumi.Bool(true),\n\t\t\tCustomNamespaceSyncRules: aws.IntegrationCustomNamespaceSyncRuleArray{\n\t\t\t\t\u0026aws.IntegrationCustomNamespaceSyncRuleArgs{\n\t\t\t\t\tDefaultAction: pulumi.String(\"Exclude\"),\n\t\t\t\t\tFilterAction:  pulumi.String(\"Include\"),\n\t\t\t\t\tFilterSource:  pulumi.String(\"filter('code', '200')\"),\n\t\t\t\t\tNamespace:     pulumi.String(\"my-custom-namespace\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tNamespaceSyncRules: aws.IntegrationNamespaceSyncRuleArray{\n\t\t\t\t\u0026aws.IntegrationNamespaceSyncRuleArgs{\n\t\t\t\t\tDefaultAction: pulumi.String(\"Exclude\"),\n\t\t\t\t\tFilterAction:  pulumi.String(\"Include\"),\n\t\t\t\t\tFilterSource:  pulumi.String(\"filter('code', '200')\"),\n\t\t\t\t\tNamespace:     pulumi.String(\"AWS/EC2\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tMetricStatsToSyncs: aws.IntegrationMetricStatsToSyncArray{\n\t\t\t\t\u0026aws.IntegrationMetricStatsToSyncArgs{\n\t\t\t\t\tNamespace: pulumi.String(\"AWS/EC2\"),\n\t\t\t\t\tMetric:    pulumi.String(\"NetworkPacketsIn\"),\n\t\t\t\t\tStats: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"upper\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.signalfx.aws.ExternalIntegration;\nimport com.pulumi.signalfx.aws.ExternalIntegrationArgs;\nimport com.pulumi.aws.IamRole;\nimport com.pulumi.signalfx.aws.Integration;\nimport com.pulumi.signalfx.aws.IntegrationArgs;\nimport com.pulumi.signalfx.aws.inputs.IntegrationCustomNamespaceSyncRuleArgs;\nimport com.pulumi.signalfx.aws.inputs.IntegrationNamespaceSyncRuleArgs;\nimport com.pulumi.signalfx.aws.inputs.IntegrationMetricStatsToSyncArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        //  This resource returns an account id in `external_id`…\n        var awsMyteamExternal = new ExternalIntegration(\"awsMyteamExternal\", ExternalIntegrationArgs.builder()\n            .name(\"My AWS integration\")\n            .build());\n\n        // Make yourself an AWS IAM role here, use `signalfx_aws_external_integration.aws_myteam_external.external_id`\n        var awsSfxExample = new IamRole(\"awsSfxExample\");\n\n        var awsMyteam = new Integration(\"awsMyteam\", IntegrationArgs.builder()\n            .enabled(true)\n            .integrationId(awsMyteamExternal.id())\n            .externalId(awsMyteamExternal.externalId())\n            .roleArn(awsSfxRole.arn())\n            .regions(\"us-east-1\")\n            .pollRate(300)\n            .importCloudWatch(true)\n            .enableAwsUsage(true)\n            .customNamespaceSyncRules(IntegrationCustomNamespaceSyncRuleArgs.builder()\n                .defaultAction(\"Exclude\")\n                .filterAction(\"Include\")\n                .filterSource(\"filter('code', '200')\")\n                .namespace(\"my-custom-namespace\")\n                .build())\n            .namespaceSyncRules(IntegrationNamespaceSyncRuleArgs.builder()\n                .defaultAction(\"Exclude\")\n                .filterAction(\"Include\")\n                .filterSource(\"filter('code', '200')\")\n                .namespace(\"AWS/EC2\")\n                .build())\n            .metricStatsToSyncs(IntegrationMetricStatsToSyncArgs.builder()\n                .namespace(\"AWS/EC2\")\n                .metric(\"NetworkPacketsIn\")\n                .stats(\"upper\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  #  This resource returns an account id in `external_id`…\n  awsMyteamExternal:\n    type: signalfx:aws:ExternalIntegration\n    name: aws_myteam_external\n    properties:\n      name: My AWS integration\n  # Make yourself an AWS IAM role here, use `signalfx_aws_external_integration.aws_myteam_external.external_id`\n  awsSfxExample:\n    type: aws:IamRole\n    name: aws_sfx_example\n  awsMyteam:\n    type: signalfx:aws:Integration\n    name: aws_myteam\n    properties:\n      enabled: true\n      integrationId: ${awsMyteamExternal.id}\n      externalId: ${awsMyteamExternal.externalId}\n      roleArn: ${awsSfxRole.arn}\n      regions:\n        - us-east-1\n      pollRate: 300\n      importCloudWatch: true\n      enableAwsUsage: true\n      customNamespaceSyncRules:\n        - defaultAction: Exclude\n          filterAction: Include\n          filterSource: filter('code', '200')\n          namespace: my-custom-namespace\n      namespaceSyncRules:\n        - defaultAction: Exclude\n          filterAction: Include\n          filterSource: filter('code', '200')\n          namespace: AWS/EC2\n      metricStatsToSyncs:\n        - namespace: AWS/EC2\n          metric: NetworkPacketsIn\n          stats:\n            - upper\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"authMethod":{"type":"string","description":"The mechanism used to authenticate with AWS. Use one of \u003cspan pulumi-lang-nodejs=\"`signalfx.aws.ExternalIntegration`\" pulumi-lang-dotnet=\"`signalfx.aws.ExternalIntegration`\" pulumi-lang-go=\"`aws.ExternalIntegration`\" pulumi-lang-python=\"`aws.ExternalIntegration`\" pulumi-lang-yaml=\"`signalfx.aws.ExternalIntegration`\" pulumi-lang-java=\"`signalfx.aws.ExternalIntegration`\"\u003e`signalfx.aws.ExternalIntegration`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`signalfx.aws.TokenIntegration`\" pulumi-lang-dotnet=\"`signalfx.aws.TokenIntegration`\" pulumi-lang-go=\"`aws.TokenIntegration`\" pulumi-lang-python=\"`aws.TokenIntegration`\" pulumi-lang-yaml=\"`signalfx.aws.TokenIntegration`\" pulumi-lang-java=\"`signalfx.aws.TokenIntegration`\"\u003e`signalfx.aws.TokenIntegration`\u003c/span\u003e to define this"},"collectOnlyRecommendedStats":{"type":"boolean","description":"The integration will only ingest the recommended statistics published by AWS\n"},"customCloudwatchNamespaces":{"type":"array","items":{"type":"string"},"description":"List of custom AWS CloudWatch namespaces to monitor. Custom namespaces contain custom metrics that you define in AWS; Splunk Observability Cloud imports the metrics so you can monitor them.\n"},"customNamespaceSyncRules":{"type":"array","items":{"$ref":"#/types/signalfx:aws/IntegrationCustomNamespaceSyncRule:IntegrationCustomNamespaceSyncRule"},"description":"Each element controls the data collected by Splunk Observability Cloud for the specified namespace. Conflicts with the \u003cspan pulumi-lang-nodejs=\"`customCloudwatchNamespaces`\" pulumi-lang-dotnet=\"`CustomCloudwatchNamespaces`\" pulumi-lang-go=\"`customCloudwatchNamespaces`\" pulumi-lang-python=\"`custom_cloudwatch_namespaces`\" pulumi-lang-yaml=\"`customCloudwatchNamespaces`\" pulumi-lang-java=\"`customCloudwatchNamespaces`\"\u003e`custom_cloudwatch_namespaces`\u003c/span\u003e property.\n"},"enableAwsUsage":{"type":"boolean","description":"Flag that controls how Splunk Observability Cloud imports usage metrics from AWS to use with AWS Cost Optimizer. If \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, Splunk Observability Cloud imports the metrics.\n"},"enableCheckLargeVolume":{"type":"boolean","description":"Controls how Splunk Observability Cloud checks for large amounts of data for this AWS integration. If \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, Splunk Observability Cloud monitors the amount of data coming in from the integration.\n"},"enableLogsSync":{"type":"boolean","description":"Enable the AWS logs synchronization. Note that this requires the inclusion of `\"logs:DescribeLogGroups\"`, `\"logs:DeleteSubscriptionFilter\"`, `\"logs:DescribeSubscriptionFilters\"`, `\"logs:PutSubscriptionFilter\"`, and `\"s3:GetBucketLogging\"`, `\"s3:GetBucketNotification\"`, `\"s3:PutBucketNotification\"` permissions. Additional permissions may be required to capture logs from specific AWS services.\n"},"enabled":{"type":"boolean","description":"Whether the integration is enabled.\n"},"externalId":{"type":"string","description":"The \u003cspan pulumi-lang-nodejs=\"`externalId`\" pulumi-lang-dotnet=\"`ExternalId`\" pulumi-lang-go=\"`externalId`\" pulumi-lang-python=\"`external_id`\" pulumi-lang-yaml=\"`externalId`\" pulumi-lang-java=\"`externalId`\"\u003e`external_id`\u003c/span\u003e property from one of a \u003cspan pulumi-lang-nodejs=\"`signalfx.aws.ExternalIntegration`\" pulumi-lang-dotnet=\"`signalfx.aws.ExternalIntegration`\" pulumi-lang-go=\"`aws.ExternalIntegration`\" pulumi-lang-python=\"`aws.ExternalIntegration`\" pulumi-lang-yaml=\"`signalfx.aws.ExternalIntegration`\" pulumi-lang-java=\"`signalfx.aws.ExternalIntegration`\"\u003e`signalfx.aws.ExternalIntegration`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`signalfx.aws.TokenIntegration`\" pulumi-lang-dotnet=\"`signalfx.aws.TokenIntegration`\" pulumi-lang-go=\"`aws.TokenIntegration`\" pulumi-lang-python=\"`aws.TokenIntegration`\" pulumi-lang-yaml=\"`signalfx.aws.TokenIntegration`\" pulumi-lang-java=\"`signalfx.aws.TokenIntegration`\"\u003e`signalfx.aws.TokenIntegration`\u003c/span\u003e\n","secret":true},"importCloudWatch":{"type":"boolean","description":"Flag that controls how Splunk Observability Cloud imports Cloud Watch metrics. If true, Splunk Observability Cloud imports Cloud Watch metrics from AWS.\n"},"inactiveMetricsPollRate":{"type":"integer","description":"AWS\u003cspan pulumi-lang-nodejs=\" inactiveMetrics \" pulumi-lang-dotnet=\" InactiveMetrics \" pulumi-lang-go=\" inactiveMetrics \" pulumi-lang-python=\" inactive_metrics \" pulumi-lang-yaml=\" inactiveMetrics \" pulumi-lang-java=\" inactiveMetrics \"\u003e inactive_metrics \u003c/span\u003epoll rate (in seconds). Between \u003cspan pulumi-lang-nodejs=\"`60`\" pulumi-lang-dotnet=\"`60`\" pulumi-lang-go=\"`60`\" pulumi-lang-python=\"`60`\" pulumi-lang-yaml=\"`60`\" pulumi-lang-java=\"`60`\"\u003e`60`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`3600`\" pulumi-lang-dotnet=\"`3600`\" pulumi-lang-go=\"`3600`\" pulumi-lang-python=\"`3600`\" pulumi-lang-yaml=\"`3600`\" pulumi-lang-java=\"`3600`\"\u003e`3600`\u003c/span\u003e"},"integrationId":{"type":"string","description":"The id of one of a \u003cspan pulumi-lang-nodejs=\"`signalfx.aws.ExternalIntegration`\" pulumi-lang-dotnet=\"`signalfx.aws.ExternalIntegration`\" pulumi-lang-go=\"`aws.ExternalIntegration`\" pulumi-lang-python=\"`aws.ExternalIntegration`\" pulumi-lang-yaml=\"`signalfx.aws.ExternalIntegration`\" pulumi-lang-java=\"`signalfx.aws.ExternalIntegration`\"\u003e`signalfx.aws.ExternalIntegration`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`signalfx.aws.TokenIntegration`\" pulumi-lang-dotnet=\"`signalfx.aws.TokenIntegration`\" pulumi-lang-go=\"`aws.TokenIntegration`\" pulumi-lang-python=\"`aws.TokenIntegration`\" pulumi-lang-yaml=\"`signalfx.aws.TokenIntegration`\" pulumi-lang-java=\"`signalfx.aws.TokenIntegration`\"\u003e`signalfx.aws.TokenIntegration`\u003c/span\u003e.\n"},"key":{"type":"string","description":"If you specify \u003cspan pulumi-lang-nodejs=\"`authMethod \" pulumi-lang-dotnet=\"`AuthMethod \" pulumi-lang-go=\"`authMethod \" pulumi-lang-python=\"`auth_method \" pulumi-lang-yaml=\"`authMethod \" pulumi-lang-java=\"`authMethod \"\u003e`auth_method \u003c/span\u003e= \\\"SecurityToken\\\"` in your request to create an AWS integration object, use this property to specify the key (this is typically equivalent to the `AWS_SECRET_ACCESS_KEY` environment variable).\n","secret":true},"metricStatsToSyncs":{"type":"array","items":{"$ref":"#/types/signalfx:aws/IntegrationMetricStatsToSync:IntegrationMetricStatsToSync"},"description":"Each element in the array is an object that contains an AWS namespace name, AWS metric name and a list of statistics that Splunk Observability Cloud collects for this metric. If you specify this property, Splunk Observability Cloud retrieves only specified AWS statistics when AWS metric streams are not used. When AWS metric streams are used this property specifies additional extended statistics to collect (please note that AWS metric streams API supports percentile stats only; other stats are ignored). If you don't specify this property, Splunk Observability Cloud retrieves the AWS standard set of statistics.\n"},"metricStreamsManagedExternally":{"type":"boolean","description":"If set to true, Splunk Observability Cloud accepts data from Metric Streams managed from the AWS console. The AWS account sending the Metric Streams and the AWS account in the Splunk Observability Cloud integration have to match. Requires \u003cspan pulumi-lang-nodejs=\"`useMetricStreamsSync`\" pulumi-lang-dotnet=\"`UseMetricStreamsSync`\" pulumi-lang-go=\"`useMetricStreamsSync`\" pulumi-lang-python=\"`use_metric_streams_sync`\" pulumi-lang-yaml=\"`useMetricStreamsSync`\" pulumi-lang-java=\"`useMetricStreamsSync`\"\u003e`use_metric_streams_sync`\u003c/span\u003e set to true to work.\n"},"name":{"type":"string","description":"Name of the integration.\n"},"namedToken":{"type":"string","description":"Name of the org token to be used for data ingestion. If not specified then default access token is used.\n"},"namespaceSyncRules":{"type":"array","items":{"$ref":"#/types/signalfx:aws/IntegrationNamespaceSyncRule:IntegrationNamespaceSyncRule"},"description":"Each element in the array is an object that contains an AWS namespace name and a filter that controls the data that Splunk Observability Cloud collects for the namespace. Conflicts with the \u003cspan pulumi-lang-nodejs=\"`services`\" pulumi-lang-dotnet=\"`Services`\" pulumi-lang-go=\"`services`\" pulumi-lang-python=\"`services`\" pulumi-lang-yaml=\"`services`\" pulumi-lang-java=\"`services`\"\u003e`services`\u003c/span\u003e property. If you don't specify either property, Splunk Observability Cloud syncs all data in all AWS namespaces.\n"},"pollRate":{"type":"integer","description":"AWS poll rate (in seconds). Value between \u003cspan pulumi-lang-nodejs=\"`60`\" pulumi-lang-dotnet=\"`60`\" pulumi-lang-go=\"`60`\" pulumi-lang-python=\"`60`\" pulumi-lang-yaml=\"`60`\" pulumi-lang-java=\"`60`\"\u003e`60`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`600`\" pulumi-lang-dotnet=\"`600`\" pulumi-lang-go=\"`600`\" pulumi-lang-python=\"`600`\" pulumi-lang-yaml=\"`600`\" pulumi-lang-java=\"`600`\"\u003e`600`\u003c/span\u003e. Default: \u003cspan pulumi-lang-nodejs=\"`300`\" pulumi-lang-dotnet=\"`300`\" pulumi-lang-go=\"`300`\" pulumi-lang-python=\"`300`\" pulumi-lang-yaml=\"`300`\" pulumi-lang-java=\"`300`\"\u003e`300`\u003c/span\u003e.\n"},"regions":{"type":"array","items":{"type":"string"},"description":"List of AWS regions that Splunk Observability Cloud should monitor. It cannot be empty.\n"},"roleArn":{"type":"string","description":"Role ARN that you add to an existing AWS integration object. **Note**: Ensure you use the \u003cspan pulumi-lang-nodejs=\"`arn`\" pulumi-lang-dotnet=\"`Arn`\" pulumi-lang-go=\"`arn`\" pulumi-lang-python=\"`arn`\" pulumi-lang-yaml=\"`arn`\" pulumi-lang-java=\"`arn`\"\u003e`arn`\u003c/span\u003e property of your role, not the id!\n"},"services":{"type":"array","items":{"type":"string"},"description":"List of AWS services that you want Splunk Observability Cloud to monitor. Each element is a string designating an AWS service. Can be an empty list to import data for all supported services. Conflicts with \u003cspan pulumi-lang-nodejs=\"`namespaceSyncRule`\" pulumi-lang-dotnet=\"`NamespaceSyncRule`\" pulumi-lang-go=\"`namespaceSyncRule`\" pulumi-lang-python=\"`namespace_sync_rule`\" pulumi-lang-yaml=\"`namespaceSyncRule`\" pulumi-lang-java=\"`namespaceSyncRule`\"\u003e`namespace_sync_rule`\u003c/span\u003e. See [Amazon Web Services](https://docs.splunk.com/Observability/gdi/get-data-in/integrations.html#amazon-web-services) for a list of valid values.\n"},"syncCustomNamespacesOnly":{"type":"boolean","description":"Indicates that Splunk Observability Cloud should sync metrics and metadata from custom AWS namespaces only (see the \u003cspan pulumi-lang-nodejs=\"`customNamespaceSyncRule`\" pulumi-lang-dotnet=\"`CustomNamespaceSyncRule`\" pulumi-lang-go=\"`customNamespaceSyncRule`\" pulumi-lang-python=\"`custom_namespace_sync_rule`\" pulumi-lang-yaml=\"`customNamespaceSyncRule`\" pulumi-lang-java=\"`customNamespaceSyncRule`\"\u003e`custom_namespace_sync_rule`\u003c/span\u003e above). Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"token":{"type":"string","description":"If you specify \u003cspan pulumi-lang-nodejs=\"`authMethod \" pulumi-lang-dotnet=\"`AuthMethod \" pulumi-lang-go=\"`authMethod \" pulumi-lang-python=\"`auth_method \" pulumi-lang-yaml=\"`authMethod \" pulumi-lang-java=\"`authMethod \"\u003e`auth_method \u003c/span\u003e= \\\"SecurityToken\\\"` in your request to create an AWS integration object, use this property to specify the token (this is typically equivalent to the `AWS_ACCESS_KEY_ID` environment variable).\n"},"useMetricStreamsSync":{"type":"boolean","description":"Enable the use of Amazon Cloudwatch Metric Streams for ingesting metrics.\u003cbr\u003e Note that this requires the inclusion of `\"cloudwatch:ListMetricStreams\"`,`\"cloudwatch:GetMetricStream\"`, `\"cloudwatch:PutMetricStream\"`, `\"cloudwatch:DeleteMetricStream\"`, `\"cloudwatch:StartMetricStreams\"`, `\"cloudwatch:StopMetricStreams\"` and `\"iam:PassRole\"` permissions.\u003cbr\u003e Note you need to deploy additional resources on your AWS account to enable CloudWatch metrics streaming. Select one of the [CloudFormation templates](https://docs.splunk.com/Observability/gdi/get-data-in/connect/aws/aws-cloudformation.html) to deploy all the required resources.\n"}},"required":["authMethod","enableLogsSync","enabled","integrationId","name","regions","useMetricStreamsSync"],"inputProperties":{"collectOnlyRecommendedStats":{"type":"boolean","description":"The integration will only ingest the recommended statistics published by AWS\n"},"customCloudwatchNamespaces":{"type":"array","items":{"type":"string"},"description":"List of custom AWS CloudWatch namespaces to monitor. Custom namespaces contain custom metrics that you define in AWS; Splunk Observability Cloud imports the metrics so you can monitor them.\n"},"customNamespaceSyncRules":{"type":"array","items":{"$ref":"#/types/signalfx:aws/IntegrationCustomNamespaceSyncRule:IntegrationCustomNamespaceSyncRule"},"description":"Each element controls the data collected by Splunk Observability Cloud for the specified namespace. Conflicts with the \u003cspan pulumi-lang-nodejs=\"`customCloudwatchNamespaces`\" pulumi-lang-dotnet=\"`CustomCloudwatchNamespaces`\" pulumi-lang-go=\"`customCloudwatchNamespaces`\" pulumi-lang-python=\"`custom_cloudwatch_namespaces`\" pulumi-lang-yaml=\"`customCloudwatchNamespaces`\" pulumi-lang-java=\"`customCloudwatchNamespaces`\"\u003e`custom_cloudwatch_namespaces`\u003c/span\u003e property.\n"},"enableAwsUsage":{"type":"boolean","description":"Flag that controls how Splunk Observability Cloud imports usage metrics from AWS to use with AWS Cost Optimizer. If \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, Splunk Observability Cloud imports the metrics.\n"},"enableCheckLargeVolume":{"type":"boolean","description":"Controls how Splunk Observability Cloud checks for large amounts of data for this AWS integration. If \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, Splunk Observability Cloud monitors the amount of data coming in from the integration.\n"},"enableLogsSync":{"type":"boolean","description":"Enable the AWS logs synchronization. Note that this requires the inclusion of `\"logs:DescribeLogGroups\"`, `\"logs:DeleteSubscriptionFilter\"`, `\"logs:DescribeSubscriptionFilters\"`, `\"logs:PutSubscriptionFilter\"`, and `\"s3:GetBucketLogging\"`, `\"s3:GetBucketNotification\"`, `\"s3:PutBucketNotification\"` permissions. Additional permissions may be required to capture logs from specific AWS services.\n"},"enabled":{"type":"boolean","description":"Whether the integration is enabled.\n"},"externalId":{"type":"string","description":"The \u003cspan pulumi-lang-nodejs=\"`externalId`\" pulumi-lang-dotnet=\"`ExternalId`\" pulumi-lang-go=\"`externalId`\" pulumi-lang-python=\"`external_id`\" pulumi-lang-yaml=\"`externalId`\" pulumi-lang-java=\"`externalId`\"\u003e`external_id`\u003c/span\u003e property from one of a \u003cspan pulumi-lang-nodejs=\"`signalfx.aws.ExternalIntegration`\" pulumi-lang-dotnet=\"`signalfx.aws.ExternalIntegration`\" pulumi-lang-go=\"`aws.ExternalIntegration`\" pulumi-lang-python=\"`aws.ExternalIntegration`\" pulumi-lang-yaml=\"`signalfx.aws.ExternalIntegration`\" pulumi-lang-java=\"`signalfx.aws.ExternalIntegration`\"\u003e`signalfx.aws.ExternalIntegration`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`signalfx.aws.TokenIntegration`\" pulumi-lang-dotnet=\"`signalfx.aws.TokenIntegration`\" pulumi-lang-go=\"`aws.TokenIntegration`\" pulumi-lang-python=\"`aws.TokenIntegration`\" pulumi-lang-yaml=\"`signalfx.aws.TokenIntegration`\" pulumi-lang-java=\"`signalfx.aws.TokenIntegration`\"\u003e`signalfx.aws.TokenIntegration`\u003c/span\u003e\n","secret":true},"importCloudWatch":{"type":"boolean","description":"Flag that controls how Splunk Observability Cloud imports Cloud Watch metrics. If true, Splunk Observability Cloud imports Cloud Watch metrics from AWS.\n"},"inactiveMetricsPollRate":{"type":"integer","description":"AWS\u003cspan pulumi-lang-nodejs=\" inactiveMetrics \" pulumi-lang-dotnet=\" InactiveMetrics \" pulumi-lang-go=\" inactiveMetrics \" pulumi-lang-python=\" inactive_metrics \" pulumi-lang-yaml=\" inactiveMetrics \" pulumi-lang-java=\" inactiveMetrics \"\u003e inactive_metrics \u003c/span\u003epoll rate (in seconds). Between \u003cspan pulumi-lang-nodejs=\"`60`\" pulumi-lang-dotnet=\"`60`\" pulumi-lang-go=\"`60`\" pulumi-lang-python=\"`60`\" pulumi-lang-yaml=\"`60`\" pulumi-lang-java=\"`60`\"\u003e`60`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`3600`\" pulumi-lang-dotnet=\"`3600`\" pulumi-lang-go=\"`3600`\" pulumi-lang-python=\"`3600`\" pulumi-lang-yaml=\"`3600`\" pulumi-lang-java=\"`3600`\"\u003e`3600`\u003c/span\u003e"},"integrationId":{"type":"string","description":"The id of one of a \u003cspan pulumi-lang-nodejs=\"`signalfx.aws.ExternalIntegration`\" pulumi-lang-dotnet=\"`signalfx.aws.ExternalIntegration`\" pulumi-lang-go=\"`aws.ExternalIntegration`\" pulumi-lang-python=\"`aws.ExternalIntegration`\" pulumi-lang-yaml=\"`signalfx.aws.ExternalIntegration`\" pulumi-lang-java=\"`signalfx.aws.ExternalIntegration`\"\u003e`signalfx.aws.ExternalIntegration`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`signalfx.aws.TokenIntegration`\" pulumi-lang-dotnet=\"`signalfx.aws.TokenIntegration`\" pulumi-lang-go=\"`aws.TokenIntegration`\" pulumi-lang-python=\"`aws.TokenIntegration`\" pulumi-lang-yaml=\"`signalfx.aws.TokenIntegration`\" pulumi-lang-java=\"`signalfx.aws.TokenIntegration`\"\u003e`signalfx.aws.TokenIntegration`\u003c/span\u003e.\n","willReplaceOnChanges":true},"key":{"type":"string","description":"If you specify \u003cspan pulumi-lang-nodejs=\"`authMethod \" pulumi-lang-dotnet=\"`AuthMethod \" pulumi-lang-go=\"`authMethod \" pulumi-lang-python=\"`auth_method \" pulumi-lang-yaml=\"`authMethod \" pulumi-lang-java=\"`authMethod \"\u003e`auth_method \u003c/span\u003e= \\\"SecurityToken\\\"` in your request to create an AWS integration object, use this property to specify the key (this is typically equivalent to the `AWS_SECRET_ACCESS_KEY` environment variable).\n","secret":true},"metricStatsToSyncs":{"type":"array","items":{"$ref":"#/types/signalfx:aws/IntegrationMetricStatsToSync:IntegrationMetricStatsToSync"},"description":"Each element in the array is an object that contains an AWS namespace name, AWS metric name and a list of statistics that Splunk Observability Cloud collects for this metric. If you specify this property, Splunk Observability Cloud retrieves only specified AWS statistics when AWS metric streams are not used. When AWS metric streams are used this property specifies additional extended statistics to collect (please note that AWS metric streams API supports percentile stats only; other stats are ignored). If you don't specify this property, Splunk Observability Cloud retrieves the AWS standard set of statistics.\n"},"metricStreamsManagedExternally":{"type":"boolean","description":"If set to true, Splunk Observability Cloud accepts data from Metric Streams managed from the AWS console. The AWS account sending the Metric Streams and the AWS account in the Splunk Observability Cloud integration have to match. Requires \u003cspan pulumi-lang-nodejs=\"`useMetricStreamsSync`\" pulumi-lang-dotnet=\"`UseMetricStreamsSync`\" pulumi-lang-go=\"`useMetricStreamsSync`\" pulumi-lang-python=\"`use_metric_streams_sync`\" pulumi-lang-yaml=\"`useMetricStreamsSync`\" pulumi-lang-java=\"`useMetricStreamsSync`\"\u003e`use_metric_streams_sync`\u003c/span\u003e set to true to work.\n"},"namedToken":{"type":"string","description":"Name of the org token to be used for data ingestion. If not specified then default access token is used.\n"},"namespaceSyncRules":{"type":"array","items":{"$ref":"#/types/signalfx:aws/IntegrationNamespaceSyncRule:IntegrationNamespaceSyncRule"},"description":"Each element in the array is an object that contains an AWS namespace name and a filter that controls the data that Splunk Observability Cloud collects for the namespace. Conflicts with the \u003cspan pulumi-lang-nodejs=\"`services`\" pulumi-lang-dotnet=\"`Services`\" pulumi-lang-go=\"`services`\" pulumi-lang-python=\"`services`\" pulumi-lang-yaml=\"`services`\" pulumi-lang-java=\"`services`\"\u003e`services`\u003c/span\u003e property. If you don't specify either property, Splunk Observability Cloud syncs all data in all AWS namespaces.\n"},"pollRate":{"type":"integer","description":"AWS poll rate (in seconds). Value between \u003cspan pulumi-lang-nodejs=\"`60`\" pulumi-lang-dotnet=\"`60`\" pulumi-lang-go=\"`60`\" pulumi-lang-python=\"`60`\" pulumi-lang-yaml=\"`60`\" pulumi-lang-java=\"`60`\"\u003e`60`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`600`\" pulumi-lang-dotnet=\"`600`\" pulumi-lang-go=\"`600`\" pulumi-lang-python=\"`600`\" pulumi-lang-yaml=\"`600`\" pulumi-lang-java=\"`600`\"\u003e`600`\u003c/span\u003e. Default: \u003cspan pulumi-lang-nodejs=\"`300`\" pulumi-lang-dotnet=\"`300`\" pulumi-lang-go=\"`300`\" pulumi-lang-python=\"`300`\" pulumi-lang-yaml=\"`300`\" pulumi-lang-java=\"`300`\"\u003e`300`\u003c/span\u003e.\n"},"regions":{"type":"array","items":{"type":"string"},"description":"List of AWS regions that Splunk Observability Cloud should monitor. It cannot be empty.\n"},"roleArn":{"type":"string","description":"Role ARN that you add to an existing AWS integration object. **Note**: Ensure you use the \u003cspan pulumi-lang-nodejs=\"`arn`\" pulumi-lang-dotnet=\"`Arn`\" pulumi-lang-go=\"`arn`\" pulumi-lang-python=\"`arn`\" pulumi-lang-yaml=\"`arn`\" pulumi-lang-java=\"`arn`\"\u003e`arn`\u003c/span\u003e property of your role, not the id!\n"},"services":{"type":"array","items":{"type":"string"},"description":"List of AWS services that you want Splunk Observability Cloud to monitor. Each element is a string designating an AWS service. Can be an empty list to import data for all supported services. Conflicts with \u003cspan pulumi-lang-nodejs=\"`namespaceSyncRule`\" pulumi-lang-dotnet=\"`NamespaceSyncRule`\" pulumi-lang-go=\"`namespaceSyncRule`\" pulumi-lang-python=\"`namespace_sync_rule`\" pulumi-lang-yaml=\"`namespaceSyncRule`\" pulumi-lang-java=\"`namespaceSyncRule`\"\u003e`namespace_sync_rule`\u003c/span\u003e. See [Amazon Web Services](https://docs.splunk.com/Observability/gdi/get-data-in/integrations.html#amazon-web-services) for a list of valid values.\n"},"syncCustomNamespacesOnly":{"type":"boolean","description":"Indicates that Splunk Observability Cloud should sync metrics and metadata from custom AWS namespaces only (see the \u003cspan pulumi-lang-nodejs=\"`customNamespaceSyncRule`\" pulumi-lang-dotnet=\"`CustomNamespaceSyncRule`\" pulumi-lang-go=\"`customNamespaceSyncRule`\" pulumi-lang-python=\"`custom_namespace_sync_rule`\" pulumi-lang-yaml=\"`customNamespaceSyncRule`\" pulumi-lang-java=\"`customNamespaceSyncRule`\"\u003e`custom_namespace_sync_rule`\u003c/span\u003e above). Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"token":{"type":"string","description":"If you specify \u003cspan pulumi-lang-nodejs=\"`authMethod \" pulumi-lang-dotnet=\"`AuthMethod \" pulumi-lang-go=\"`authMethod \" pulumi-lang-python=\"`auth_method \" pulumi-lang-yaml=\"`authMethod \" pulumi-lang-java=\"`authMethod \"\u003e`auth_method \u003c/span\u003e= \\\"SecurityToken\\\"` in your request to create an AWS integration object, use this property to specify the token (this is typically equivalent to the `AWS_ACCESS_KEY_ID` environment variable).\n"},"useMetricStreamsSync":{"type":"boolean","description":"Enable the use of Amazon Cloudwatch Metric Streams for ingesting metrics.\u003cbr\u003e Note that this requires the inclusion of `\"cloudwatch:ListMetricStreams\"`,`\"cloudwatch:GetMetricStream\"`, `\"cloudwatch:PutMetricStream\"`, `\"cloudwatch:DeleteMetricStream\"`, `\"cloudwatch:StartMetricStreams\"`, `\"cloudwatch:StopMetricStreams\"` and `\"iam:PassRole\"` permissions.\u003cbr\u003e Note you need to deploy additional resources on your AWS account to enable CloudWatch metrics streaming. Select one of the [CloudFormation templates](https://docs.splunk.com/Observability/gdi/get-data-in/connect/aws/aws-cloudformation.html) to deploy all the required resources.\n"}},"requiredInputs":["enabled","integrationId","regions"],"stateInputs":{"description":"Input properties used for looking up and filtering Integration resources.\n","properties":{"authMethod":{"type":"string","description":"The mechanism used to authenticate with AWS. Use one of \u003cspan pulumi-lang-nodejs=\"`signalfx.aws.ExternalIntegration`\" pulumi-lang-dotnet=\"`signalfx.aws.ExternalIntegration`\" pulumi-lang-go=\"`aws.ExternalIntegration`\" pulumi-lang-python=\"`aws.ExternalIntegration`\" pulumi-lang-yaml=\"`signalfx.aws.ExternalIntegration`\" pulumi-lang-java=\"`signalfx.aws.ExternalIntegration`\"\u003e`signalfx.aws.ExternalIntegration`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`signalfx.aws.TokenIntegration`\" pulumi-lang-dotnet=\"`signalfx.aws.TokenIntegration`\" pulumi-lang-go=\"`aws.TokenIntegration`\" pulumi-lang-python=\"`aws.TokenIntegration`\" pulumi-lang-yaml=\"`signalfx.aws.TokenIntegration`\" pulumi-lang-java=\"`signalfx.aws.TokenIntegration`\"\u003e`signalfx.aws.TokenIntegration`\u003c/span\u003e to define this"},"collectOnlyRecommendedStats":{"type":"boolean","description":"The integration will only ingest the recommended statistics published by AWS\n"},"customCloudwatchNamespaces":{"type":"array","items":{"type":"string"},"description":"List of custom AWS CloudWatch namespaces to monitor. Custom namespaces contain custom metrics that you define in AWS; Splunk Observability Cloud imports the metrics so you can monitor them.\n"},"customNamespaceSyncRules":{"type":"array","items":{"$ref":"#/types/signalfx:aws/IntegrationCustomNamespaceSyncRule:IntegrationCustomNamespaceSyncRule"},"description":"Each element controls the data collected by Splunk Observability Cloud for the specified namespace. Conflicts with the \u003cspan pulumi-lang-nodejs=\"`customCloudwatchNamespaces`\" pulumi-lang-dotnet=\"`CustomCloudwatchNamespaces`\" pulumi-lang-go=\"`customCloudwatchNamespaces`\" pulumi-lang-python=\"`custom_cloudwatch_namespaces`\" pulumi-lang-yaml=\"`customCloudwatchNamespaces`\" pulumi-lang-java=\"`customCloudwatchNamespaces`\"\u003e`custom_cloudwatch_namespaces`\u003c/span\u003e property.\n"},"enableAwsUsage":{"type":"boolean","description":"Flag that controls how Splunk Observability Cloud imports usage metrics from AWS to use with AWS Cost Optimizer. If \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, Splunk Observability Cloud imports the metrics.\n"},"enableCheckLargeVolume":{"type":"boolean","description":"Controls how Splunk Observability Cloud checks for large amounts of data for this AWS integration. If \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, Splunk Observability Cloud monitors the amount of data coming in from the integration.\n"},"enableLogsSync":{"type":"boolean","description":"Enable the AWS logs synchronization. Note that this requires the inclusion of `\"logs:DescribeLogGroups\"`, `\"logs:DeleteSubscriptionFilter\"`, `\"logs:DescribeSubscriptionFilters\"`, `\"logs:PutSubscriptionFilter\"`, and `\"s3:GetBucketLogging\"`, `\"s3:GetBucketNotification\"`, `\"s3:PutBucketNotification\"` permissions. Additional permissions may be required to capture logs from specific AWS services.\n"},"enabled":{"type":"boolean","description":"Whether the integration is enabled.\n"},"externalId":{"type":"string","description":"The \u003cspan pulumi-lang-nodejs=\"`externalId`\" pulumi-lang-dotnet=\"`ExternalId`\" pulumi-lang-go=\"`externalId`\" pulumi-lang-python=\"`external_id`\" pulumi-lang-yaml=\"`externalId`\" pulumi-lang-java=\"`externalId`\"\u003e`external_id`\u003c/span\u003e property from one of a \u003cspan pulumi-lang-nodejs=\"`signalfx.aws.ExternalIntegration`\" pulumi-lang-dotnet=\"`signalfx.aws.ExternalIntegration`\" pulumi-lang-go=\"`aws.ExternalIntegration`\" pulumi-lang-python=\"`aws.ExternalIntegration`\" pulumi-lang-yaml=\"`signalfx.aws.ExternalIntegration`\" pulumi-lang-java=\"`signalfx.aws.ExternalIntegration`\"\u003e`signalfx.aws.ExternalIntegration`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`signalfx.aws.TokenIntegration`\" pulumi-lang-dotnet=\"`signalfx.aws.TokenIntegration`\" pulumi-lang-go=\"`aws.TokenIntegration`\" pulumi-lang-python=\"`aws.TokenIntegration`\" pulumi-lang-yaml=\"`signalfx.aws.TokenIntegration`\" pulumi-lang-java=\"`signalfx.aws.TokenIntegration`\"\u003e`signalfx.aws.TokenIntegration`\u003c/span\u003e\n","secret":true},"importCloudWatch":{"type":"boolean","description":"Flag that controls how Splunk Observability Cloud imports Cloud Watch metrics. If true, Splunk Observability Cloud imports Cloud Watch metrics from AWS.\n"},"inactiveMetricsPollRate":{"type":"integer","description":"AWS\u003cspan pulumi-lang-nodejs=\" inactiveMetrics \" pulumi-lang-dotnet=\" InactiveMetrics \" pulumi-lang-go=\" inactiveMetrics \" pulumi-lang-python=\" inactive_metrics \" pulumi-lang-yaml=\" inactiveMetrics \" pulumi-lang-java=\" inactiveMetrics \"\u003e inactive_metrics \u003c/span\u003epoll rate (in seconds). Between \u003cspan pulumi-lang-nodejs=\"`60`\" pulumi-lang-dotnet=\"`60`\" pulumi-lang-go=\"`60`\" pulumi-lang-python=\"`60`\" pulumi-lang-yaml=\"`60`\" pulumi-lang-java=\"`60`\"\u003e`60`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`3600`\" pulumi-lang-dotnet=\"`3600`\" pulumi-lang-go=\"`3600`\" pulumi-lang-python=\"`3600`\" pulumi-lang-yaml=\"`3600`\" pulumi-lang-java=\"`3600`\"\u003e`3600`\u003c/span\u003e"},"integrationId":{"type":"string","description":"The id of one of a \u003cspan pulumi-lang-nodejs=\"`signalfx.aws.ExternalIntegration`\" pulumi-lang-dotnet=\"`signalfx.aws.ExternalIntegration`\" pulumi-lang-go=\"`aws.ExternalIntegration`\" pulumi-lang-python=\"`aws.ExternalIntegration`\" pulumi-lang-yaml=\"`signalfx.aws.ExternalIntegration`\" pulumi-lang-java=\"`signalfx.aws.ExternalIntegration`\"\u003e`signalfx.aws.ExternalIntegration`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`signalfx.aws.TokenIntegration`\" pulumi-lang-dotnet=\"`signalfx.aws.TokenIntegration`\" pulumi-lang-go=\"`aws.TokenIntegration`\" pulumi-lang-python=\"`aws.TokenIntegration`\" pulumi-lang-yaml=\"`signalfx.aws.TokenIntegration`\" pulumi-lang-java=\"`signalfx.aws.TokenIntegration`\"\u003e`signalfx.aws.TokenIntegration`\u003c/span\u003e.\n","willReplaceOnChanges":true},"key":{"type":"string","description":"If you specify \u003cspan pulumi-lang-nodejs=\"`authMethod \" pulumi-lang-dotnet=\"`AuthMethod \" pulumi-lang-go=\"`authMethod \" pulumi-lang-python=\"`auth_method \" pulumi-lang-yaml=\"`authMethod \" pulumi-lang-java=\"`authMethod \"\u003e`auth_method \u003c/span\u003e= \\\"SecurityToken\\\"` in your request to create an AWS integration object, use this property to specify the key (this is typically equivalent to the `AWS_SECRET_ACCESS_KEY` environment variable).\n","secret":true},"metricStatsToSyncs":{"type":"array","items":{"$ref":"#/types/signalfx:aws/IntegrationMetricStatsToSync:IntegrationMetricStatsToSync"},"description":"Each element in the array is an object that contains an AWS namespace name, AWS metric name and a list of statistics that Splunk Observability Cloud collects for this metric. If you specify this property, Splunk Observability Cloud retrieves only specified AWS statistics when AWS metric streams are not used. When AWS metric streams are used this property specifies additional extended statistics to collect (please note that AWS metric streams API supports percentile stats only; other stats are ignored). If you don't specify this property, Splunk Observability Cloud retrieves the AWS standard set of statistics.\n"},"metricStreamsManagedExternally":{"type":"boolean","description":"If set to true, Splunk Observability Cloud accepts data from Metric Streams managed from the AWS console. The AWS account sending the Metric Streams and the AWS account in the Splunk Observability Cloud integration have to match. Requires \u003cspan pulumi-lang-nodejs=\"`useMetricStreamsSync`\" pulumi-lang-dotnet=\"`UseMetricStreamsSync`\" pulumi-lang-go=\"`useMetricStreamsSync`\" pulumi-lang-python=\"`use_metric_streams_sync`\" pulumi-lang-yaml=\"`useMetricStreamsSync`\" pulumi-lang-java=\"`useMetricStreamsSync`\"\u003e`use_metric_streams_sync`\u003c/span\u003e set to true to work.\n"},"name":{"type":"string","description":"Name of the integration.\n"},"namedToken":{"type":"string","description":"Name of the org token to be used for data ingestion. If not specified then default access token is used.\n"},"namespaceSyncRules":{"type":"array","items":{"$ref":"#/types/signalfx:aws/IntegrationNamespaceSyncRule:IntegrationNamespaceSyncRule"},"description":"Each element in the array is an object that contains an AWS namespace name and a filter that controls the data that Splunk Observability Cloud collects for the namespace. Conflicts with the \u003cspan pulumi-lang-nodejs=\"`services`\" pulumi-lang-dotnet=\"`Services`\" pulumi-lang-go=\"`services`\" pulumi-lang-python=\"`services`\" pulumi-lang-yaml=\"`services`\" pulumi-lang-java=\"`services`\"\u003e`services`\u003c/span\u003e property. If you don't specify either property, Splunk Observability Cloud syncs all data in all AWS namespaces.\n"},"pollRate":{"type":"integer","description":"AWS poll rate (in seconds). Value between \u003cspan pulumi-lang-nodejs=\"`60`\" pulumi-lang-dotnet=\"`60`\" pulumi-lang-go=\"`60`\" pulumi-lang-python=\"`60`\" pulumi-lang-yaml=\"`60`\" pulumi-lang-java=\"`60`\"\u003e`60`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`600`\" pulumi-lang-dotnet=\"`600`\" pulumi-lang-go=\"`600`\" pulumi-lang-python=\"`600`\" pulumi-lang-yaml=\"`600`\" pulumi-lang-java=\"`600`\"\u003e`600`\u003c/span\u003e. Default: \u003cspan pulumi-lang-nodejs=\"`300`\" pulumi-lang-dotnet=\"`300`\" pulumi-lang-go=\"`300`\" pulumi-lang-python=\"`300`\" pulumi-lang-yaml=\"`300`\" pulumi-lang-java=\"`300`\"\u003e`300`\u003c/span\u003e.\n"},"regions":{"type":"array","items":{"type":"string"},"description":"List of AWS regions that Splunk Observability Cloud should monitor. It cannot be empty.\n"},"roleArn":{"type":"string","description":"Role ARN that you add to an existing AWS integration object. **Note**: Ensure you use the \u003cspan pulumi-lang-nodejs=\"`arn`\" pulumi-lang-dotnet=\"`Arn`\" pulumi-lang-go=\"`arn`\" pulumi-lang-python=\"`arn`\" pulumi-lang-yaml=\"`arn`\" pulumi-lang-java=\"`arn`\"\u003e`arn`\u003c/span\u003e property of your role, not the id!\n"},"services":{"type":"array","items":{"type":"string"},"description":"List of AWS services that you want Splunk Observability Cloud to monitor. Each element is a string designating an AWS service. Can be an empty list to import data for all supported services. Conflicts with \u003cspan pulumi-lang-nodejs=\"`namespaceSyncRule`\" pulumi-lang-dotnet=\"`NamespaceSyncRule`\" pulumi-lang-go=\"`namespaceSyncRule`\" pulumi-lang-python=\"`namespace_sync_rule`\" pulumi-lang-yaml=\"`namespaceSyncRule`\" pulumi-lang-java=\"`namespaceSyncRule`\"\u003e`namespace_sync_rule`\u003c/span\u003e. See [Amazon Web Services](https://docs.splunk.com/Observability/gdi/get-data-in/integrations.html#amazon-web-services) for a list of valid values.\n"},"syncCustomNamespacesOnly":{"type":"boolean","description":"Indicates that Splunk Observability Cloud should sync metrics and metadata from custom AWS namespaces only (see the \u003cspan pulumi-lang-nodejs=\"`customNamespaceSyncRule`\" pulumi-lang-dotnet=\"`CustomNamespaceSyncRule`\" pulumi-lang-go=\"`customNamespaceSyncRule`\" pulumi-lang-python=\"`custom_namespace_sync_rule`\" pulumi-lang-yaml=\"`customNamespaceSyncRule`\" pulumi-lang-java=\"`customNamespaceSyncRule`\"\u003e`custom_namespace_sync_rule`\u003c/span\u003e above). Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"token":{"type":"string","description":"If you specify \u003cspan pulumi-lang-nodejs=\"`authMethod \" pulumi-lang-dotnet=\"`AuthMethod \" pulumi-lang-go=\"`authMethod \" pulumi-lang-python=\"`auth_method \" pulumi-lang-yaml=\"`authMethod \" pulumi-lang-java=\"`authMethod \"\u003e`auth_method \u003c/span\u003e= \\\"SecurityToken\\\"` in your request to create an AWS integration object, use this property to specify the token (this is typically equivalent to the `AWS_ACCESS_KEY_ID` environment variable).\n"},"useMetricStreamsSync":{"type":"boolean","description":"Enable the use of Amazon Cloudwatch Metric Streams for ingesting metrics.\u003cbr\u003e Note that this requires the inclusion of `\"cloudwatch:ListMetricStreams\"`,`\"cloudwatch:GetMetricStream\"`, `\"cloudwatch:PutMetricStream\"`, `\"cloudwatch:DeleteMetricStream\"`, `\"cloudwatch:StartMetricStreams\"`, `\"cloudwatch:StopMetricStreams\"` and `\"iam:PassRole\"` permissions.\u003cbr\u003e Note you need to deploy additional resources on your AWS account to enable CloudWatch metrics streaming. Select one of the [CloudFormation templates](https://docs.splunk.com/Observability/gdi/get-data-in/connect/aws/aws-cloudformation.html) to deploy all the required resources.\n"}},"type":"object"}},"signalfx:aws/tokenIntegration:TokenIntegration":{"description":"Splunk Observability AWS CloudWatch integrations using security tokens. For help with this integration see [Connect to AWS CloudWatch](https://dev.splunk.com/observability/docs/integrations/aws_integration_overview/).\n\n\u003e **NOTE** When managing integrations, use a session token of an administrator to authenticate the Splunk Observabilit Cloud provider. See [Operations that require a session token for an administrator](https://dev.splunk.com/observability/docs/administration/authtokens#Operations-that-require-a-session-token-for-an-administrator).\n\n\u003e **WARNING** This resource implements a part of a workflow. You must use it with \u003cspan pulumi-lang-nodejs=\"`signalfx.aws.Integration`\" pulumi-lang-dotnet=\"`signalfx.aws.Integration`\" pulumi-lang-go=\"`aws.Integration`\" pulumi-lang-python=\"`aws.Integration`\" pulumi-lang-yaml=\"`signalfx.aws.Integration`\" pulumi-lang-java=\"`signalfx.aws.Integration`\"\u003e`signalfx.aws.Integration`\u003c/span\u003e.\n\n## Example\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\nimport * as signalfx from \"@pulumi/signalfx\";\n\nconst awsMyteamToken = new signalfx.aws.TokenIntegration(\"aws_myteam_token\", {name: \"My AWS integration\"});\n// Make yourself an AWS IAM role here\nconst awsSfxRole = new aws.index.IamRole(\"aws_sfx_role\", {});\nconst awsMyteam = new signalfx.aws.Integration(\"aws_myteam\", {\n    enabled: true,\n    integrationId: awsMyteamToken.id,\n    token: \"put_your_token_here\",\n    key: \"put_your_key_here\",\n    regions: [\"us-east-1\"],\n    pollRate: 300,\n    importCloudWatch: true,\n    enableAwsUsage: true,\n    customNamespaceSyncRules: [{\n        defaultAction: \"Exclude\",\n        filterAction: \"Include\",\n        filterSource: \"filter('code', '200')\",\n        namespace: \"my-custom-namespace\",\n    }],\n    namespaceSyncRules: [{\n        defaultAction: \"Exclude\",\n        filterAction: \"Include\",\n        filterSource: \"filter('code', '200')\",\n        namespace: \"AWS/EC2\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\nimport pulumi_signalfx as signalfx\n\naws_myteam_token = signalfx.aws.TokenIntegration(\"aws_myteam_token\", name=\"My AWS integration\")\n# Make yourself an AWS IAM role here\naws_sfx_role = aws.index.IamRole(\"aws_sfx_role\")\naws_myteam = signalfx.aws.Integration(\"aws_myteam\",\n    enabled=True,\n    integration_id=aws_myteam_token.id,\n    token=\"put_your_token_here\",\n    key=\"put_your_key_here\",\n    regions=[\"us-east-1\"],\n    poll_rate=300,\n    import_cloud_watch=True,\n    enable_aws_usage=True,\n    custom_namespace_sync_rules=[{\n        \"default_action\": \"Exclude\",\n        \"filter_action\": \"Include\",\n        \"filter_source\": \"filter('code', '200')\",\n        \"namespace\": \"my-custom-namespace\",\n    }],\n    namespace_sync_rules=[{\n        \"default_action\": \"Exclude\",\n        \"filter_action\": \"Include\",\n        \"filter_source\": \"filter('code', '200')\",\n        \"namespace\": \"AWS/EC2\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\nusing SignalFx = Pulumi.SignalFx;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var awsMyteamToken = new SignalFx.Aws.TokenIntegration(\"aws_myteam_token\", new()\n    {\n        Name = \"My AWS integration\",\n    });\n\n    // Make yourself an AWS IAM role here\n    var awsSfxRole = new Aws.Index.IamRole(\"aws_sfx_role\");\n\n    var awsMyteam = new SignalFx.Aws.Integration(\"aws_myteam\", new()\n    {\n        Enabled = true,\n        IntegrationId = awsMyteamToken.Id,\n        Token = \"put_your_token_here\",\n        Key = \"put_your_key_here\",\n        Regions = new[]\n        {\n            \"us-east-1\",\n        },\n        PollRate = 300,\n        ImportCloudWatch = true,\n        EnableAwsUsage = true,\n        CustomNamespaceSyncRules = new[]\n        {\n            new SignalFx.Aws.Inputs.IntegrationCustomNamespaceSyncRuleArgs\n            {\n                DefaultAction = \"Exclude\",\n                FilterAction = \"Include\",\n                FilterSource = \"filter('code', '200')\",\n                Namespace = \"my-custom-namespace\",\n            },\n        },\n        NamespaceSyncRules = new[]\n        {\n            new SignalFx.Aws.Inputs.IntegrationNamespaceSyncRuleArgs\n            {\n                DefaultAction = \"Exclude\",\n                FilterAction = \"Include\",\n                FilterSource = \"filter('code', '200')\",\n                Namespace = \"AWS/EC2\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\tgoaws \"github.com/pulumi/pulumi-aws/sdk/v7/go/aws\"\n\t\"github.com/pulumi/pulumi-signalfx/sdk/v7/go/signalfx/aws\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tawsMyteamToken, err := aws.NewTokenIntegration(ctx, \"aws_myteam_token\", \u0026aws.TokenIntegrationArgs{\n\t\t\tName: pulumi.String(\"My AWS integration\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Make yourself an AWS IAM role here\n\t\t_, err = goaws.NewIamRole(ctx, \"aws_sfx_role\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = aws.NewIntegration(ctx, \"aws_myteam\", \u0026aws.IntegrationArgs{\n\t\t\tEnabled:       pulumi.Bool(true),\n\t\t\tIntegrationId: awsMyteamToken.ID(),\n\t\t\tToken:         pulumi.String(\"put_your_token_here\"),\n\t\t\tKey:           pulumi.String(\"put_your_key_here\"),\n\t\t\tRegions: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"us-east-1\"),\n\t\t\t},\n\t\t\tPollRate:         pulumi.Int(300),\n\t\t\tImportCloudWatch: pulumi.Bool(true),\n\t\t\tEnableAwsUsage:   pulumi.Bool(true),\n\t\t\tCustomNamespaceSyncRules: aws.IntegrationCustomNamespaceSyncRuleArray{\n\t\t\t\t\u0026aws.IntegrationCustomNamespaceSyncRuleArgs{\n\t\t\t\t\tDefaultAction: pulumi.String(\"Exclude\"),\n\t\t\t\t\tFilterAction:  pulumi.String(\"Include\"),\n\t\t\t\t\tFilterSource:  pulumi.String(\"filter('code', '200')\"),\n\t\t\t\t\tNamespace:     pulumi.String(\"my-custom-namespace\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tNamespaceSyncRules: aws.IntegrationNamespaceSyncRuleArray{\n\t\t\t\t\u0026aws.IntegrationNamespaceSyncRuleArgs{\n\t\t\t\t\tDefaultAction: pulumi.String(\"Exclude\"),\n\t\t\t\t\tFilterAction:  pulumi.String(\"Include\"),\n\t\t\t\t\tFilterSource:  pulumi.String(\"filter('code', '200')\"),\n\t\t\t\t\tNamespace:     pulumi.String(\"AWS/EC2\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.signalfx.aws.TokenIntegration;\nimport com.pulumi.signalfx.aws.TokenIntegrationArgs;\nimport com.pulumi.aws.IamRole;\nimport com.pulumi.signalfx.aws.Integration;\nimport com.pulumi.signalfx.aws.IntegrationArgs;\nimport com.pulumi.signalfx.aws.inputs.IntegrationCustomNamespaceSyncRuleArgs;\nimport com.pulumi.signalfx.aws.inputs.IntegrationNamespaceSyncRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var awsMyteamToken = new TokenIntegration(\"awsMyteamToken\", TokenIntegrationArgs.builder()\n            .name(\"My AWS integration\")\n            .build());\n\n        // Make yourself an AWS IAM role here\n        var awsSfxRole = new IamRole(\"awsSfxRole\");\n\n        var awsMyteam = new Integration(\"awsMyteam\", IntegrationArgs.builder()\n            .enabled(true)\n            .integrationId(awsMyteamToken.id())\n            .token(\"put_your_token_here\")\n            .key(\"put_your_key_here\")\n            .regions(\"us-east-1\")\n            .pollRate(300)\n            .importCloudWatch(true)\n            .enableAwsUsage(true)\n            .customNamespaceSyncRules(IntegrationCustomNamespaceSyncRuleArgs.builder()\n                .defaultAction(\"Exclude\")\n                .filterAction(\"Include\")\n                .filterSource(\"filter('code', '200')\")\n                .namespace(\"my-custom-namespace\")\n                .build())\n            .namespaceSyncRules(IntegrationNamespaceSyncRuleArgs.builder()\n                .defaultAction(\"Exclude\")\n                .filterAction(\"Include\")\n                .filterSource(\"filter('code', '200')\")\n                .namespace(\"AWS/EC2\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  awsMyteamToken:\n    type: signalfx:aws:TokenIntegration\n    name: aws_myteam_token\n    properties:\n      name: My AWS integration\n  # Make yourself an AWS IAM role here\n  awsSfxRole:\n    type: aws:IamRole\n    name: aws_sfx_role\n  awsMyteam:\n    type: signalfx:aws:Integration\n    name: aws_myteam\n    properties:\n      enabled: true\n      integrationId: ${awsMyteamToken.id}\n      token: put_your_token_here\n      key: put_your_key_here\n      regions:\n        - us-east-1\n      pollRate: 300\n      importCloudWatch: true\n      enableAwsUsage: true\n      customNamespaceSyncRules:\n        - defaultAction: Exclude\n          filterAction: Include\n          filterSource: filter('code', '200')\n          namespace: my-custom-namespace\n      namespaceSyncRules:\n        - defaultAction: Exclude\n          filterAction: Include\n          filterSource: filter('code', '200')\n          namespace: AWS/EC2\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"name":{"type":"string","description":"The name of this integration\n"},"signalfxAwsAccount":{"type":"string","description":"The AWS Account ARN to use with your policies/roles, provided by Splunk Observability Cloud.\n","secret":true},"tokenId":{"type":"string","description":"The SignalFx-generated AWS token to use with an AWS integration.","secret":true}},"required":["name","signalfxAwsAccount","tokenId"],"inputProperties":{"name":{"type":"string","description":"The name of this integration\n","willReplaceOnChanges":true}},"stateInputs":{"description":"Input properties used for looking up and filtering TokenIntegration resources.\n","properties":{"name":{"type":"string","description":"The name of this integration\n","willReplaceOnChanges":true},"signalfxAwsAccount":{"type":"string","description":"The AWS Account ARN to use with your policies/roles, provided by Splunk Observability Cloud.\n","secret":true},"tokenId":{"type":"string","description":"The SignalFx-generated AWS token to use with an AWS integration.","secret":true}},"type":"object"}},"signalfx:azure/integration:Integration":{"description":"Splunk Observability Cloud Azure integrations. For help with this integration see [Monitoring Microsoft Azure](https://docs.splunk.com/observability/en/gdi/get-data-in/connect/azure/azure.html).\n\n\u003e **NOTE** When managing integrations, use a session token of an administrator to authenticate the Splunk Observability Cloud provider. See [Operations that require a session token for an administrator](https://dev.splunk.com/observability/docs/administration/authtokens#Operations-that-require-a-session-token-for-an-administrator). Otherwise you'll receive a 4xx error.\n\n## Example\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as signalfx from \"@pulumi/signalfx\";\n\nconst azureMyteam = new signalfx.azure.Integration(\"azure_myteam\", {\n    name: \"Azure Foo\",\n    enabled: true,\n    environment: \"azure\",\n    pollRate: 300,\n    secretKey: \"XXX\",\n    appId: \"YYY\",\n    tenantId: \"ZZZ\",\n    services: [\"microsoft.sql/servers/elasticpools\"],\n    subscriptions: [\"sub-guid-here\"],\n    additionalServices: [\n        \"some/service\",\n        \"another/service\",\n    ],\n    customNamespacesPerServices: [{\n        service: \"Microsoft.Compute/virtualMachines\",\n        namespaces: [\n            \"monitoringAgent\",\n            \"customNamespace\",\n        ],\n    }],\n    resourceFilterRules: [\n        {\n            filterSource: \"filter('azure_tag_service', 'payment') and (filter('azure_tag_env', 'prod-us') or filter('azure_tag_env', 'prod-eu'))\",\n        },\n        {\n            filterSource: \"filter('azure_tag_service', 'notification') and (filter('azure_tag_env', 'prod-us') or filter('azure_tag_env', 'prod-eu'))\",\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_signalfx as signalfx\n\nazure_myteam = signalfx.azure.Integration(\"azure_myteam\",\n    name=\"Azure Foo\",\n    enabled=True,\n    environment=\"azure\",\n    poll_rate=300,\n    secret_key=\"XXX\",\n    app_id=\"YYY\",\n    tenant_id=\"ZZZ\",\n    services=[\"microsoft.sql/servers/elasticpools\"],\n    subscriptions=[\"sub-guid-here\"],\n    additional_services=[\n        \"some/service\",\n        \"another/service\",\n    ],\n    custom_namespaces_per_services=[{\n        \"service\": \"Microsoft.Compute/virtualMachines\",\n        \"namespaces\": [\n            \"monitoringAgent\",\n            \"customNamespace\",\n        ],\n    }],\n    resource_filter_rules=[\n        {\n            \"filter_source\": \"filter('azure_tag_service', 'payment') and (filter('azure_tag_env', 'prod-us') or filter('azure_tag_env', 'prod-eu'))\",\n        },\n        {\n            \"filter_source\": \"filter('azure_tag_service', 'notification') and (filter('azure_tag_env', 'prod-us') or filter('azure_tag_env', 'prod-eu'))\",\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing SignalFx = Pulumi.SignalFx;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var azureMyteam = new SignalFx.Azure.Integration(\"azure_myteam\", new()\n    {\n        Name = \"Azure Foo\",\n        Enabled = true,\n        Environment = \"azure\",\n        PollRate = 300,\n        SecretKey = \"XXX\",\n        AppId = \"YYY\",\n        TenantId = \"ZZZ\",\n        Services = new[]\n        {\n            \"microsoft.sql/servers/elasticpools\",\n        },\n        Subscriptions = new[]\n        {\n            \"sub-guid-here\",\n        },\n        AdditionalServices = new[]\n        {\n            \"some/service\",\n            \"another/service\",\n        },\n        CustomNamespacesPerServices = new[]\n        {\n            new SignalFx.Azure.Inputs.IntegrationCustomNamespacesPerServiceArgs\n            {\n                Service = \"Microsoft.Compute/virtualMachines\",\n                Namespaces = new[]\n                {\n                    \"monitoringAgent\",\n                    \"customNamespace\",\n                },\n            },\n        },\n        ResourceFilterRules = new[]\n        {\n            new SignalFx.Azure.Inputs.IntegrationResourceFilterRuleArgs\n            {\n                FilterSource = \"filter('azure_tag_service', 'payment') and (filter('azure_tag_env', 'prod-us') or filter('azure_tag_env', 'prod-eu'))\",\n            },\n            new SignalFx.Azure.Inputs.IntegrationResourceFilterRuleArgs\n            {\n                FilterSource = \"filter('azure_tag_service', 'notification') and (filter('azure_tag_env', 'prod-us') or filter('azure_tag_env', 'prod-eu'))\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-signalfx/sdk/v7/go/signalfx/azure\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := azure.NewIntegration(ctx, \"azure_myteam\", \u0026azure.IntegrationArgs{\n\t\t\tName:        pulumi.String(\"Azure Foo\"),\n\t\t\tEnabled:     pulumi.Bool(true),\n\t\t\tEnvironment: pulumi.String(\"azure\"),\n\t\t\tPollRate:    pulumi.Int(300),\n\t\t\tSecretKey:   pulumi.String(\"XXX\"),\n\t\t\tAppId:       pulumi.String(\"YYY\"),\n\t\t\tTenantId:    pulumi.String(\"ZZZ\"),\n\t\t\tServices: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"microsoft.sql/servers/elasticpools\"),\n\t\t\t},\n\t\t\tSubscriptions: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"sub-guid-here\"),\n\t\t\t},\n\t\t\tAdditionalServices: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"some/service\"),\n\t\t\t\tpulumi.String(\"another/service\"),\n\t\t\t},\n\t\t\tCustomNamespacesPerServices: azure.IntegrationCustomNamespacesPerServiceArray{\n\t\t\t\t\u0026azure.IntegrationCustomNamespacesPerServiceArgs{\n\t\t\t\t\tService: pulumi.String(\"Microsoft.Compute/virtualMachines\"),\n\t\t\t\t\tNamespaces: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"monitoringAgent\"),\n\t\t\t\t\t\tpulumi.String(\"customNamespace\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tResourceFilterRules: azure.IntegrationResourceFilterRuleArray{\n\t\t\t\t\u0026azure.IntegrationResourceFilterRuleArgs{\n\t\t\t\t\tFilterSource: pulumi.String(\"filter('azure_tag_service', 'payment') and (filter('azure_tag_env', 'prod-us') or filter('azure_tag_env', 'prod-eu'))\"),\n\t\t\t\t},\n\t\t\t\t\u0026azure.IntegrationResourceFilterRuleArgs{\n\t\t\t\t\tFilterSource: pulumi.String(\"filter('azure_tag_service', 'notification') and (filter('azure_tag_env', 'prod-us') or filter('azure_tag_env', 'prod-eu'))\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.signalfx.azure.Integration;\nimport com.pulumi.signalfx.azure.IntegrationArgs;\nimport com.pulumi.signalfx.azure.inputs.IntegrationCustomNamespacesPerServiceArgs;\nimport com.pulumi.signalfx.azure.inputs.IntegrationResourceFilterRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var azureMyteam = new Integration(\"azureMyteam\", IntegrationArgs.builder()\n            .name(\"Azure Foo\")\n            .enabled(true)\n            .environment(\"azure\")\n            .pollRate(300)\n            .secretKey(\"XXX\")\n            .appId(\"YYY\")\n            .tenantId(\"ZZZ\")\n            .services(\"microsoft.sql/servers/elasticpools\")\n            .subscriptions(\"sub-guid-here\")\n            .additionalServices(            \n                \"some/service\",\n                \"another/service\")\n            .customNamespacesPerServices(IntegrationCustomNamespacesPerServiceArgs.builder()\n                .service(\"Microsoft.Compute/virtualMachines\")\n                .namespaces(                \n                    \"monitoringAgent\",\n                    \"customNamespace\")\n                .build())\n            .resourceFilterRules(            \n                IntegrationResourceFilterRuleArgs.builder()\n                    .filterSource(\"filter('azure_tag_service', 'payment') and (filter('azure_tag_env', 'prod-us') or filter('azure_tag_env', 'prod-eu'))\")\n                    .build(),\n                IntegrationResourceFilterRuleArgs.builder()\n                    .filterSource(\"filter('azure_tag_service', 'notification') and (filter('azure_tag_env', 'prod-us') or filter('azure_tag_env', 'prod-eu'))\")\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  azureMyteam:\n    type: signalfx:azure:Integration\n    name: azure_myteam\n    properties:\n      name: Azure Foo\n      enabled: true\n      environment: azure\n      pollRate: 300\n      secretKey: XXX\n      appId: YYY\n      tenantId: ZZZ\n      services:\n        - microsoft.sql/servers/elasticpools\n      subscriptions:\n        - sub-guid-here\n      additionalServices:\n        - some/service\n        - another/service\n      customNamespacesPerServices:\n        - service: Microsoft.Compute/virtualMachines\n          namespaces:\n            - monitoringAgent\n            - customNamespace\n      resourceFilterRules:\n        - filterSource: filter('azure_tag_service', 'payment') and (filter('azure_tag_env', 'prod-us') or filter('azure_tag_env', 'prod-eu'))\n        - filterSource: filter('azure_tag_service', 'notification') and (filter('azure_tag_env', 'prod-us') or filter('azure_tag_env', 'prod-eu'))\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"additionalServices":{"type":"array","items":{"type":"string"},"description":"Additional Azure resource types that you want to sync with Observability Cloud."},"appId":{"type":"string","description":"Azure application ID for the Splunk Observability Cloud app. To learn how to get this ID, see the topic [Connect to Microsoft Azure](https://docs.splunk.com/observability/en/gdi/get-data-in/connect/azure/azure.html) in the product documentation.\n","secret":true},"customNamespacesPerServices":{"type":"array","items":{"$ref":"#/types/signalfx:azure/IntegrationCustomNamespacesPerService:IntegrationCustomNamespacesPerService"},"description":"Allows for more fine-grained control of syncing of custom namespaces, should the boolean convenience parameter \u003cspan pulumi-lang-nodejs=\"`syncGuestOsNamespaces`\" pulumi-lang-dotnet=\"`SyncGuestOsNamespaces`\" pulumi-lang-go=\"`syncGuestOsNamespaces`\" pulumi-lang-python=\"`sync_guest_os_namespaces`\" pulumi-lang-yaml=\"`syncGuestOsNamespaces`\" pulumi-lang-java=\"`syncGuestOsNamespaces`\"\u003e`sync_guest_os_namespaces`\u003c/span\u003e be not enough. The customer may specify a map of services to custom namespaces. If they do so, for each service which is a key in this map, we will attempt to sync metrics from namespaces in the value list in addition to the default namespaces.\n"},"enabled":{"type":"boolean","description":"Whether the integration is enabled.\n"},"environment":{"type":"string","description":"What type of Azure integration this is. The allowed values are `\\\"azure_us_government\\\"` and `\\\"azure\\\"`. Defaults to `\\\"azure\\\"`.\n","secret":true},"importAzureMonitor":{"type":"boolean","description":"If enabled, Splunk Observability Cloud will sync also Azure Monitor data. If disabled, Splunk Observability Cloud will import only metadata. Defaults to true.\n"},"name":{"type":"string","description":"Name of the integration.\n"},"namedToken":{"type":"string","description":"Name of the org token to be used for data ingestion. If not specified then default access token is used.\n"},"pollRate":{"type":"integer","description":"Azure poll rate (in seconds). Value between \u003cspan pulumi-lang-nodejs=\"`60`\" pulumi-lang-dotnet=\"`60`\" pulumi-lang-go=\"`60`\" pulumi-lang-python=\"`60`\" pulumi-lang-yaml=\"`60`\" pulumi-lang-java=\"`60`\"\u003e`60`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`600`\" pulumi-lang-dotnet=\"`600`\" pulumi-lang-go=\"`600`\" pulumi-lang-python=\"`600`\" pulumi-lang-yaml=\"`600`\" pulumi-lang-java=\"`600`\"\u003e`600`\u003c/span\u003e. Default: \u003cspan pulumi-lang-nodejs=\"`300`\" pulumi-lang-dotnet=\"`300`\" pulumi-lang-go=\"`300`\" pulumi-lang-python=\"`300`\" pulumi-lang-yaml=\"`300`\" pulumi-lang-java=\"`300`\"\u003e`300`\u003c/span\u003e.\n"},"resourceFilterRules":{"type":"array","items":{"$ref":"#/types/signalfx:azure/IntegrationResourceFilterRule:IntegrationResourceFilterRule"},"description":"List of rules for filtering Azure resources by their tags.\n"},"secretKey":{"type":"string","description":"Azure secret key that associates the Splunk Observability Cloud app in Azure with the Azure tenant ID. To learn how to get this ID, see the topic [Connect to Microsoft Azure](https://docs.splunk.com/observability/en/gdi/get-data-in/connect/azure/azure.html) in the product documentation.\n","secret":true},"services":{"type":"array","items":{"type":"string"},"description":"List of Microsoft Azure service names for the Azure services you want Splunk Observability Cloud to monitor. Can be an empty list to import data for all supported services. See [Microsoft Azure services](https://docs.splunk.com/Observability/gdi/get-data-in/integrations.html#azure-integrations) for a list of valid values.\n"},"subscriptions":{"type":"array","items":{"type":"string"},"description":"List of Azure subscriptions that Splunk Observability Cloud should monitor.\n"},"syncGuestOsNamespaces":{"type":"boolean","description":"If enabled, Splunk Observability Cloud will try to sync additional namespaces for VMs (including VMs in scale sets): telegraf/mem, telegraf/cpu, azure.vm.windows.guest (these are namespaces recommended by Azure when enabling their Diagnostic Extension). If there are no metrics there, no new datapoints will be ingested. Defaults to false.\n"},"tenantId":{"type":"string","description":"Azure ID of the Azure tenant. To learn how to get this ID, see the topic [Connect to Microsoft Azure](https://docs.splunk.com/observability/en/gdi/get-data-in/connect/azure/azure.html) in the product documentation.\n"},"useBatchApi":{"type":"boolean","description":"If enabled, Splunk Observability Cloud will collect datapoints using Azure Metrics Batch API. Consider this option if you are synchronizing high loads of data and you want to avoid throttling issues. Contrary to the default Metrics List API, Metrics Batch API is paid. Refer to [Azure documentation](https://azure.microsoft.com/en-us/pricing/details/api-management/) for pricing info.\n"}},"required":["appId","enabled","name","secretKey","services","subscriptions","tenantId"],"inputProperties":{"additionalServices":{"type":"array","items":{"type":"string"},"description":"Additional Azure resource types that you want to sync with Observability Cloud."},"appId":{"type":"string","description":"Azure application ID for the Splunk Observability Cloud app. To learn how to get this ID, see the topic [Connect to Microsoft Azure](https://docs.splunk.com/observability/en/gdi/get-data-in/connect/azure/azure.html) in the product documentation.\n","secret":true},"customNamespacesPerServices":{"type":"array","items":{"$ref":"#/types/signalfx:azure/IntegrationCustomNamespacesPerService:IntegrationCustomNamespacesPerService"},"description":"Allows for more fine-grained control of syncing of custom namespaces, should the boolean convenience parameter \u003cspan pulumi-lang-nodejs=\"`syncGuestOsNamespaces`\" pulumi-lang-dotnet=\"`SyncGuestOsNamespaces`\" pulumi-lang-go=\"`syncGuestOsNamespaces`\" pulumi-lang-python=\"`sync_guest_os_namespaces`\" pulumi-lang-yaml=\"`syncGuestOsNamespaces`\" pulumi-lang-java=\"`syncGuestOsNamespaces`\"\u003e`sync_guest_os_namespaces`\u003c/span\u003e be not enough. The customer may specify a map of services to custom namespaces. If they do so, for each service which is a key in this map, we will attempt to sync metrics from namespaces in the value list in addition to the default namespaces.\n"},"enabled":{"type":"boolean","description":"Whether the integration is enabled.\n"},"environment":{"type":"string","description":"What type of Azure integration this is. The allowed values are `\\\"azure_us_government\\\"` and `\\\"azure\\\"`. Defaults to `\\\"azure\\\"`.\n","secret":true},"importAzureMonitor":{"type":"boolean","description":"If enabled, Splunk Observability Cloud will sync also Azure Monitor data. If disabled, Splunk Observability Cloud will import only metadata. Defaults to true.\n"},"name":{"type":"string","description":"Name of the integration.\n"},"namedToken":{"type":"string","description":"Name of the org token to be used for data ingestion. If not specified then default access token is used.\n","willReplaceOnChanges":true},"pollRate":{"type":"integer","description":"Azure poll rate (in seconds). Value between \u003cspan pulumi-lang-nodejs=\"`60`\" pulumi-lang-dotnet=\"`60`\" pulumi-lang-go=\"`60`\" pulumi-lang-python=\"`60`\" pulumi-lang-yaml=\"`60`\" pulumi-lang-java=\"`60`\"\u003e`60`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`600`\" pulumi-lang-dotnet=\"`600`\" pulumi-lang-go=\"`600`\" pulumi-lang-python=\"`600`\" pulumi-lang-yaml=\"`600`\" pulumi-lang-java=\"`600`\"\u003e`600`\u003c/span\u003e. Default: \u003cspan pulumi-lang-nodejs=\"`300`\" pulumi-lang-dotnet=\"`300`\" pulumi-lang-go=\"`300`\" pulumi-lang-python=\"`300`\" pulumi-lang-yaml=\"`300`\" pulumi-lang-java=\"`300`\"\u003e`300`\u003c/span\u003e.\n"},"resourceFilterRules":{"type":"array","items":{"$ref":"#/types/signalfx:azure/IntegrationResourceFilterRule:IntegrationResourceFilterRule"},"description":"List of rules for filtering Azure resources by their tags.\n"},"secretKey":{"type":"string","description":"Azure secret key that associates the Splunk Observability Cloud app in Azure with the Azure tenant ID. To learn how to get this ID, see the topic [Connect to Microsoft Azure](https://docs.splunk.com/observability/en/gdi/get-data-in/connect/azure/azure.html) in the product documentation.\n","secret":true},"services":{"type":"array","items":{"type":"string"},"description":"List of Microsoft Azure service names for the Azure services you want Splunk Observability Cloud to monitor. Can be an empty list to import data for all supported services. See [Microsoft Azure services](https://docs.splunk.com/Observability/gdi/get-data-in/integrations.html#azure-integrations) for a list of valid values.\n"},"subscriptions":{"type":"array","items":{"type":"string"},"description":"List of Azure subscriptions that Splunk Observability Cloud should monitor.\n"},"syncGuestOsNamespaces":{"type":"boolean","description":"If enabled, Splunk Observability Cloud will try to sync additional namespaces for VMs (including VMs in scale sets): telegraf/mem, telegraf/cpu, azure.vm.windows.guest (these are namespaces recommended by Azure when enabling their Diagnostic Extension). If there are no metrics there, no new datapoints will be ingested. Defaults to false.\n"},"tenantId":{"type":"string","description":"Azure ID of the Azure tenant. To learn how to get this ID, see the topic [Connect to Microsoft Azure](https://docs.splunk.com/observability/en/gdi/get-data-in/connect/azure/azure.html) in the product documentation.\n"},"useBatchApi":{"type":"boolean","description":"If enabled, Splunk Observability Cloud will collect datapoints using Azure Metrics Batch API. Consider this option if you are synchronizing high loads of data and you want to avoid throttling issues. Contrary to the default Metrics List API, Metrics Batch API is paid. Refer to [Azure documentation](https://azure.microsoft.com/en-us/pricing/details/api-management/) for pricing info.\n"}},"requiredInputs":["appId","enabled","secretKey","services","subscriptions","tenantId"],"stateInputs":{"description":"Input properties used for looking up and filtering Integration resources.\n","properties":{"additionalServices":{"type":"array","items":{"type":"string"},"description":"Additional Azure resource types that you want to sync with Observability Cloud."},"appId":{"type":"string","description":"Azure application ID for the Splunk Observability Cloud app. To learn how to get this ID, see the topic [Connect to Microsoft Azure](https://docs.splunk.com/observability/en/gdi/get-data-in/connect/azure/azure.html) in the product documentation.\n","secret":true},"customNamespacesPerServices":{"type":"array","items":{"$ref":"#/types/signalfx:azure/IntegrationCustomNamespacesPerService:IntegrationCustomNamespacesPerService"},"description":"Allows for more fine-grained control of syncing of custom namespaces, should the boolean convenience parameter \u003cspan pulumi-lang-nodejs=\"`syncGuestOsNamespaces`\" pulumi-lang-dotnet=\"`SyncGuestOsNamespaces`\" pulumi-lang-go=\"`syncGuestOsNamespaces`\" pulumi-lang-python=\"`sync_guest_os_namespaces`\" pulumi-lang-yaml=\"`syncGuestOsNamespaces`\" pulumi-lang-java=\"`syncGuestOsNamespaces`\"\u003e`sync_guest_os_namespaces`\u003c/span\u003e be not enough. The customer may specify a map of services to custom namespaces. If they do so, for each service which is a key in this map, we will attempt to sync metrics from namespaces in the value list in addition to the default namespaces.\n"},"enabled":{"type":"boolean","description":"Whether the integration is enabled.\n"},"environment":{"type":"string","description":"What type of Azure integration this is. The allowed values are `\\\"azure_us_government\\\"` and `\\\"azure\\\"`. Defaults to `\\\"azure\\\"`.\n","secret":true},"importAzureMonitor":{"type":"boolean","description":"If enabled, Splunk Observability Cloud will sync also Azure Monitor data. If disabled, Splunk Observability Cloud will import only metadata. Defaults to true.\n"},"name":{"type":"string","description":"Name of the integration.\n"},"namedToken":{"type":"string","description":"Name of the org token to be used for data ingestion. If not specified then default access token is used.\n","willReplaceOnChanges":true},"pollRate":{"type":"integer","description":"Azure poll rate (in seconds). Value between \u003cspan pulumi-lang-nodejs=\"`60`\" pulumi-lang-dotnet=\"`60`\" pulumi-lang-go=\"`60`\" pulumi-lang-python=\"`60`\" pulumi-lang-yaml=\"`60`\" pulumi-lang-java=\"`60`\"\u003e`60`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`600`\" pulumi-lang-dotnet=\"`600`\" pulumi-lang-go=\"`600`\" pulumi-lang-python=\"`600`\" pulumi-lang-yaml=\"`600`\" pulumi-lang-java=\"`600`\"\u003e`600`\u003c/span\u003e. Default: \u003cspan pulumi-lang-nodejs=\"`300`\" pulumi-lang-dotnet=\"`300`\" pulumi-lang-go=\"`300`\" pulumi-lang-python=\"`300`\" pulumi-lang-yaml=\"`300`\" pulumi-lang-java=\"`300`\"\u003e`300`\u003c/span\u003e.\n"},"resourceFilterRules":{"type":"array","items":{"$ref":"#/types/signalfx:azure/IntegrationResourceFilterRule:IntegrationResourceFilterRule"},"description":"List of rules for filtering Azure resources by their tags.\n"},"secretKey":{"type":"string","description":"Azure secret key that associates the Splunk Observability Cloud app in Azure with the Azure tenant ID. To learn how to get this ID, see the topic [Connect to Microsoft Azure](https://docs.splunk.com/observability/en/gdi/get-data-in/connect/azure/azure.html) in the product documentation.\n","secret":true},"services":{"type":"array","items":{"type":"string"},"description":"List of Microsoft Azure service names for the Azure services you want Splunk Observability Cloud to monitor. Can be an empty list to import data for all supported services. See [Microsoft Azure services](https://docs.splunk.com/Observability/gdi/get-data-in/integrations.html#azure-integrations) for a list of valid values.\n"},"subscriptions":{"type":"array","items":{"type":"string"},"description":"List of Azure subscriptions that Splunk Observability Cloud should monitor.\n"},"syncGuestOsNamespaces":{"type":"boolean","description":"If enabled, Splunk Observability Cloud will try to sync additional namespaces for VMs (including VMs in scale sets): telegraf/mem, telegraf/cpu, azure.vm.windows.guest (these are namespaces recommended by Azure when enabling their Diagnostic Extension). If there are no metrics there, no new datapoints will be ingested. Defaults to false.\n"},"tenantId":{"type":"string","description":"Azure ID of the Azure tenant. To learn how to get this ID, see the topic [Connect to Microsoft Azure](https://docs.splunk.com/observability/en/gdi/get-data-in/connect/azure/azure.html) in the product documentation.\n"},"useBatchApi":{"type":"boolean","description":"If enabled, Splunk Observability Cloud will collect datapoints using Azure Metrics Batch API. Consider this option if you are synchronizing high loads of data and you want to avoid throttling issues. Contrary to the default Metrics List API, Metrics Batch API is paid. Refer to [Azure documentation](https://azure.microsoft.com/en-us/pricing/details/api-management/) for pricing info.\n"}},"type":"object"}},"signalfx:gcp/integration:Integration":{"description":"Splunk Observability Cloud GCP Integration.\n\n\u003e **NOTE** When managing integrations, use a session token of an administrator to authenticate the Splunk Observability Cloud provider. See [Operations that require a session token for an administrator](https://dev.splunk.com/observability/docs/administration/authtokens#Operations-that-require-a-session-token-for-an-administrator). Otherwise you'll receive a 4xx error.\n\n## Example\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as signalfx from \"@pulumi/signalfx\";\nimport * as std from \"@pulumi/std\";\n\nconst gcpMyteam = new signalfx.gcp.Integration(\"gcp_myteam\", {\n    name: \"GCP - My Team\",\n    enabled: true,\n    pollRate: 300,\n    services: [\"compute\"],\n    customMetricTypeDomains: [\"istio.io\"],\n    importGcpMetrics: true,\n    projectServiceKeys: [\n        {\n            projectId: \"gcp_project_id_1\",\n            projectKey: std.index.file({\n                input: \"/path/to/gcp_credentials_1.json\",\n            }).result,\n        },\n        {\n            projectId: \"gcp_project_id_2\",\n            projectKey: std.index.file({\n                input: \"/path/to/gcp_credentials_2.json\",\n            }).result,\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_signalfx as signalfx\nimport pulumi_std as std\n\ngcp_myteam = signalfx.gcp.Integration(\"gcp_myteam\",\n    name=\"GCP - My Team\",\n    enabled=True,\n    poll_rate=300,\n    services=[\"compute\"],\n    custom_metric_type_domains=[\"istio.io\"],\n    import_gcp_metrics=True,\n    project_service_keys=[\n        {\n            \"project_id\": \"gcp_project_id_1\",\n            \"project_key\": std.index.file(input=\"/path/to/gcp_credentials_1.json\")[\"result\"],\n        },\n        {\n            \"project_id\": \"gcp_project_id_2\",\n            \"project_key\": std.index.file(input=\"/path/to/gcp_credentials_2.json\")[\"result\"],\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing SignalFx = Pulumi.SignalFx;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var gcpMyteam = new SignalFx.Gcp.Integration(\"gcp_myteam\", new()\n    {\n        Name = \"GCP - My Team\",\n        Enabled = true,\n        PollRate = 300,\n        Services = new[]\n        {\n            \"compute\",\n        },\n        CustomMetricTypeDomains = new[]\n        {\n            \"istio.io\",\n        },\n        ImportGcpMetrics = true,\n        ProjectServiceKeys = new[]\n        {\n            new SignalFx.Gcp.Inputs.IntegrationProjectServiceKeyArgs\n            {\n                ProjectId = \"gcp_project_id_1\",\n                ProjectKey = Std.Index.File.Invoke(new()\n                {\n                    Input = \"/path/to/gcp_credentials_1.json\",\n                }).Result,\n            },\n            new SignalFx.Gcp.Inputs.IntegrationProjectServiceKeyArgs\n            {\n                ProjectId = \"gcp_project_id_2\",\n                ProjectKey = Std.Index.File.Invoke(new()\n                {\n                    Input = \"/path/to/gcp_credentials_2.json\",\n                }).Result,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-signalfx/sdk/v7/go/signalfx/gcp\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tinvokeFile, err := std.File(ctx, map[string]interface{}{\n\t\t\t\"input\": \"/path/to/gcp_credentials_1.json\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeFile1, err := std.File(ctx, map[string]interface{}{\n\t\t\t\"input\": \"/path/to/gcp_credentials_2.json\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = gcp.NewIntegration(ctx, \"gcp_myteam\", \u0026gcp.IntegrationArgs{\n\t\t\tName:     pulumi.String(\"GCP - My Team\"),\n\t\t\tEnabled:  pulumi.Bool(true),\n\t\t\tPollRate: pulumi.Int(300),\n\t\t\tServices: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"compute\"),\n\t\t\t},\n\t\t\tCustomMetricTypeDomains: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"istio.io\"),\n\t\t\t},\n\t\t\tImportGcpMetrics: pulumi.Bool(true),\n\t\t\tProjectServiceKeys: gcp.IntegrationProjectServiceKeyArray{\n\t\t\t\t\u0026gcp.IntegrationProjectServiceKeyArgs{\n\t\t\t\t\tProjectId:  pulumi.String(\"gcp_project_id_1\"),\n\t\t\t\t\tProjectKey: invokeFile.Result,\n\t\t\t\t},\n\t\t\t\t\u0026gcp.IntegrationProjectServiceKeyArgs{\n\t\t\t\t\tProjectId:  pulumi.String(\"gcp_project_id_2\"),\n\t\t\t\t\tProjectKey: invokeFile1.Result,\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.signalfx.gcp.Integration;\nimport com.pulumi.signalfx.gcp.IntegrationArgs;\nimport com.pulumi.signalfx.gcp.inputs.IntegrationProjectServiceKeyArgs;\nimport com.pulumi.std.StdFunctions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var gcpMyteam = new Integration(\"gcpMyteam\", IntegrationArgs.builder()\n            .name(\"GCP - My Team\")\n            .enabled(true)\n            .pollRate(300)\n            .services(\"compute\")\n            .customMetricTypeDomains(\"istio.io\")\n            .importGcpMetrics(true)\n            .projectServiceKeys(            \n                IntegrationProjectServiceKeyArgs.builder()\n                    .projectId(\"gcp_project_id_1\")\n                    .projectKey(StdFunctions.file(Map.of(\"input\", \"/path/to/gcp_credentials_1.json\")).result())\n                    .build(),\n                IntegrationProjectServiceKeyArgs.builder()\n                    .projectId(\"gcp_project_id_2\")\n                    .projectKey(StdFunctions.file(Map.of(\"input\", \"/path/to/gcp_credentials_2.json\")).result())\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  gcpMyteam:\n    type: signalfx:gcp:Integration\n    name: gcp_myteam\n    properties:\n      name: GCP - My Team\n      enabled: true\n      pollRate: 300\n      services:\n        - compute\n      customMetricTypeDomains:\n        - istio.io\n      importGcpMetrics: true\n      projectServiceKeys:\n        - projectId: gcp_project_id_1\n          projectKey:\n            fn::invoke:\n              function: std:file\n              arguments:\n                input: /path/to/gcp_credentials_1.json\n              return: result\n        - projectId: gcp_project_id_2\n          projectKey:\n            fn::invoke:\n              function: std:file\n              arguments:\n                input: /path/to/gcp_credentials_2.json\n              return: result\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"authMethod":{"type":"string","description":"Authentication method to use in this integration. If empty, Splunk Observability backend defaults to SERVICE_ACCOUNT_KEY"},"customMetricTypeDomains":{"type":"array","items":{"type":"string"},"description":"List of additional GCP service domain names that Splunk Observability Cloud will monitor. See [Custom Metric Type Domains documentation](https://dev.splunk.com/observability/docs/integrations/gcp_integration_overview/#Custom-metric-type-domains)\n"},"enabled":{"type":"boolean","description":"Whether the integration is enabled.\n"},"excludeGceInstancesWithLabels":{"type":"array","items":{"type":"string"},"description":"List of label keys. GCP Compute Engine instances with any of these labels applied are excluded from metric sync. Requires the `compute.instances.list` permission on the project’s service account.\n"},"importGcpMetrics":{"type":"boolean","description":"If enabled, Splunk Observability Cloud will sync also Google Cloud Monitoring data. If disabled, Splunk Observability Cloud will import only metadata. Defaults to true.\n"},"includeLists":{"type":"array","items":{"type":"string"},"description":"[Compute Metadata Include List](https://dev.splunk.com/observability/docs/integrations/gcp_integration_overview/).\n"},"name":{"type":"string","description":"Name of the integration.\n"},"namedToken":{"type":"string","description":"Name of the org token to be used for data ingestion. If not specified then default access token is used.\n"},"pollRate":{"type":"integer","description":"GCP integration poll rate (in seconds). Value between \u003cspan pulumi-lang-nodejs=\"`60`\" pulumi-lang-dotnet=\"`60`\" pulumi-lang-go=\"`60`\" pulumi-lang-python=\"`60`\" pulumi-lang-yaml=\"`60`\" pulumi-lang-java=\"`60`\"\u003e`60`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`600`\" pulumi-lang-dotnet=\"`600`\" pulumi-lang-go=\"`600`\" pulumi-lang-python=\"`600`\" pulumi-lang-yaml=\"`600`\" pulumi-lang-java=\"`600`\"\u003e`600`\u003c/span\u003e. Default: \u003cspan pulumi-lang-nodejs=\"`300`\" pulumi-lang-dotnet=\"`300`\" pulumi-lang-go=\"`300`\" pulumi-lang-python=\"`300`\" pulumi-lang-yaml=\"`300`\" pulumi-lang-java=\"`300`\"\u003e`300`\u003c/span\u003e.\n"},"projectServiceKeys":{"type":"array","items":{"$ref":"#/types/signalfx:gcp/IntegrationProjectServiceKey:IntegrationProjectServiceKey"},"description":"GCP projects to add.\n","secret":true},"projectWifConfigs":{"type":"array","items":{"$ref":"#/types/signalfx:gcp/IntegrationProjectWifConfig:IntegrationProjectWifConfig"},"description":"Please use \u003cspan pulumi-lang-nodejs=\"`workloadIdentityFederationConfig`\" pulumi-lang-dotnet=\"`WorkloadIdentityFederationConfig`\" pulumi-lang-go=\"`workloadIdentityFederationConfig`\" pulumi-lang-python=\"`workload_identity_federation_config`\" pulumi-lang-yaml=\"`workloadIdentityFederationConfig`\" pulumi-lang-java=\"`workloadIdentityFederationConfig`\"\u003e`workload_identity_federation_config`\u003c/span\u003e with \u003cspan pulumi-lang-nodejs=\"`projects`\" pulumi-lang-dotnet=\"`Projects`\" pulumi-lang-go=\"`projects`\" pulumi-lang-python=\"`projects`\" pulumi-lang-yaml=\"`projects`\" pulumi-lang-java=\"`projects`\"\u003e`projects`\u003c/span\u003e instead.\n","deprecationMessage":"Please use\u003cspan pulumi-lang-nodejs=\" workloadIdentityFederationConfig \" pulumi-lang-dotnet=\" WorkloadIdentityFederationConfig \" pulumi-lang-go=\" workloadIdentityFederationConfig \" pulumi-lang-python=\" workload_identity_federation_config \" pulumi-lang-yaml=\" workloadIdentityFederationConfig \" pulumi-lang-java=\" workloadIdentityFederationConfig \"\u003e workload_identity_federation_config \u003c/span\u003ewith projects instead"},"projects":{"$ref":"#/types/signalfx:gcp/IntegrationProjects:IntegrationProjects","description":"Object comprised of \u003cspan pulumi-lang-nodejs=\"`syncMode`\" pulumi-lang-dotnet=\"`SyncMode`\" pulumi-lang-go=\"`syncMode`\" pulumi-lang-python=\"`sync_mode`\" pulumi-lang-yaml=\"`syncMode`\" pulumi-lang-java=\"`syncMode`\"\u003e`sync_mode`\u003c/span\u003e and optional \u003cspan pulumi-lang-nodejs=\"`selectedProjectIds`\" pulumi-lang-dotnet=\"`SelectedProjectIds`\" pulumi-lang-go=\"`selectedProjectIds`\" pulumi-lang-python=\"`selected_project_ids`\" pulumi-lang-yaml=\"`selectedProjectIds`\" pulumi-lang-java=\"`selectedProjectIds`\"\u003e`selected_project_ids`\u003c/span\u003e. If you use \u003cspan pulumi-lang-nodejs=\"`syncMode`\" pulumi-lang-dotnet=\"`SyncMode`\" pulumi-lang-go=\"`syncMode`\" pulumi-lang-python=\"`sync_mode`\" pulumi-lang-yaml=\"`syncMode`\" pulumi-lang-java=\"`syncMode`\"\u003e`sync_mode`\u003c/span\u003e `ALL_REACHABLE` then Splunk Observability Cloud will automatically discover GCP projects that the provided WIF principal has permissions to query. If \u003cspan pulumi-lang-nodejs=\"`syncMode`\" pulumi-lang-dotnet=\"`SyncMode`\" pulumi-lang-go=\"`syncMode`\" pulumi-lang-python=\"`sync_mode`\" pulumi-lang-yaml=\"`syncMode`\" pulumi-lang-java=\"`syncMode`\"\u003e`sync_mode`\u003c/span\u003e is `SELECTED`, you need to provide a list of project ids in the \u003cspan pulumi-lang-nodejs=\"`selectedProjectIds`\" pulumi-lang-dotnet=\"`SelectedProjectIds`\" pulumi-lang-go=\"`selectedProjectIds`\" pulumi-lang-python=\"`selected_project_ids`\" pulumi-lang-yaml=\"`selectedProjectIds`\" pulumi-lang-java=\"`selectedProjectIds`\"\u003e`selected_project_ids`\u003c/span\u003e field.\n"},"services":{"type":"array","items":{"type":"string"},"description":"GCP service metrics to import. Can be an empty list, or not included, to import 'All services'. See [Google Cloud Platform services](https://docs.splunk.com/Observability/gdi/get-data-in/integrations.html#google-cloud-platform-services) for a list of valid values.\n"},"useMetricSourceProjectForQuota":{"type":"boolean","description":"When this value is set to true Observability Cloud will force usage of a quota from the project where metrics are stored. For this to work the service account provided for the project needs to be provided with serviceusage.services.use permission or Service Usage Consumer role in this project. When set to false default quota settings are used.\n"},"wifSplunkIdentity":{"type":"object","additionalProperties":{"type":"string"},"description":"The Splunk Observability GCP identity to include in GCP WIF provider definition."},"workloadIdentityFederationConfig":{"type":"string","description":"Your Workload Identity Federation config. To easily set up WIF you can use helpers provided in the\u003cspan pulumi-lang-nodejs=\" gcpWorkloadIdentityFederation \" pulumi-lang-dotnet=\" GcpWorkloadIdentityFederation \" pulumi-lang-go=\" gcpWorkloadIdentityFederation \" pulumi-lang-python=\" gcp_workload_identity_federation \" pulumi-lang-yaml=\" gcpWorkloadIdentityFederation \" pulumi-lang-java=\" gcpWorkloadIdentityFederation \"\u003e gcp_workload_identity_federation \u003c/span\u003erepository.\n"}},"required":["enabled","name","wifSplunkIdentity"],"inputProperties":{"authMethod":{"type":"string","description":"Authentication method to use in this integration. If empty, Splunk Observability backend defaults to SERVICE_ACCOUNT_KEY"},"customMetricTypeDomains":{"type":"array","items":{"type":"string"},"description":"List of additional GCP service domain names that Splunk Observability Cloud will monitor. See [Custom Metric Type Domains documentation](https://dev.splunk.com/observability/docs/integrations/gcp_integration_overview/#Custom-metric-type-domains)\n"},"enabled":{"type":"boolean","description":"Whether the integration is enabled.\n"},"excludeGceInstancesWithLabels":{"type":"array","items":{"type":"string"},"description":"List of label keys. GCP Compute Engine instances with any of these labels applied are excluded from metric sync. Requires the `compute.instances.list` permission on the project’s service account.\n"},"importGcpMetrics":{"type":"boolean","description":"If enabled, Splunk Observability Cloud will sync also Google Cloud Monitoring data. If disabled, Splunk Observability Cloud will import only metadata. Defaults to true.\n"},"includeLists":{"type":"array","items":{"type":"string"},"description":"[Compute Metadata Include List](https://dev.splunk.com/observability/docs/integrations/gcp_integration_overview/).\n"},"name":{"type":"string","description":"Name of the integration.\n"},"namedToken":{"type":"string","description":"Name of the org token to be used for data ingestion. If not specified then default access token is used.\n","willReplaceOnChanges":true},"pollRate":{"type":"integer","description":"GCP integration poll rate (in seconds). Value between \u003cspan pulumi-lang-nodejs=\"`60`\" pulumi-lang-dotnet=\"`60`\" pulumi-lang-go=\"`60`\" pulumi-lang-python=\"`60`\" pulumi-lang-yaml=\"`60`\" pulumi-lang-java=\"`60`\"\u003e`60`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`600`\" pulumi-lang-dotnet=\"`600`\" pulumi-lang-go=\"`600`\" pulumi-lang-python=\"`600`\" pulumi-lang-yaml=\"`600`\" pulumi-lang-java=\"`600`\"\u003e`600`\u003c/span\u003e. Default: \u003cspan pulumi-lang-nodejs=\"`300`\" pulumi-lang-dotnet=\"`300`\" pulumi-lang-go=\"`300`\" pulumi-lang-python=\"`300`\" pulumi-lang-yaml=\"`300`\" pulumi-lang-java=\"`300`\"\u003e`300`\u003c/span\u003e.\n"},"projectServiceKeys":{"type":"array","items":{"$ref":"#/types/signalfx:gcp/IntegrationProjectServiceKey:IntegrationProjectServiceKey"},"description":"GCP projects to add.\n","secret":true},"projectWifConfigs":{"type":"array","items":{"$ref":"#/types/signalfx:gcp/IntegrationProjectWifConfig:IntegrationProjectWifConfig"},"description":"Please use \u003cspan pulumi-lang-nodejs=\"`workloadIdentityFederationConfig`\" pulumi-lang-dotnet=\"`WorkloadIdentityFederationConfig`\" pulumi-lang-go=\"`workloadIdentityFederationConfig`\" pulumi-lang-python=\"`workload_identity_federation_config`\" pulumi-lang-yaml=\"`workloadIdentityFederationConfig`\" pulumi-lang-java=\"`workloadIdentityFederationConfig`\"\u003e`workload_identity_federation_config`\u003c/span\u003e with \u003cspan pulumi-lang-nodejs=\"`projects`\" pulumi-lang-dotnet=\"`Projects`\" pulumi-lang-go=\"`projects`\" pulumi-lang-python=\"`projects`\" pulumi-lang-yaml=\"`projects`\" pulumi-lang-java=\"`projects`\"\u003e`projects`\u003c/span\u003e instead.\n","deprecationMessage":"Please use\u003cspan pulumi-lang-nodejs=\" workloadIdentityFederationConfig \" pulumi-lang-dotnet=\" WorkloadIdentityFederationConfig \" pulumi-lang-go=\" workloadIdentityFederationConfig \" pulumi-lang-python=\" workload_identity_federation_config \" pulumi-lang-yaml=\" workloadIdentityFederationConfig \" pulumi-lang-java=\" workloadIdentityFederationConfig \"\u003e workload_identity_federation_config \u003c/span\u003ewith projects instead"},"projects":{"$ref":"#/types/signalfx:gcp/IntegrationProjects:IntegrationProjects","description":"Object comprised of \u003cspan pulumi-lang-nodejs=\"`syncMode`\" pulumi-lang-dotnet=\"`SyncMode`\" pulumi-lang-go=\"`syncMode`\" pulumi-lang-python=\"`sync_mode`\" pulumi-lang-yaml=\"`syncMode`\" pulumi-lang-java=\"`syncMode`\"\u003e`sync_mode`\u003c/span\u003e and optional \u003cspan pulumi-lang-nodejs=\"`selectedProjectIds`\" pulumi-lang-dotnet=\"`SelectedProjectIds`\" pulumi-lang-go=\"`selectedProjectIds`\" pulumi-lang-python=\"`selected_project_ids`\" pulumi-lang-yaml=\"`selectedProjectIds`\" pulumi-lang-java=\"`selectedProjectIds`\"\u003e`selected_project_ids`\u003c/span\u003e. If you use \u003cspan pulumi-lang-nodejs=\"`syncMode`\" pulumi-lang-dotnet=\"`SyncMode`\" pulumi-lang-go=\"`syncMode`\" pulumi-lang-python=\"`sync_mode`\" pulumi-lang-yaml=\"`syncMode`\" pulumi-lang-java=\"`syncMode`\"\u003e`sync_mode`\u003c/span\u003e `ALL_REACHABLE` then Splunk Observability Cloud will automatically discover GCP projects that the provided WIF principal has permissions to query. If \u003cspan pulumi-lang-nodejs=\"`syncMode`\" pulumi-lang-dotnet=\"`SyncMode`\" pulumi-lang-go=\"`syncMode`\" pulumi-lang-python=\"`sync_mode`\" pulumi-lang-yaml=\"`syncMode`\" pulumi-lang-java=\"`syncMode`\"\u003e`sync_mode`\u003c/span\u003e is `SELECTED`, you need to provide a list of project ids in the \u003cspan pulumi-lang-nodejs=\"`selectedProjectIds`\" pulumi-lang-dotnet=\"`SelectedProjectIds`\" pulumi-lang-go=\"`selectedProjectIds`\" pulumi-lang-python=\"`selected_project_ids`\" pulumi-lang-yaml=\"`selectedProjectIds`\" pulumi-lang-java=\"`selectedProjectIds`\"\u003e`selected_project_ids`\u003c/span\u003e field.\n"},"services":{"type":"array","items":{"type":"string"},"description":"GCP service metrics to import. Can be an empty list, or not included, to import 'All services'. See [Google Cloud Platform services](https://docs.splunk.com/Observability/gdi/get-data-in/integrations.html#google-cloud-platform-services) for a list of valid values.\n"},"useMetricSourceProjectForQuota":{"type":"boolean","description":"When this value is set to true Observability Cloud will force usage of a quota from the project where metrics are stored. For this to work the service account provided for the project needs to be provided with serviceusage.services.use permission or Service Usage Consumer role in this project. When set to false default quota settings are used.\n"},"wifSplunkIdentity":{"type":"object","additionalProperties":{"type":"string"},"description":"The Splunk Observability GCP identity to include in GCP WIF provider definition."},"workloadIdentityFederationConfig":{"type":"string","description":"Your Workload Identity Federation config. To easily set up WIF you can use helpers provided in the\u003cspan pulumi-lang-nodejs=\" gcpWorkloadIdentityFederation \" pulumi-lang-dotnet=\" GcpWorkloadIdentityFederation \" pulumi-lang-go=\" gcpWorkloadIdentityFederation \" pulumi-lang-python=\" gcp_workload_identity_federation \" pulumi-lang-yaml=\" gcpWorkloadIdentityFederation \" pulumi-lang-java=\" gcpWorkloadIdentityFederation \"\u003e gcp_workload_identity_federation \u003c/span\u003erepository.\n"}},"requiredInputs":["enabled"],"stateInputs":{"description":"Input properties used for looking up and filtering Integration resources.\n","properties":{"authMethod":{"type":"string","description":"Authentication method to use in this integration. If empty, Splunk Observability backend defaults to SERVICE_ACCOUNT_KEY"},"customMetricTypeDomains":{"type":"array","items":{"type":"string"},"description":"List of additional GCP service domain names that Splunk Observability Cloud will monitor. See [Custom Metric Type Domains documentation](https://dev.splunk.com/observability/docs/integrations/gcp_integration_overview/#Custom-metric-type-domains)\n"},"enabled":{"type":"boolean","description":"Whether the integration is enabled.\n"},"excludeGceInstancesWithLabels":{"type":"array","items":{"type":"string"},"description":"List of label keys. GCP Compute Engine instances with any of these labels applied are excluded from metric sync. Requires the `compute.instances.list` permission on the project’s service account.\n"},"importGcpMetrics":{"type":"boolean","description":"If enabled, Splunk Observability Cloud will sync also Google Cloud Monitoring data. If disabled, Splunk Observability Cloud will import only metadata. Defaults to true.\n"},"includeLists":{"type":"array","items":{"type":"string"},"description":"[Compute Metadata Include List](https://dev.splunk.com/observability/docs/integrations/gcp_integration_overview/).\n"},"name":{"type":"string","description":"Name of the integration.\n"},"namedToken":{"type":"string","description":"Name of the org token to be used for data ingestion. If not specified then default access token is used.\n","willReplaceOnChanges":true},"pollRate":{"type":"integer","description":"GCP integration poll rate (in seconds). Value between \u003cspan pulumi-lang-nodejs=\"`60`\" pulumi-lang-dotnet=\"`60`\" pulumi-lang-go=\"`60`\" pulumi-lang-python=\"`60`\" pulumi-lang-yaml=\"`60`\" pulumi-lang-java=\"`60`\"\u003e`60`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`600`\" pulumi-lang-dotnet=\"`600`\" pulumi-lang-go=\"`600`\" pulumi-lang-python=\"`600`\" pulumi-lang-yaml=\"`600`\" pulumi-lang-java=\"`600`\"\u003e`600`\u003c/span\u003e. Default: \u003cspan pulumi-lang-nodejs=\"`300`\" pulumi-lang-dotnet=\"`300`\" pulumi-lang-go=\"`300`\" pulumi-lang-python=\"`300`\" pulumi-lang-yaml=\"`300`\" pulumi-lang-java=\"`300`\"\u003e`300`\u003c/span\u003e.\n"},"projectServiceKeys":{"type":"array","items":{"$ref":"#/types/signalfx:gcp/IntegrationProjectServiceKey:IntegrationProjectServiceKey"},"description":"GCP projects to add.\n","secret":true},"projectWifConfigs":{"type":"array","items":{"$ref":"#/types/signalfx:gcp/IntegrationProjectWifConfig:IntegrationProjectWifConfig"},"description":"Please use \u003cspan pulumi-lang-nodejs=\"`workloadIdentityFederationConfig`\" pulumi-lang-dotnet=\"`WorkloadIdentityFederationConfig`\" pulumi-lang-go=\"`workloadIdentityFederationConfig`\" pulumi-lang-python=\"`workload_identity_federation_config`\" pulumi-lang-yaml=\"`workloadIdentityFederationConfig`\" pulumi-lang-java=\"`workloadIdentityFederationConfig`\"\u003e`workload_identity_federation_config`\u003c/span\u003e with \u003cspan pulumi-lang-nodejs=\"`projects`\" pulumi-lang-dotnet=\"`Projects`\" pulumi-lang-go=\"`projects`\" pulumi-lang-python=\"`projects`\" pulumi-lang-yaml=\"`projects`\" pulumi-lang-java=\"`projects`\"\u003e`projects`\u003c/span\u003e instead.\n","deprecationMessage":"Please use\u003cspan pulumi-lang-nodejs=\" workloadIdentityFederationConfig \" pulumi-lang-dotnet=\" WorkloadIdentityFederationConfig \" pulumi-lang-go=\" workloadIdentityFederationConfig \" pulumi-lang-python=\" workload_identity_federation_config \" pulumi-lang-yaml=\" workloadIdentityFederationConfig \" pulumi-lang-java=\" workloadIdentityFederationConfig \"\u003e workload_identity_federation_config \u003c/span\u003ewith projects instead"},"projects":{"$ref":"#/types/signalfx:gcp/IntegrationProjects:IntegrationProjects","description":"Object comprised of \u003cspan pulumi-lang-nodejs=\"`syncMode`\" pulumi-lang-dotnet=\"`SyncMode`\" pulumi-lang-go=\"`syncMode`\" pulumi-lang-python=\"`sync_mode`\" pulumi-lang-yaml=\"`syncMode`\" pulumi-lang-java=\"`syncMode`\"\u003e`sync_mode`\u003c/span\u003e and optional \u003cspan pulumi-lang-nodejs=\"`selectedProjectIds`\" pulumi-lang-dotnet=\"`SelectedProjectIds`\" pulumi-lang-go=\"`selectedProjectIds`\" pulumi-lang-python=\"`selected_project_ids`\" pulumi-lang-yaml=\"`selectedProjectIds`\" pulumi-lang-java=\"`selectedProjectIds`\"\u003e`selected_project_ids`\u003c/span\u003e. If you use \u003cspan pulumi-lang-nodejs=\"`syncMode`\" pulumi-lang-dotnet=\"`SyncMode`\" pulumi-lang-go=\"`syncMode`\" pulumi-lang-python=\"`sync_mode`\" pulumi-lang-yaml=\"`syncMode`\" pulumi-lang-java=\"`syncMode`\"\u003e`sync_mode`\u003c/span\u003e `ALL_REACHABLE` then Splunk Observability Cloud will automatically discover GCP projects that the provided WIF principal has permissions to query. If \u003cspan pulumi-lang-nodejs=\"`syncMode`\" pulumi-lang-dotnet=\"`SyncMode`\" pulumi-lang-go=\"`syncMode`\" pulumi-lang-python=\"`sync_mode`\" pulumi-lang-yaml=\"`syncMode`\" pulumi-lang-java=\"`syncMode`\"\u003e`sync_mode`\u003c/span\u003e is `SELECTED`, you need to provide a list of project ids in the \u003cspan pulumi-lang-nodejs=\"`selectedProjectIds`\" pulumi-lang-dotnet=\"`SelectedProjectIds`\" pulumi-lang-go=\"`selectedProjectIds`\" pulumi-lang-python=\"`selected_project_ids`\" pulumi-lang-yaml=\"`selectedProjectIds`\" pulumi-lang-java=\"`selectedProjectIds`\"\u003e`selected_project_ids`\u003c/span\u003e field.\n"},"services":{"type":"array","items":{"type":"string"},"description":"GCP service metrics to import. Can be an empty list, or not included, to import 'All services'. See [Google Cloud Platform services](https://docs.splunk.com/Observability/gdi/get-data-in/integrations.html#google-cloud-platform-services) for a list of valid values.\n"},"useMetricSourceProjectForQuota":{"type":"boolean","description":"When this value is set to true Observability Cloud will force usage of a quota from the project where metrics are stored. For this to work the service account provided for the project needs to be provided with serviceusage.services.use permission or Service Usage Consumer role in this project. When set to false default quota settings are used.\n"},"wifSplunkIdentity":{"type":"object","additionalProperties":{"type":"string"},"description":"The Splunk Observability GCP identity to include in GCP WIF provider definition."},"workloadIdentityFederationConfig":{"type":"string","description":"Your Workload Identity Federation config. To easily set up WIF you can use helpers provided in the\u003cspan pulumi-lang-nodejs=\" gcpWorkloadIdentityFederation \" pulumi-lang-dotnet=\" GcpWorkloadIdentityFederation \" pulumi-lang-go=\" gcpWorkloadIdentityFederation \" pulumi-lang-python=\" gcp_workload_identity_federation \" pulumi-lang-yaml=\" gcpWorkloadIdentityFederation \" pulumi-lang-java=\" gcpWorkloadIdentityFederation \"\u003e gcp_workload_identity_federation \u003c/span\u003erepository.\n"}},"type":"object"}},"signalfx:index/alertMutingRule:AlertMutingRule":{"description":"Provides a Splunk Observability Cloud resource for managing alert muting rules. See [Mute Notifications](https://docs.splunk.com/Observability/alerts-detectors-notifications/mute-notifications.html) for more information.\n\nSplunk Observability Cloud currently allows linking an alert muting rule with only one detector ID. Specifying multiple detector IDs makes the muting rule obsolete.\n\n\u003e **WARNING** Splunk Observability Cloud does not allow the start time of a **currently active** muting rule to be modified. Attempting to modify a currently active rule destroys the existing rule and creates a new rule. This might result in the emission of notifications.\n\n## Example\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as signalfx from \"@pulumi/signalfx\";\n\nconst roolMooterOne = new signalfx.AlertMutingRule(\"rool_mooter_one\", {\n    description: \"mooted it NEW\",\n    startTime: 1573063243,\n    stopTime: 0,\n    detectors: [someDetector.id],\n    filters: [{\n        property: \"foo\",\n        propertyValue: \"bar\",\n    }],\n    recurrence: {\n        unit: \"d\",\n        value: 2,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_signalfx as signalfx\n\nrool_mooter_one = signalfx.AlertMutingRule(\"rool_mooter_one\",\n    description=\"mooted it NEW\",\n    start_time=1573063243,\n    stop_time=0,\n    detectors=[some_detector[\"id\"]],\n    filters=[{\n        \"property\": \"foo\",\n        \"property_value\": \"bar\",\n    }],\n    recurrence={\n        \"unit\": \"d\",\n        \"value\": 2,\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing SignalFx = Pulumi.SignalFx;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var roolMooterOne = new SignalFx.AlertMutingRule(\"rool_mooter_one\", new()\n    {\n        Description = \"mooted it NEW\",\n        StartTime = 1573063243,\n        StopTime = 0,\n        Detectors = new[]\n        {\n            someDetector.Id,\n        },\n        Filters = new[]\n        {\n            new SignalFx.Inputs.AlertMutingRuleFilterArgs\n            {\n                Property = \"foo\",\n                PropertyValue = \"bar\",\n            },\n        },\n        Recurrence = new SignalFx.Inputs.AlertMutingRuleRecurrenceArgs\n        {\n            Unit = \"d\",\n            Value = 2,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-signalfx/sdk/v7/go/signalfx\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := signalfx.NewAlertMutingRule(ctx, \"rool_mooter_one\", \u0026signalfx.AlertMutingRuleArgs{\n\t\t\tDescription: pulumi.String(\"mooted it NEW\"),\n\t\t\tStartTime:   pulumi.Int(1573063243),\n\t\t\tStopTime:    pulumi.Int(0),\n\t\t\tDetectors: pulumi.StringArray{\n\t\t\t\tsomeDetector.Id,\n\t\t\t},\n\t\t\tFilters: signalfx.AlertMutingRuleFilterArray{\n\t\t\t\t\u0026signalfx.AlertMutingRuleFilterArgs{\n\t\t\t\t\tProperty:      pulumi.String(\"foo\"),\n\t\t\t\t\tPropertyValue: pulumi.String(\"bar\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tRecurrence: \u0026signalfx.AlertMutingRuleRecurrenceArgs{\n\t\t\t\tUnit:  pulumi.String(\"d\"),\n\t\t\t\tValue: pulumi.Int(2),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.signalfx.AlertMutingRule;\nimport com.pulumi.signalfx.AlertMutingRuleArgs;\nimport com.pulumi.signalfx.inputs.AlertMutingRuleFilterArgs;\nimport com.pulumi.signalfx.inputs.AlertMutingRuleRecurrenceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var roolMooterOne = new AlertMutingRule(\"roolMooterOne\", AlertMutingRuleArgs.builder()\n            .description(\"mooted it NEW\")\n            .startTime(1573063243)\n            .stopTime(0)\n            .detectors(someDetector.id())\n            .filters(AlertMutingRuleFilterArgs.builder()\n                .property(\"foo\")\n                .propertyValue(\"bar\")\n                .build())\n            .recurrence(AlertMutingRuleRecurrenceArgs.builder()\n                .unit(\"d\")\n                .value(2)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  roolMooterOne:\n    type: signalfx:AlertMutingRule\n    name: rool_mooter_one\n    properties:\n      description: mooted it NEW\n      startTime: 1.573063243e+09\n      stopTime: 0 # Defaults to 0\n      detectors:\n        - ${someDetector.id}\n      filters:\n        - property: foo\n          propertyValue: bar\n      recurrence:\n        unit: d\n        value: 2\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"description":{"type":"string","description":"The description for this muting rule\n"},"detectors":{"type":"array","items":{"type":"string"},"description":"A convenience attribute that associated this muting rule with specific detector IDs. Currently, only one ID is supported.\n"},"effectiveStartTime":{"type":"integer"},"filters":{"type":"array","items":{"$ref":"#/types/signalfx:index/AlertMutingRuleFilter:AlertMutingRuleFilter"},"description":"Filters for this rule. See [Creating muting rules from scratch](https://docs.splunk.com/Observability/alerts-detectors-notifications/mute-notifications.html#rule-from-scratch) for more information.\n"},"recurrence":{"$ref":"#/types/signalfx:index/AlertMutingRuleRecurrence:AlertMutingRuleRecurrence","description":"Defines the recurrence of the muting rule. Allows setting a recurring muting rule based on specified days or weeks.\n"},"startTime":{"type":"integer","description":"Starting time of an alert muting rule as a Unit time stamp in seconds.\n"},"stopTime":{"type":"integer","description":"Stop time of an alert muting rule as a Unix time stamp in seconds.\n"}},"required":["description","effectiveStartTime","startTime"],"inputProperties":{"description":{"type":"string","description":"The description for this muting rule\n"},"detectors":{"type":"array","items":{"type":"string"},"description":"A convenience attribute that associated this muting rule with specific detector IDs. Currently, only one ID is supported.\n"},"filters":{"type":"array","items":{"$ref":"#/types/signalfx:index/AlertMutingRuleFilter:AlertMutingRuleFilter"},"description":"Filters for this rule. See [Creating muting rules from scratch](https://docs.splunk.com/Observability/alerts-detectors-notifications/mute-notifications.html#rule-from-scratch) for more information.\n"},"recurrence":{"$ref":"#/types/signalfx:index/AlertMutingRuleRecurrence:AlertMutingRuleRecurrence","description":"Defines the recurrence of the muting rule. Allows setting a recurring muting rule based on specified days or weeks.\n"},"startTime":{"type":"integer","description":"Starting time of an alert muting rule as a Unit time stamp in seconds.\n","willReplaceOnChanges":true},"stopTime":{"type":"integer","description":"Stop time of an alert muting rule as a Unix time stamp in seconds.\n"}},"requiredInputs":["description","startTime"],"stateInputs":{"description":"Input properties used for looking up and filtering AlertMutingRule resources.\n","properties":{"description":{"type":"string","description":"The description for this muting rule\n"},"detectors":{"type":"array","items":{"type":"string"},"description":"A convenience attribute that associated this muting rule with specific detector IDs. Currently, only one ID is supported.\n"},"effectiveStartTime":{"type":"integer"},"filters":{"type":"array","items":{"$ref":"#/types/signalfx:index/AlertMutingRuleFilter:AlertMutingRuleFilter"},"description":"Filters for this rule. See [Creating muting rules from scratch](https://docs.splunk.com/Observability/alerts-detectors-notifications/mute-notifications.html#rule-from-scratch) for more information.\n"},"recurrence":{"$ref":"#/types/signalfx:index/AlertMutingRuleRecurrence:AlertMutingRuleRecurrence","description":"Defines the recurrence of the muting rule. Allows setting a recurring muting rule based on specified days or weeks.\n"},"startTime":{"type":"integer","description":"Starting time of an alert muting rule as a Unit time stamp in seconds.\n","willReplaceOnChanges":true},"stopTime":{"type":"integer","description":"Stop time of an alert muting rule as a Unix time stamp in seconds.\n"}},"type":"object"}},"signalfx:index/dashboard:Dashboard":{"description":"A dashboard is a curated collection of specific charts and supports dimensional [filters](https://docs.splunk.com/observability/en/data-visualization/dashboards/dashboard-create-customize.html#customize-dashboard-filters), [dashboard variables](https://docs.splunk.com/observability/en/data-visualization/dashboards/dashboard-create-customize.html#customize-dashboard-variables) and [time range](https://docs.splunk.com/observability/en/data-visualization/use-time-range-selector.html) options. These options are applied to all charts in the dashboard, providing a consistent view of the data displayed in that dashboard. This also means that when you open a chart to drill down for more details, you are viewing the same data that is visible in the dashboard view.\n\nSince every dashboard is included in a dashboard group, which is a collection of dashboards, you need to create that first and reference it as shown in the example.\n\n\u003e **NOTE** When you want to change or remove write permissions for a user other than yourself regarding dashboards, use a session token of an administrator to authenticate the Splunk Observability Cloud provider. See [Operations that require a session token for an administrator](https://dev.splunk.com/observability/docs/administration/authtokens#Operations-that-require-a-session-token-for-an-administrator).\n\n## Example\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as signalfx from \"@pulumi/signalfx\";\n\nconst mydashboard0 = new signalfx.Dashboard(\"mydashboard0\", {\n    name: \"My Dashboard\",\n    dashboardGroup: mydashboardgroup0.id,\n    timeRange: \"-30m\",\n    filters: [{\n        property: \"collector\",\n        values: [\n            \"cpu\",\n            \"Diamond\",\n        ],\n    }],\n    variables: [{\n        property: \"region\",\n        alias: \"region\",\n        values: [\"uswest-1-\"],\n    }],\n    charts: [\n        {\n            chartId: mychart0.id,\n            width: 12,\n            height: 1,\n        },\n        {\n            chartId: mychart1.id,\n            width: 5,\n            height: 2,\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_signalfx as signalfx\n\nmydashboard0 = signalfx.Dashboard(\"mydashboard0\",\n    name=\"My Dashboard\",\n    dashboard_group=mydashboardgroup0[\"id\"],\n    time_range=\"-30m\",\n    filters=[{\n        \"property\": \"collector\",\n        \"values\": [\n            \"cpu\",\n            \"Diamond\",\n        ],\n    }],\n    variables=[{\n        \"property\": \"region\",\n        \"alias\": \"region\",\n        \"values\": [\"uswest-1-\"],\n    }],\n    charts=[\n        {\n            \"chart_id\": mychart0[\"id\"],\n            \"width\": 12,\n            \"height\": 1,\n        },\n        {\n            \"chart_id\": mychart1[\"id\"],\n            \"width\": 5,\n            \"height\": 2,\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing SignalFx = Pulumi.SignalFx;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var mydashboard0 = new SignalFx.Dashboard(\"mydashboard0\", new()\n    {\n        Name = \"My Dashboard\",\n        DashboardGroup = mydashboardgroup0.Id,\n        TimeRange = \"-30m\",\n        Filters = new[]\n        {\n            new SignalFx.Inputs.DashboardFilterArgs\n            {\n                Property = \"collector\",\n                Values = new[]\n                {\n                    \"cpu\",\n                    \"Diamond\",\n                },\n            },\n        },\n        Variables = new[]\n        {\n            new SignalFx.Inputs.DashboardVariableArgs\n            {\n                Property = \"region\",\n                Alias = \"region\",\n                Values = new[]\n                {\n                    \"uswest-1-\",\n                },\n            },\n        },\n        Charts = new[]\n        {\n            new SignalFx.Inputs.DashboardChartArgs\n            {\n                ChartId = mychart0.Id,\n                Width = 12,\n                Height = 1,\n            },\n            new SignalFx.Inputs.DashboardChartArgs\n            {\n                ChartId = mychart1.Id,\n                Width = 5,\n                Height = 2,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-signalfx/sdk/v7/go/signalfx\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := signalfx.NewDashboard(ctx, \"mydashboard0\", \u0026signalfx.DashboardArgs{\n\t\t\tName:           pulumi.String(\"My Dashboard\"),\n\t\t\tDashboardGroup: pulumi.Any(mydashboardgroup0.Id),\n\t\t\tTimeRange:      pulumi.String(\"-30m\"),\n\t\t\tFilters: signalfx.DashboardFilterArray{\n\t\t\t\t\u0026signalfx.DashboardFilterArgs{\n\t\t\t\t\tProperty: pulumi.String(\"collector\"),\n\t\t\t\t\tValues: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"cpu\"),\n\t\t\t\t\t\tpulumi.String(\"Diamond\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tVariables: signalfx.DashboardVariableArray{\n\t\t\t\t\u0026signalfx.DashboardVariableArgs{\n\t\t\t\t\tProperty: pulumi.String(\"region\"),\n\t\t\t\t\tAlias:    pulumi.String(\"region\"),\n\t\t\t\t\tValues: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"uswest-1-\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tCharts: signalfx.DashboardChartArray{\n\t\t\t\t\u0026signalfx.DashboardChartArgs{\n\t\t\t\t\tChartId: pulumi.Any(mychart0.Id),\n\t\t\t\t\tWidth:   pulumi.Int(12),\n\t\t\t\t\tHeight:  pulumi.Int(1),\n\t\t\t\t},\n\t\t\t\t\u0026signalfx.DashboardChartArgs{\n\t\t\t\t\tChartId: pulumi.Any(mychart1.Id),\n\t\t\t\t\tWidth:   pulumi.Int(5),\n\t\t\t\t\tHeight:  pulumi.Int(2),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.signalfx.Dashboard;\nimport com.pulumi.signalfx.DashboardArgs;\nimport com.pulumi.signalfx.inputs.DashboardFilterArgs;\nimport com.pulumi.signalfx.inputs.DashboardVariableArgs;\nimport com.pulumi.signalfx.inputs.DashboardChartArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var mydashboard0 = new Dashboard(\"mydashboard0\", DashboardArgs.builder()\n            .name(\"My Dashboard\")\n            .dashboardGroup(mydashboardgroup0.id())\n            .timeRange(\"-30m\")\n            .filters(DashboardFilterArgs.builder()\n                .property(\"collector\")\n                .values(                \n                    \"cpu\",\n                    \"Diamond\")\n                .build())\n            .variables(DashboardVariableArgs.builder()\n                .property(\"region\")\n                .alias(\"region\")\n                .values(\"uswest-1-\")\n                .build())\n            .charts(            \n                DashboardChartArgs.builder()\n                    .chartId(mychart0.id())\n                    .width(12)\n                    .height(1)\n                    .build(),\n                DashboardChartArgs.builder()\n                    .chartId(mychart1.id())\n                    .width(5)\n                    .height(2)\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  mydashboard0:\n    type: signalfx:Dashboard\n    properties:\n      name: My Dashboard\n      dashboardGroup: ${mydashboardgroup0.id}\n      timeRange: -30m\n      filters:\n        - property: collector\n          values:\n            - cpu\n            - Diamond\n      variables:\n        - property: region\n          alias: region\n          values:\n            - uswest-1-\n      charts:\n        - chartId: ${mychart0.id}\n          width: 12\n          height: 1\n        - chartId: ${mychart1.id}\n          width: 5\n          height: 2\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Example with inheriting permissions\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as signalfx from \"@pulumi/signalfx\";\n\nconst mydashboardInheritingpermissions = new signalfx.Dashboard(\"mydashboard_inheritingpermissions\", {\n    name: \"My Dashboard\",\n    dashboardGroup: mydashboardgroup0.id,\n    permissions: {\n        parent: mydashboardgroup0.id,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_signalfx as signalfx\n\nmydashboard_inheritingpermissions = signalfx.Dashboard(\"mydashboard_inheritingpermissions\",\n    name=\"My Dashboard\",\n    dashboard_group=mydashboardgroup0[\"id\"],\n    permissions={\n        \"parent\": mydashboardgroup0[\"id\"],\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing SignalFx = Pulumi.SignalFx;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var mydashboardInheritingpermissions = new SignalFx.Dashboard(\"mydashboard_inheritingpermissions\", new()\n    {\n        Name = \"My Dashboard\",\n        DashboardGroup = mydashboardgroup0.Id,\n        Permissions = new SignalFx.Inputs.DashboardPermissionsArgs\n        {\n            Parent = mydashboardgroup0.Id,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-signalfx/sdk/v7/go/signalfx\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := signalfx.NewDashboard(ctx, \"mydashboard_inheritingpermissions\", \u0026signalfx.DashboardArgs{\n\t\t\tName:           pulumi.String(\"My Dashboard\"),\n\t\t\tDashboardGroup: pulumi.Any(mydashboardgroup0.Id),\n\t\t\tPermissions: \u0026signalfx.DashboardPermissionsArgs{\n\t\t\t\tParent: pulumi.Any(mydashboardgroup0.Id),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.signalfx.Dashboard;\nimport com.pulumi.signalfx.DashboardArgs;\nimport com.pulumi.signalfx.inputs.DashboardPermissionsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var mydashboardInheritingpermissions = new Dashboard(\"mydashboardInheritingpermissions\", DashboardArgs.builder()\n            .name(\"My Dashboard\")\n            .dashboardGroup(mydashboardgroup0.id())\n            .permissions(DashboardPermissionsArgs.builder()\n                .parent(mydashboardgroup0.id())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  mydashboardInheritingpermissions:\n    type: signalfx:Dashboard\n    name: mydashboard_inheritingpermissions\n    properties:\n      name: My Dashboard\n      dashboardGroup: ${mydashboardgroup0.id}\n      permissions:\n        parent: ${mydashboardgroup0.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Example with custom permissions\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as signalfx from \"@pulumi/signalfx\";\n\nconst mydashboardCustompermissions = new signalfx.Dashboard(\"mydashboard_custompermissions\", {\n    name: \"My Dashboard\",\n    dashboardGroup: mydashboardgroup0.id,\n    permissions: {\n        acls: [\n            {\n                principalId: \"abc123\",\n                principalType: \"ORG\",\n                actions: [\"READ\"],\n            },\n            {\n                principalId: \"abc456\",\n                principalType: \"USER\",\n                actions: [\n                    \"READ\",\n                    \"WRITE\",\n                ],\n            },\n        ],\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_signalfx as signalfx\n\nmydashboard_custompermissions = signalfx.Dashboard(\"mydashboard_custompermissions\",\n    name=\"My Dashboard\",\n    dashboard_group=mydashboardgroup0[\"id\"],\n    permissions={\n        \"acls\": [\n            {\n                \"principal_id\": \"abc123\",\n                \"principal_type\": \"ORG\",\n                \"actions\": [\"READ\"],\n            },\n            {\n                \"principal_id\": \"abc456\",\n                \"principal_type\": \"USER\",\n                \"actions\": [\n                    \"READ\",\n                    \"WRITE\",\n                ],\n            },\n        ],\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing SignalFx = Pulumi.SignalFx;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var mydashboardCustompermissions = new SignalFx.Dashboard(\"mydashboard_custompermissions\", new()\n    {\n        Name = \"My Dashboard\",\n        DashboardGroup = mydashboardgroup0.Id,\n        Permissions = new SignalFx.Inputs.DashboardPermissionsArgs\n        {\n            Acls = new[]\n            {\n                new SignalFx.Inputs.DashboardPermissionsAclArgs\n                {\n                    PrincipalId = \"abc123\",\n                    PrincipalType = \"ORG\",\n                    Actions = new[]\n                    {\n                        \"READ\",\n                    },\n                },\n                new SignalFx.Inputs.DashboardPermissionsAclArgs\n                {\n                    PrincipalId = \"abc456\",\n                    PrincipalType = \"USER\",\n                    Actions = new[]\n                    {\n                        \"READ\",\n                        \"WRITE\",\n                    },\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-signalfx/sdk/v7/go/signalfx\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := signalfx.NewDashboard(ctx, \"mydashboard_custompermissions\", \u0026signalfx.DashboardArgs{\n\t\t\tName:           pulumi.String(\"My Dashboard\"),\n\t\t\tDashboardGroup: pulumi.Any(mydashboardgroup0.Id),\n\t\t\tPermissions: \u0026signalfx.DashboardPermissionsArgs{\n\t\t\t\tAcls: signalfx.DashboardPermissionsAclArray{\n\t\t\t\t\t\u0026signalfx.DashboardPermissionsAclArgs{\n\t\t\t\t\t\tPrincipalId:   pulumi.String(\"abc123\"),\n\t\t\t\t\t\tPrincipalType: pulumi.String(\"ORG\"),\n\t\t\t\t\t\tActions: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"READ\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t\u0026signalfx.DashboardPermissionsAclArgs{\n\t\t\t\t\t\tPrincipalId:   pulumi.String(\"abc456\"),\n\t\t\t\t\t\tPrincipalType: pulumi.String(\"USER\"),\n\t\t\t\t\t\tActions: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"READ\"),\n\t\t\t\t\t\t\tpulumi.String(\"WRITE\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.signalfx.Dashboard;\nimport com.pulumi.signalfx.DashboardArgs;\nimport com.pulumi.signalfx.inputs.DashboardPermissionsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var mydashboardCustompermissions = new Dashboard(\"mydashboardCustompermissions\", DashboardArgs.builder()\n            .name(\"My Dashboard\")\n            .dashboardGroup(mydashboardgroup0.id())\n            .permissions(DashboardPermissionsArgs.builder()\n                .acls(                \n                    DashboardPermissionsAclArgs.builder()\n                        .principalId(\"abc123\")\n                        .principalType(\"ORG\")\n                        .actions(\"READ\")\n                        .build(),\n                    DashboardPermissionsAclArgs.builder()\n                        .principalId(\"abc456\")\n                        .principalType(\"USER\")\n                        .actions(                        \n                            \"READ\",\n                            \"WRITE\")\n                        .build())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  mydashboardCustompermissions:\n    type: signalfx:Dashboard\n    name: mydashboard_custompermissions\n    properties:\n      name: My Dashboard\n      dashboardGroup: ${mydashboardgroup0.id}\n      permissions:\n        acls:\n          - principalId: abc123\n            principalType: ORG\n            actions:\n              - READ\n          - principalId: abc456\n            principalType: USER\n            actions:\n              - READ\n              - WRITE\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Dashboard layout information\n\nEvery Splunk Observability Cloud dashboard is shown as a grid of 12 columns and potentially infinite number of rows. The dimension of the single column depends on the screen resolution.\n\nWhen you define a dashboard resource, you need to specify which charts, by \u003cspan pulumi-lang-nodejs=\"`chartId`\" pulumi-lang-dotnet=\"`ChartId`\" pulumi-lang-go=\"`chartId`\" pulumi-lang-python=\"`chart_id`\" pulumi-lang-yaml=\"`chartId`\" pulumi-lang-java=\"`chartId`\"\u003e`chart_id`\u003c/span\u003e, you want to show in the dashboard, along with layout information determining where on the dashboard you want to show the charts. Assign to every chart a width in terms of number of columns to cover up, from 1 to 12, and a height in terms of number of rows, more or equal than 1.\n\nYou can also assign a position in the dashboard grid where you like the graph to stay. To do that, assign a row that represents the topmost row of the chart and a column that represents the leftmost column of the chart. If, by mistake, you wrote a configuration where there are not enough columns to accommodate your charts in a specific row, they are split in different rows. In case a row is specified with a value higher than 1, if all the rows above are not filled by other charts, the chart is placed in the first empty row.\n\nThe are several use cases where this layout makes things too verbose and hard to work with loops. For those cases, you can now use one of these layouts: grids or columns.\n\n\u003e **WARNING** Grids and column layouts are not supported by the Splunk Observability Cloud API and are Terraform-side constructs. As such, the provider cannot import them and cannot properly reconcile API-side changes. In other words, if someone changes the charts in the UI they are not reconciled at the next apply. Also, you can only use one of \u003cspan pulumi-lang-nodejs=\"`chart`\" pulumi-lang-dotnet=\"`Chart`\" pulumi-lang-go=\"`chart`\" pulumi-lang-python=\"`chart`\" pulumi-lang-yaml=\"`chart`\" pulumi-lang-java=\"`chart`\"\u003e`chart`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`column`\" pulumi-lang-dotnet=\"`Column`\" pulumi-lang-go=\"`column`\" pulumi-lang-python=\"`column`\" pulumi-lang-yaml=\"`column`\" pulumi-lang-java=\"`column`\"\u003e`column`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`grid`\" pulumi-lang-dotnet=\"`Grid`\" pulumi-lang-go=\"`grid`\" pulumi-lang-python=\"`grid`\" pulumi-lang-yaml=\"`grid`\" pulumi-lang-java=\"`grid`\"\u003e`grid`\u003c/span\u003e when laying out dashboards. You can, however, use multiple instances of each, for example multiple \u003cspan pulumi-lang-nodejs=\"`grid`\" pulumi-lang-dotnet=\"`Grid`\" pulumi-lang-go=\"`grid`\" pulumi-lang-python=\"`grid`\" pulumi-lang-yaml=\"`grid`\" pulumi-lang-java=\"`grid`\"\u003e`grid`\u003c/span\u003es, for fancier layouts.\n\n### Grid\n\nThe dashboard is split into equal-sized charts, defined by \u003cspan pulumi-lang-nodejs=\"`width`\" pulumi-lang-dotnet=\"`Width`\" pulumi-lang-go=\"`width`\" pulumi-lang-python=\"`width`\" pulumi-lang-yaml=\"`width`\" pulumi-lang-java=\"`width`\"\u003e`width`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`height`\" pulumi-lang-dotnet=\"`Height`\" pulumi-lang-go=\"`height`\" pulumi-lang-python=\"`height`\" pulumi-lang-yaml=\"`height`\" pulumi-lang-java=\"`height`\"\u003e`height`\u003c/span\u003e. If a chart doesn't fit in the same row because the total width is greater than the maximum allowed by the dashboard, this chart and the next ones are placed in the next rows.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as signalfx from \"@pulumi/signalfx\";\nimport * as std from \"@pulumi/std\";\n\nconst gridExample = new signalfx.Dashboard(\"grid_example\", {\n    name: \"Grid\",\n    dashboardGroup: example.id,\n    timeRange: \"-15m\",\n    grids: [{\n        chartIds: [std.index.concat({\n            input: [\n                rps.map(__item =\u003e __item.id),\n                p50ths.map(__item =\u003e __item.id),\n                p99ths.map(__item =\u003e __item.id),\n                idleWorkers.map(__item =\u003e __item.id),\n                cpuIdle.map(__item =\u003e __item.id),\n            ],\n        }).result],\n        width: 3,\n        height: 1,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_signalfx as signalfx\nimport pulumi_std as std\n\ngrid_example = signalfx.Dashboard(\"grid_example\",\n    name=\"Grid\",\n    dashboard_group=example[\"id\"],\n    time_range=\"-15m\",\n    grids=[{\n        \"chart_ids\": [std.index.concat(input=[\n            [__item[\"id\"] for __item in rps],\n            [__item[\"id\"] for __item in p50ths],\n            [__item[\"id\"] for __item in p99ths],\n            [__item[\"id\"] for __item in idle_workers],\n            [__item[\"id\"] for __item in cpu_idle],\n        ])[\"result\"]],\n        \"width\": 3,\n        \"height\": 1,\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing SignalFx = Pulumi.SignalFx;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var gridExample = new SignalFx.Dashboard(\"grid_example\", new()\n    {\n        Name = \"Grid\",\n        DashboardGroup = example.Id,\n        TimeRange = \"-15m\",\n        Grids = new[]\n        {\n            new SignalFx.Inputs.DashboardGridArgs\n            {\n                ChartIds = new[]\n                {\n                    Std.Index.Concat.Invoke(new()\n                    {\n                        Input = new[]\n                        {\n                            rps.Select(__item =\u003e __item.Id).ToList(),\n                            p50ths.Select(__item =\u003e __item.Id).ToList(),\n                            p99ths.Select(__item =\u003e __item.Id).ToList(),\n                            idleWorkers.Select(__item =\u003e __item.Id).ToList(),\n                            cpuIdle.Select(__item =\u003e __item.Id).ToList(),\n                        },\n                    }).Result,\n                },\n                Width = 3,\n                Height = 1,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-signalfx/sdk/v7/go/signalfx\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\ninvokeConcat, err := std.Concat(ctx, map[string]interface{}{\n\"input\": [][]interface{}{\n%!v(PANIC=Format method: fatal: A failure has occurred: unlowered splat expression @ example.pp:7,16-25),\n%!v(PANIC=Format method: fatal: A failure has occurred: unlowered splat expression @ example.pp:7,27-39),\n%!v(PANIC=Format method: fatal: A failure has occurred: unlowered splat expression @ example.pp:7,41-53),\n%!v(PANIC=Format method: fatal: A failure has occurred: unlowered splat expression @ example.pp:7,55-72),\n%!v(PANIC=Format method: fatal: A failure has occurred: unlowered splat expression @ example.pp:7,74-87),\n},\n}, nil)\nif err != nil {\nreturn err\n}\n_, err = signalfx.NewDashboard(ctx, \"grid_example\", \u0026signalfx.DashboardArgs{\nName: pulumi.String(\"Grid\"),\nDashboardGroup: pulumi.Any(example.Id),\nTimeRange: pulumi.String(\"-15m\"),\nGrids: signalfx.DashboardGridArray{\n\u0026signalfx.DashboardGridArgs{\nChartIds: pulumi.StringArray{\ninvokeConcat.Result,\n},\nWidth: pulumi.Int(3),\nHeight: pulumi.Int(1),\n},\n},\n})\nif err != nil {\nreturn err\n}\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.signalfx.Dashboard;\nimport com.pulumi.signalfx.DashboardArgs;\nimport com.pulumi.signalfx.inputs.DashboardGridArgs;\nimport com.pulumi.std.StdFunctions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var gridExample = new Dashboard(\"gridExample\", DashboardArgs.builder()\n            .name(\"Grid\")\n            .dashboardGroup(example.id())\n            .timeRange(\"-15m\")\n            .grids(DashboardGridArgs.builder()\n                .chartIds(StdFunctions.concat(Map.of(\"input\",                 \n                    rps.stream().map(element -\u003e element.id()).collect(toList()),\n                    p50ths.stream().map(element -\u003e element.id()).collect(toList()),\n                    p99ths.stream().map(element -\u003e element.id()).collect(toList()),\n                    idleWorkers.stream().map(element -\u003e element.id()).collect(toList()),\n                    cpuIdle.stream().map(element -\u003e element.id()).collect(toList()))).result())\n                .width(3)\n                .height(1)\n                .build())\n            .build());\n\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Column\n\nThe dashboard is split into equal-sized charts, defined by \u003cspan pulumi-lang-nodejs=\"`width`\" pulumi-lang-dotnet=\"`Width`\" pulumi-lang-go=\"`width`\" pulumi-lang-python=\"`width`\" pulumi-lang-yaml=\"`width`\" pulumi-lang-java=\"`width`\"\u003e`width`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`height`\" pulumi-lang-dotnet=\"`Height`\" pulumi-lang-go=\"`height`\" pulumi-lang-python=\"`height`\" pulumi-lang-yaml=\"`height`\" pulumi-lang-java=\"`height`\"\u003e`height`\u003c/span\u003e. The charts are placed in the grid by column. The column number is called \u003cspan pulumi-lang-nodejs=\"`column`\" pulumi-lang-dotnet=\"`Column`\" pulumi-lang-go=\"`column`\" pulumi-lang-python=\"`column`\" pulumi-lang-yaml=\"`column`\" pulumi-lang-java=\"`column`\"\u003e`column`\u003c/span\u003e.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as signalfx from \"@pulumi/signalfx\";\n\nconst load = new signalfx.Dashboard(\"load\", {\n    name: \"Load\",\n    dashboardGroup: example.id,\n    columns: [\n        {\n            chartIds: [rps.map(__item =\u003e __item.id)],\n            width: 2,\n        },\n        {\n            chartIds: [cpuCapacity.map(__item =\u003e __item.id)],\n            column: 2,\n            width: 4,\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_signalfx as signalfx\n\nload = signalfx.Dashboard(\"load\",\n    name=\"Load\",\n    dashboard_group=example[\"id\"],\n    columns=[\n        {\n            \"chart_ids\": [[__item[\"id\"] for __item in rps]],\n            \"width\": 2,\n        },\n        {\n            \"chart_ids\": [[__item[\"id\"] for __item in cpu_capacity]],\n            \"column\": 2,\n            \"width\": 4,\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing SignalFx = Pulumi.SignalFx;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var load = new SignalFx.Dashboard(\"load\", new()\n    {\n        Name = \"Load\",\n        DashboardGroup = example.Id,\n        Columns = new[]\n        {\n            new SignalFx.Inputs.DashboardColumnArgs\n            {\n                ChartIds = new[]\n                {\n                    rps.Select(__item =\u003e __item.Id).ToList(),\n                },\n                Width = 2,\n            },\n            new SignalFx.Inputs.DashboardColumnArgs\n            {\n                ChartIds = new[]\n                {\n                    cpuCapacity.Select(__item =\u003e __item.Id).ToList(),\n                },\n                Column = 2,\n                Width = 4,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-signalfx/sdk/v7/go/signalfx\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\n_, err := signalfx.NewDashboard(ctx, \"load\", \u0026signalfx.DashboardArgs{\nName: pulumi.String(\"Load\"),\nDashboardGroup: pulumi.Any(example.Id),\nColumns: signalfx.DashboardColumnArray{\n\u0026signalfx.DashboardColumnArgs{\nChartIds: pulumi.StringArray{\npulumi.String(%!v(PANIC=Format method: fatal: A failure has occurred: unlowered splat expression @ example.pp:4,17-26)),\n},\nWidth: pulumi.Int(2),\n},\n\u0026signalfx.DashboardColumnArgs{\nChartIds: pulumi.StringArray{\npulumi.String(%!v(PANIC=Format method: fatal: A failure has occurred: unlowered splat expression @ example.pp:7,17-34)),\n},\nColumn: pulumi.Int(2),\nWidth: pulumi.Int(4),\n},\n},\n})\nif err != nil {\nreturn err\n}\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.signalfx.Dashboard;\nimport com.pulumi.signalfx.DashboardArgs;\nimport com.pulumi.signalfx.inputs.DashboardColumnArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var load = new Dashboard(\"load\", DashboardArgs.builder()\n            .name(\"Load\")\n            .dashboardGroup(example.id())\n            .columns(            \n                DashboardColumnArgs.builder()\n                    .chartIds(rps.stream().map(element -\u003e element.id()).collect(toList()))\n                    .width(2)\n                    .build(),\n                DashboardColumnArgs.builder()\n                    .chartIds(cpuCapacity.stream().map(element -\u003e element.id()).collect(toList()))\n                    .column(2)\n                    .width(4)\n                    .build())\n            .build());\n\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"authorizedWriterTeams":{"type":"array","items":{"type":"string"},"description":"Team IDs that have write access to this dashboard group. Remember to use an admin's token if using this feature and to include that admin's team (or user id in \u003cspan pulumi-lang-nodejs=\"`authorizedWriterTeams`\" pulumi-lang-dotnet=\"`AuthorizedWriterTeams`\" pulumi-lang-go=\"`authorizedWriterTeams`\" pulumi-lang-python=\"`authorized_writer_teams`\" pulumi-lang-yaml=\"`authorizedWriterTeams`\" pulumi-lang-java=\"`authorizedWriterTeams`\"\u003e`authorized_writer_teams`\u003c/span\u003e). **Note:** Deprecated use \u003cspan pulumi-lang-nodejs=\"`permissions`\" pulumi-lang-dotnet=\"`Permissions`\" pulumi-lang-go=\"`permissions`\" pulumi-lang-python=\"`permissions`\" pulumi-lang-yaml=\"`permissions`\" pulumi-lang-java=\"`permissions`\"\u003e`permissions`\u003c/span\u003e instead.\n","deprecationMessage":"Please use permissions_* fields now"},"authorizedWriterUsers":{"type":"array","items":{"type":"string"},"description":"User IDs that have write access to this dashboard group. Remember to use an admin's token if using this feature and to include that admin's user id (or team id in \u003cspan pulumi-lang-nodejs=\"`authorizedWriterTeams`\" pulumi-lang-dotnet=\"`AuthorizedWriterTeams`\" pulumi-lang-go=\"`authorizedWriterTeams`\" pulumi-lang-python=\"`authorized_writer_teams`\" pulumi-lang-yaml=\"`authorizedWriterTeams`\" pulumi-lang-java=\"`authorizedWriterTeams`\"\u003e`authorized_writer_teams`\u003c/span\u003e). **Note:** Deprecated use \u003cspan pulumi-lang-nodejs=\"`permissions`\" pulumi-lang-dotnet=\"`Permissions`\" pulumi-lang-go=\"`permissions`\" pulumi-lang-python=\"`permissions`\" pulumi-lang-yaml=\"`permissions`\" pulumi-lang-java=\"`permissions`\"\u003e`permissions`\u003c/span\u003e instead.\n","deprecationMessage":"Please use permissions fields now"},"charts":{"type":"array","items":{"$ref":"#/types/signalfx:index/DashboardChart:DashboardChart"},"description":"Chart ID and layout information for the charts in the dashboard.\n"},"chartsResolution":{"type":"string","description":"Specifies the chart data display resolution for charts in this dashboard. Value can be one of `\"default\"`, `\"low\"`, `\"high\"`, or `\"highest\"`.\n"},"columns":{"type":"array","items":{"$ref":"#/types/signalfx:index/DashboardColumn:DashboardColumn"},"description":"Column layout. Charts listed will be placed in a single column with the same width and height.\n"},"dashboardGroup":{"type":"string","description":"The ID of the dashboard group that contains the dashboard.\n"},"description":{"type":"string","description":"Description of the dashboard.\n"},"discoveryOptionsQuery":{"type":"string"},"discoveryOptionsSelectors":{"type":"array","items":{"type":"string"}},"endTime":{"type":"integer","description":"Seconds since epoch. Used for visualization.\n"},"eventOverlays":{"type":"array","items":{"$ref":"#/types/signalfx:index/DashboardEventOverlay:DashboardEventOverlay"},"description":"Specify a list of event overlays to include in the dashboard. Note: These overlays correspond to the *suggested* event overlays specified in the web UI, and they're not automatically applied as active overlays. To set default active event overlays, use the \u003cspan pulumi-lang-nodejs=\"`selectedEventOverlay`\" pulumi-lang-dotnet=\"`SelectedEventOverlay`\" pulumi-lang-go=\"`selectedEventOverlay`\" pulumi-lang-python=\"`selected_event_overlay`\" pulumi-lang-yaml=\"`selectedEventOverlay`\" pulumi-lang-java=\"`selectedEventOverlay`\"\u003e`selected_event_overlay`\u003c/span\u003e property instead.\n"},"filters":{"type":"array","items":{"$ref":"#/types/signalfx:index/DashboardFilter:DashboardFilter"},"description":"Filter to apply to the charts when displaying the dashboard.\n"},"grids":{"type":"array","items":{"$ref":"#/types/signalfx:index/DashboardGrid:DashboardGrid"},"description":"Grid dashboard layout. Charts listed will be placed in a grid by row with the same width and height. If a chart cannot fit in a row, it will be placed automatically in the next row.\n"},"name":{"type":"string","description":"Name of the dashboard.\n"},"permissions":{"$ref":"#/types/signalfx:index/DashboardPermissions:DashboardPermissions","description":"[Permissions](https://docs.splunk.com/Observability/infrastructure/terms-concepts/permissions.html) Controls who can view and/or edit your dashboard. **Note:** This feature is not present in all accounts. Please contact support if you are unsure.\n"},"selectedEventOverlays":{"type":"array","items":{"$ref":"#/types/signalfx:index/DashboardSelectedEventOverlay:DashboardSelectedEventOverlay"},"description":"Defines event overlays which are enabled by **default**. Any overlay specified here should have an accompanying entry in \u003cspan pulumi-lang-nodejs=\"`eventOverlay`\" pulumi-lang-dotnet=\"`EventOverlay`\" pulumi-lang-go=\"`eventOverlay`\" pulumi-lang-python=\"`event_overlay`\" pulumi-lang-yaml=\"`eventOverlay`\" pulumi-lang-java=\"`eventOverlay`\"\u003e`event_overlay`\u003c/span\u003e, which are similar to the properties here.\n"},"startTime":{"type":"integer","description":"Seconds since epoch. Used for visualization.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"Tags of the dashboard.\n"},"timeRange":{"type":"string","description":"The time range prior to now to visualize. Splunk Observability Cloud time syntax (e.g. `\"-5m\"`, `\"-1h\"`).\n"},"url":{"type":"string","description":"The URL of the dashboard.\n"},"variables":{"type":"array","items":{"$ref":"#/types/signalfx:index/DashboardVariable:DashboardVariable"},"description":"Dashboard variable to apply to each chart in the dashboard.\n"}},"required":["dashboardGroup","name","permissions","url"],"inputProperties":{"authorizedWriterTeams":{"type":"array","items":{"type":"string"},"description":"Team IDs that have write access to this dashboard group. Remember to use an admin's token if using this feature and to include that admin's team (or user id in \u003cspan pulumi-lang-nodejs=\"`authorizedWriterTeams`\" pulumi-lang-dotnet=\"`AuthorizedWriterTeams`\" pulumi-lang-go=\"`authorizedWriterTeams`\" pulumi-lang-python=\"`authorized_writer_teams`\" pulumi-lang-yaml=\"`authorizedWriterTeams`\" pulumi-lang-java=\"`authorizedWriterTeams`\"\u003e`authorized_writer_teams`\u003c/span\u003e). **Note:** Deprecated use \u003cspan pulumi-lang-nodejs=\"`permissions`\" pulumi-lang-dotnet=\"`Permissions`\" pulumi-lang-go=\"`permissions`\" pulumi-lang-python=\"`permissions`\" pulumi-lang-yaml=\"`permissions`\" pulumi-lang-java=\"`permissions`\"\u003e`permissions`\u003c/span\u003e instead.\n","deprecationMessage":"Please use permissions_* fields now"},"authorizedWriterUsers":{"type":"array","items":{"type":"string"},"description":"User IDs that have write access to this dashboard group. Remember to use an admin's token if using this feature and to include that admin's user id (or team id in \u003cspan pulumi-lang-nodejs=\"`authorizedWriterTeams`\" pulumi-lang-dotnet=\"`AuthorizedWriterTeams`\" pulumi-lang-go=\"`authorizedWriterTeams`\" pulumi-lang-python=\"`authorized_writer_teams`\" pulumi-lang-yaml=\"`authorizedWriterTeams`\" pulumi-lang-java=\"`authorizedWriterTeams`\"\u003e`authorized_writer_teams`\u003c/span\u003e). **Note:** Deprecated use \u003cspan pulumi-lang-nodejs=\"`permissions`\" pulumi-lang-dotnet=\"`Permissions`\" pulumi-lang-go=\"`permissions`\" pulumi-lang-python=\"`permissions`\" pulumi-lang-yaml=\"`permissions`\" pulumi-lang-java=\"`permissions`\"\u003e`permissions`\u003c/span\u003e instead.\n","deprecationMessage":"Please use permissions fields now"},"charts":{"type":"array","items":{"$ref":"#/types/signalfx:index/DashboardChart:DashboardChart"},"description":"Chart ID and layout information for the charts in the dashboard.\n"},"chartsResolution":{"type":"string","description":"Specifies the chart data display resolution for charts in this dashboard. Value can be one of `\"default\"`, `\"low\"`, `\"high\"`, or `\"highest\"`.\n"},"columns":{"type":"array","items":{"$ref":"#/types/signalfx:index/DashboardColumn:DashboardColumn"},"description":"Column layout. Charts listed will be placed in a single column with the same width and height.\n"},"dashboardGroup":{"type":"string","description":"The ID of the dashboard group that contains the dashboard.\n"},"description":{"type":"string","description":"Description of the dashboard.\n"},"discoveryOptionsQuery":{"type":"string"},"discoveryOptionsSelectors":{"type":"array","items":{"type":"string"}},"endTime":{"type":"integer","description":"Seconds since epoch. Used for visualization.\n"},"eventOverlays":{"type":"array","items":{"$ref":"#/types/signalfx:index/DashboardEventOverlay:DashboardEventOverlay"},"description":"Specify a list of event overlays to include in the dashboard. Note: These overlays correspond to the *suggested* event overlays specified in the web UI, and they're not automatically applied as active overlays. To set default active event overlays, use the \u003cspan pulumi-lang-nodejs=\"`selectedEventOverlay`\" pulumi-lang-dotnet=\"`SelectedEventOverlay`\" pulumi-lang-go=\"`selectedEventOverlay`\" pulumi-lang-python=\"`selected_event_overlay`\" pulumi-lang-yaml=\"`selectedEventOverlay`\" pulumi-lang-java=\"`selectedEventOverlay`\"\u003e`selected_event_overlay`\u003c/span\u003e property instead.\n"},"filters":{"type":"array","items":{"$ref":"#/types/signalfx:index/DashboardFilter:DashboardFilter"},"description":"Filter to apply to the charts when displaying the dashboard.\n"},"grids":{"type":"array","items":{"$ref":"#/types/signalfx:index/DashboardGrid:DashboardGrid"},"description":"Grid dashboard layout. Charts listed will be placed in a grid by row with the same width and height. If a chart cannot fit in a row, it will be placed automatically in the next row.\n"},"name":{"type":"string","description":"Name of the dashboard.\n"},"permissions":{"$ref":"#/types/signalfx:index/DashboardPermissions:DashboardPermissions","description":"[Permissions](https://docs.splunk.com/Observability/infrastructure/terms-concepts/permissions.html) Controls who can view and/or edit your dashboard. **Note:** This feature is not present in all accounts. Please contact support if you are unsure.\n"},"selectedEventOverlays":{"type":"array","items":{"$ref":"#/types/signalfx:index/DashboardSelectedEventOverlay:DashboardSelectedEventOverlay"},"description":"Defines event overlays which are enabled by **default**. Any overlay specified here should have an accompanying entry in \u003cspan pulumi-lang-nodejs=\"`eventOverlay`\" pulumi-lang-dotnet=\"`EventOverlay`\" pulumi-lang-go=\"`eventOverlay`\" pulumi-lang-python=\"`event_overlay`\" pulumi-lang-yaml=\"`eventOverlay`\" pulumi-lang-java=\"`eventOverlay`\"\u003e`event_overlay`\u003c/span\u003e, which are similar to the properties here.\n"},"startTime":{"type":"integer","description":"Seconds since epoch. Used for visualization.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"Tags of the dashboard.\n"},"timeRange":{"type":"string","description":"The time range prior to now to visualize. Splunk Observability Cloud time syntax (e.g. `\"-5m\"`, `\"-1h\"`).\n"},"variables":{"type":"array","items":{"$ref":"#/types/signalfx:index/DashboardVariable:DashboardVariable"},"description":"Dashboard variable to apply to each chart in the dashboard.\n"}},"requiredInputs":["dashboardGroup"],"stateInputs":{"description":"Input properties used for looking up and filtering Dashboard resources.\n","properties":{"authorizedWriterTeams":{"type":"array","items":{"type":"string"},"description":"Team IDs that have write access to this dashboard group. Remember to use an admin's token if using this feature and to include that admin's team (or user id in \u003cspan pulumi-lang-nodejs=\"`authorizedWriterTeams`\" pulumi-lang-dotnet=\"`AuthorizedWriterTeams`\" pulumi-lang-go=\"`authorizedWriterTeams`\" pulumi-lang-python=\"`authorized_writer_teams`\" pulumi-lang-yaml=\"`authorizedWriterTeams`\" pulumi-lang-java=\"`authorizedWriterTeams`\"\u003e`authorized_writer_teams`\u003c/span\u003e). **Note:** Deprecated use \u003cspan pulumi-lang-nodejs=\"`permissions`\" pulumi-lang-dotnet=\"`Permissions`\" pulumi-lang-go=\"`permissions`\" pulumi-lang-python=\"`permissions`\" pulumi-lang-yaml=\"`permissions`\" pulumi-lang-java=\"`permissions`\"\u003e`permissions`\u003c/span\u003e instead.\n","deprecationMessage":"Please use permissions_* fields now"},"authorizedWriterUsers":{"type":"array","items":{"type":"string"},"description":"User IDs that have write access to this dashboard group. Remember to use an admin's token if using this feature and to include that admin's user id (or team id in \u003cspan pulumi-lang-nodejs=\"`authorizedWriterTeams`\" pulumi-lang-dotnet=\"`AuthorizedWriterTeams`\" pulumi-lang-go=\"`authorizedWriterTeams`\" pulumi-lang-python=\"`authorized_writer_teams`\" pulumi-lang-yaml=\"`authorizedWriterTeams`\" pulumi-lang-java=\"`authorizedWriterTeams`\"\u003e`authorized_writer_teams`\u003c/span\u003e). **Note:** Deprecated use \u003cspan pulumi-lang-nodejs=\"`permissions`\" pulumi-lang-dotnet=\"`Permissions`\" pulumi-lang-go=\"`permissions`\" pulumi-lang-python=\"`permissions`\" pulumi-lang-yaml=\"`permissions`\" pulumi-lang-java=\"`permissions`\"\u003e`permissions`\u003c/span\u003e instead.\n","deprecationMessage":"Please use permissions fields now"},"charts":{"type":"array","items":{"$ref":"#/types/signalfx:index/DashboardChart:DashboardChart"},"description":"Chart ID and layout information for the charts in the dashboard.\n"},"chartsResolution":{"type":"string","description":"Specifies the chart data display resolution for charts in this dashboard. Value can be one of `\"default\"`, `\"low\"`, `\"high\"`, or `\"highest\"`.\n"},"columns":{"type":"array","items":{"$ref":"#/types/signalfx:index/DashboardColumn:DashboardColumn"},"description":"Column layout. Charts listed will be placed in a single column with the same width and height.\n"},"dashboardGroup":{"type":"string","description":"The ID of the dashboard group that contains the dashboard.\n"},"description":{"type":"string","description":"Description of the dashboard.\n"},"discoveryOptionsQuery":{"type":"string"},"discoveryOptionsSelectors":{"type":"array","items":{"type":"string"}},"endTime":{"type":"integer","description":"Seconds since epoch. Used for visualization.\n"},"eventOverlays":{"type":"array","items":{"$ref":"#/types/signalfx:index/DashboardEventOverlay:DashboardEventOverlay"},"description":"Specify a list of event overlays to include in the dashboard. Note: These overlays correspond to the *suggested* event overlays specified in the web UI, and they're not automatically applied as active overlays. To set default active event overlays, use the \u003cspan pulumi-lang-nodejs=\"`selectedEventOverlay`\" pulumi-lang-dotnet=\"`SelectedEventOverlay`\" pulumi-lang-go=\"`selectedEventOverlay`\" pulumi-lang-python=\"`selected_event_overlay`\" pulumi-lang-yaml=\"`selectedEventOverlay`\" pulumi-lang-java=\"`selectedEventOverlay`\"\u003e`selected_event_overlay`\u003c/span\u003e property instead.\n"},"filters":{"type":"array","items":{"$ref":"#/types/signalfx:index/DashboardFilter:DashboardFilter"},"description":"Filter to apply to the charts when displaying the dashboard.\n"},"grids":{"type":"array","items":{"$ref":"#/types/signalfx:index/DashboardGrid:DashboardGrid"},"description":"Grid dashboard layout. Charts listed will be placed in a grid by row with the same width and height. If a chart cannot fit in a row, it will be placed automatically in the next row.\n"},"name":{"type":"string","description":"Name of the dashboard.\n"},"permissions":{"$ref":"#/types/signalfx:index/DashboardPermissions:DashboardPermissions","description":"[Permissions](https://docs.splunk.com/Observability/infrastructure/terms-concepts/permissions.html) Controls who can view and/or edit your dashboard. **Note:** This feature is not present in all accounts. Please contact support if you are unsure.\n"},"selectedEventOverlays":{"type":"array","items":{"$ref":"#/types/signalfx:index/DashboardSelectedEventOverlay:DashboardSelectedEventOverlay"},"description":"Defines event overlays which are enabled by **default**. Any overlay specified here should have an accompanying entry in \u003cspan pulumi-lang-nodejs=\"`eventOverlay`\" pulumi-lang-dotnet=\"`EventOverlay`\" pulumi-lang-go=\"`eventOverlay`\" pulumi-lang-python=\"`event_overlay`\" pulumi-lang-yaml=\"`eventOverlay`\" pulumi-lang-java=\"`eventOverlay`\"\u003e`event_overlay`\u003c/span\u003e, which are similar to the properties here.\n"},"startTime":{"type":"integer","description":"Seconds since epoch. Used for visualization.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"Tags of the dashboard.\n"},"timeRange":{"type":"string","description":"The time range prior to now to visualize. Splunk Observability Cloud time syntax (e.g. `\"-5m\"`, `\"-1h\"`).\n"},"url":{"type":"string","description":"The URL of the dashboard.\n"},"variables":{"type":"array","items":{"$ref":"#/types/signalfx:index/DashboardVariable:DashboardVariable"},"description":"Dashboard variable to apply to each chart in the dashboard.\n"}},"type":"object"}},"signalfx:index/dashboardGroup:DashboardGroup":{"description":"In the Splunk Observability Cloud web UI, a [dashboard group](https://dev.splunk.com/observability/docs/chartsdashboards/dashboard_groups_overview/) is a collection of dashboards.\n\nDashboard groups cannot be accessed directly. You can access them through a dashboard within a group.\n\n\u003e **NOTE** When you want to change or remove write permissions for a user other than yourself regarding dashboard groups, use a session token of an administrator to authenticate the Splunk Observability Cloud provider. See [Operations that require a session token for an administrator](https://dev.splunk.com/observability/docs/administration/authtokens#Operations-that-require-a-session-token-for-an-administrator).\n\n## Example\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as signalfx from \"@pulumi/signalfx\";\n\nconst mydashboardgroup0 = new signalfx.DashboardGroup(\"mydashboardgroup0\", {\n    name: \"My team dashboard group\",\n    description: \"Cool dashboard group\",\n    authorizedWriterTeams: [mycoolteam.id],\n    authorizedWriterUsers: [\"abc123\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_signalfx as signalfx\n\nmydashboardgroup0 = signalfx.DashboardGroup(\"mydashboardgroup0\",\n    name=\"My team dashboard group\",\n    description=\"Cool dashboard group\",\n    authorized_writer_teams=[mycoolteam[\"id\"]],\n    authorized_writer_users=[\"abc123\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing SignalFx = Pulumi.SignalFx;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var mydashboardgroup0 = new SignalFx.DashboardGroup(\"mydashboardgroup0\", new()\n    {\n        Name = \"My team dashboard group\",\n        Description = \"Cool dashboard group\",\n        AuthorizedWriterTeams = new[]\n        {\n            mycoolteam.Id,\n        },\n        AuthorizedWriterUsers = new[]\n        {\n            \"abc123\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-signalfx/sdk/v7/go/signalfx\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := signalfx.NewDashboardGroup(ctx, \"mydashboardgroup0\", \u0026signalfx.DashboardGroupArgs{\n\t\t\tName:        pulumi.String(\"My team dashboard group\"),\n\t\t\tDescription: pulumi.String(\"Cool dashboard group\"),\n\t\t\tAuthorizedWriterTeams: pulumi.StringArray{\n\t\t\t\tmycoolteam.Id,\n\t\t\t},\n\t\t\tAuthorizedWriterUsers: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"abc123\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.signalfx.DashboardGroup;\nimport com.pulumi.signalfx.DashboardGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var mydashboardgroup0 = new DashboardGroup(\"mydashboardgroup0\", DashboardGroupArgs.builder()\n            .name(\"My team dashboard group\")\n            .description(\"Cool dashboard group\")\n            .authorizedWriterTeams(mycoolteam.id())\n            .authorizedWriterUsers(\"abc123\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  mydashboardgroup0:\n    type: signalfx:DashboardGroup\n    properties:\n      name: My team dashboard group\n      description: Cool dashboard group\n      authorizedWriterTeams:\n        - ${mycoolteam.id}\n      authorizedWriterUsers:\n        - abc123\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Example with permissions\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as signalfx from \"@pulumi/signalfx\";\n\nconst mydashboardgroupWithpermissions = new signalfx.DashboardGroup(\"mydashboardgroup_withpermissions\", {\n    name: \"My team dashboard group\",\n    description: \"Cool dashboard group\",\n    permissions: [\n        {\n            principalId: \"abc123\",\n            principalType: \"ORG\",\n            actions: [\"READ\"],\n        },\n        {\n            principalId: \"abc456\",\n            principalType: \"USER\",\n            actions: [\n                \"READ\",\n                \"WRITE\",\n            ],\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_signalfx as signalfx\n\nmydashboardgroup_withpermissions = signalfx.DashboardGroup(\"mydashboardgroup_withpermissions\",\n    name=\"My team dashboard group\",\n    description=\"Cool dashboard group\",\n    permissions=[\n        {\n            \"principal_id\": \"abc123\",\n            \"principal_type\": \"ORG\",\n            \"actions\": [\"READ\"],\n        },\n        {\n            \"principal_id\": \"abc456\",\n            \"principal_type\": \"USER\",\n            \"actions\": [\n                \"READ\",\n                \"WRITE\",\n            ],\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing SignalFx = Pulumi.SignalFx;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var mydashboardgroupWithpermissions = new SignalFx.DashboardGroup(\"mydashboardgroup_withpermissions\", new()\n    {\n        Name = \"My team dashboard group\",\n        Description = \"Cool dashboard group\",\n        Permissions = new[]\n        {\n            new SignalFx.Inputs.DashboardGroupPermissionArgs\n            {\n                PrincipalId = \"abc123\",\n                PrincipalType = \"ORG\",\n                Actions = new[]\n                {\n                    \"READ\",\n                },\n            },\n            new SignalFx.Inputs.DashboardGroupPermissionArgs\n            {\n                PrincipalId = \"abc456\",\n                PrincipalType = \"USER\",\n                Actions = new[]\n                {\n                    \"READ\",\n                    \"WRITE\",\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-signalfx/sdk/v7/go/signalfx\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := signalfx.NewDashboardGroup(ctx, \"mydashboardgroup_withpermissions\", \u0026signalfx.DashboardGroupArgs{\n\t\t\tName:        pulumi.String(\"My team dashboard group\"),\n\t\t\tDescription: pulumi.String(\"Cool dashboard group\"),\n\t\t\tPermissions: signalfx.DashboardGroupPermissionArray{\n\t\t\t\t\u0026signalfx.DashboardGroupPermissionArgs{\n\t\t\t\t\tPrincipalId:   pulumi.String(\"abc123\"),\n\t\t\t\t\tPrincipalType: pulumi.String(\"ORG\"),\n\t\t\t\t\tActions: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"READ\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026signalfx.DashboardGroupPermissionArgs{\n\t\t\t\t\tPrincipalId:   pulumi.String(\"abc456\"),\n\t\t\t\t\tPrincipalType: pulumi.String(\"USER\"),\n\t\t\t\t\tActions: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"READ\"),\n\t\t\t\t\t\tpulumi.String(\"WRITE\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.signalfx.DashboardGroup;\nimport com.pulumi.signalfx.DashboardGroupArgs;\nimport com.pulumi.signalfx.inputs.DashboardGroupPermissionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var mydashboardgroupWithpermissions = new DashboardGroup(\"mydashboardgroupWithpermissions\", DashboardGroupArgs.builder()\n            .name(\"My team dashboard group\")\n            .description(\"Cool dashboard group\")\n            .permissions(            \n                DashboardGroupPermissionArgs.builder()\n                    .principalId(\"abc123\")\n                    .principalType(\"ORG\")\n                    .actions(\"READ\")\n                    .build(),\n                DashboardGroupPermissionArgs.builder()\n                    .principalId(\"abc456\")\n                    .principalType(\"USER\")\n                    .actions(                    \n                        \"READ\",\n                        \"WRITE\")\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  mydashboardgroupWithpermissions:\n    type: signalfx:DashboardGroup\n    name: mydashboardgroup_withpermissions\n    properties:\n      name: My team dashboard group\n      description: Cool dashboard group\n      permissions:\n        - principalId: abc123\n          principalType: ORG\n          actions:\n            - READ\n        - principalId: abc456\n          principalType: USER\n          actions:\n            - READ\n            - WRITE\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Example With mirrored dashboards\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as signalfx from \"@pulumi/signalfx\";\n\nconst mydashboardgroupWithmirrors = new signalfx.DashboardGroup(\"mydashboardgroup_withmirrors\", {\n    name: \"My team dashboard group\",\n    description: \"Cool dashboard group\",\n    dashboards: [{\n        dashboardId: gcDashboard.id,\n        nameOverride: \"GC For My Service\",\n        descriptionOverride: \"Garbage Collection dashboard maintained by JVM team\",\n        filterOverrides: [{\n            property: \"service\",\n            values: [\"myservice\"],\n            negated: false,\n        }],\n        variableOverrides: [{\n            property: \"region\",\n            values: [\"us-west1\"],\n            valuesSuggesteds: [\n                \"us-west-1\",\n                \"us-east-1\",\n            ],\n        }],\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_signalfx as signalfx\n\nmydashboardgroup_withmirrors = signalfx.DashboardGroup(\"mydashboardgroup_withmirrors\",\n    name=\"My team dashboard group\",\n    description=\"Cool dashboard group\",\n    dashboards=[{\n        \"dashboard_id\": gc_dashboard[\"id\"],\n        \"name_override\": \"GC For My Service\",\n        \"description_override\": \"Garbage Collection dashboard maintained by JVM team\",\n        \"filter_overrides\": [{\n            \"property\": \"service\",\n            \"values\": [\"myservice\"],\n            \"negated\": False,\n        }],\n        \"variable_overrides\": [{\n            \"property\": \"region\",\n            \"values\": [\"us-west1\"],\n            \"values_suggesteds\": [\n                \"us-west-1\",\n                \"us-east-1\",\n            ],\n        }],\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing SignalFx = Pulumi.SignalFx;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var mydashboardgroupWithmirrors = new SignalFx.DashboardGroup(\"mydashboardgroup_withmirrors\", new()\n    {\n        Name = \"My team dashboard group\",\n        Description = \"Cool dashboard group\",\n        Dashboards = new[]\n        {\n            new SignalFx.Inputs.DashboardGroupDashboardArgs\n            {\n                DashboardId = gcDashboard.Id,\n                NameOverride = \"GC For My Service\",\n                DescriptionOverride = \"Garbage Collection dashboard maintained by JVM team\",\n                FilterOverrides = new[]\n                {\n                    new SignalFx.Inputs.DashboardGroupDashboardFilterOverrideArgs\n                    {\n                        Property = \"service\",\n                        Values = new[]\n                        {\n                            \"myservice\",\n                        },\n                        Negated = false,\n                    },\n                },\n                VariableOverrides = new[]\n                {\n                    new SignalFx.Inputs.DashboardGroupDashboardVariableOverrideArgs\n                    {\n                        Property = \"region\",\n                        Values = new[]\n                        {\n                            \"us-west1\",\n                        },\n                        ValuesSuggesteds = new[]\n                        {\n                            \"us-west-1\",\n                            \"us-east-1\",\n                        },\n                    },\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-signalfx/sdk/v7/go/signalfx\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := signalfx.NewDashboardGroup(ctx, \"mydashboardgroup_withmirrors\", \u0026signalfx.DashboardGroupArgs{\n\t\t\tName:        pulumi.String(\"My team dashboard group\"),\n\t\t\tDescription: pulumi.String(\"Cool dashboard group\"),\n\t\t\tDashboards: signalfx.DashboardGroupDashboardArray{\n\t\t\t\t\u0026signalfx.DashboardGroupDashboardArgs{\n\t\t\t\t\tDashboardId:         pulumi.Any(gcDashboard.Id),\n\t\t\t\t\tNameOverride:        pulumi.String(\"GC For My Service\"),\n\t\t\t\t\tDescriptionOverride: pulumi.String(\"Garbage Collection dashboard maintained by JVM team\"),\n\t\t\t\t\tFilterOverrides: signalfx.DashboardGroupDashboardFilterOverrideArray{\n\t\t\t\t\t\t\u0026signalfx.DashboardGroupDashboardFilterOverrideArgs{\n\t\t\t\t\t\t\tProperty: pulumi.String(\"service\"),\n\t\t\t\t\t\t\tValues: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"myservice\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tNegated: pulumi.Bool(false),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tVariableOverrides: signalfx.DashboardGroupDashboardVariableOverrideArray{\n\t\t\t\t\t\t\u0026signalfx.DashboardGroupDashboardVariableOverrideArgs{\n\t\t\t\t\t\t\tProperty: pulumi.String(\"region\"),\n\t\t\t\t\t\t\tValues: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"us-west1\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tValuesSuggesteds: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"us-west-1\"),\n\t\t\t\t\t\t\t\tpulumi.String(\"us-east-1\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.signalfx.DashboardGroup;\nimport com.pulumi.signalfx.DashboardGroupArgs;\nimport com.pulumi.signalfx.inputs.DashboardGroupDashboardArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var mydashboardgroupWithmirrors = new DashboardGroup(\"mydashboardgroupWithmirrors\", DashboardGroupArgs.builder()\n            .name(\"My team dashboard group\")\n            .description(\"Cool dashboard group\")\n            .dashboards(DashboardGroupDashboardArgs.builder()\n                .dashboardId(gcDashboard.id())\n                .nameOverride(\"GC For My Service\")\n                .descriptionOverride(\"Garbage Collection dashboard maintained by JVM team\")\n                .filterOverrides(DashboardGroupDashboardFilterOverrideArgs.builder()\n                    .property(\"service\")\n                    .values(\"myservice\")\n                    .negated(false)\n                    .build())\n                .variableOverrides(DashboardGroupDashboardVariableOverrideArgs.builder()\n                    .property(\"region\")\n                    .values(\"us-west1\")\n                    .valuesSuggesteds(                    \n                        \"us-west-1\",\n                        \"us-east-1\")\n                    .build())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  mydashboardgroupWithmirrors:\n    type: signalfx:DashboardGroup\n    name: mydashboardgroup_withmirrors\n    properties:\n      name: My team dashboard group\n      description: Cool dashboard group\n      dashboards:\n        - dashboardId: ${gcDashboard.id}\n          nameOverride: GC For My Service\n          descriptionOverride: Garbage Collection dashboard maintained by JVM team\n          filterOverrides:\n            - property: service\n              values:\n                - myservice\n              negated: false\n          variableOverrides:\n            - property: region\n              values:\n                - us-west1\n              valuesSuggesteds:\n                - us-west-1\n                - us-east-1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"authorizedWriterTeams":{"type":"array","items":{"type":"string"},"description":"Team IDs that have write access to this dashboard group. Remember to use an admin's token if using this feature and to include that admin's team (or user id in \u003cspan pulumi-lang-nodejs=\"`authorizedWriterTeams`\" pulumi-lang-dotnet=\"`AuthorizedWriterTeams`\" pulumi-lang-go=\"`authorizedWriterTeams`\" pulumi-lang-python=\"`authorized_writer_teams`\" pulumi-lang-yaml=\"`authorizedWriterTeams`\" pulumi-lang-java=\"`authorizedWriterTeams`\"\u003e`authorized_writer_teams`\u003c/span\u003e). **Note:** Deprecated use \u003cspan pulumi-lang-nodejs=\"`permissions`\" pulumi-lang-dotnet=\"`Permissions`\" pulumi-lang-go=\"`permissions`\" pulumi-lang-python=\"`permissions`\" pulumi-lang-yaml=\"`permissions`\" pulumi-lang-java=\"`permissions`\"\u003e`permissions`\u003c/span\u003e instead.\n","deprecationMessage":"Please use permissions field now"},"authorizedWriterUsers":{"type":"array","items":{"type":"string"},"description":"User IDs that have write access to this dashboard group. Remember to use an admin's token if using this feature and to include that admin's user id (or team id in \u003cspan pulumi-lang-nodejs=\"`authorizedWriterTeams`\" pulumi-lang-dotnet=\"`AuthorizedWriterTeams`\" pulumi-lang-go=\"`authorizedWriterTeams`\" pulumi-lang-python=\"`authorized_writer_teams`\" pulumi-lang-yaml=\"`authorizedWriterTeams`\" pulumi-lang-java=\"`authorizedWriterTeams`\"\u003e`authorized_writer_teams`\u003c/span\u003e). **Note:** Deprecated use \u003cspan pulumi-lang-nodejs=\"`permissions`\" pulumi-lang-dotnet=\"`Permissions`\" pulumi-lang-go=\"`permissions`\" pulumi-lang-python=\"`permissions`\" pulumi-lang-yaml=\"`permissions`\" pulumi-lang-java=\"`permissions`\"\u003e`permissions`\u003c/span\u003e instead.\n","deprecationMessage":"Please use permissions field now"},"dashboards":{"type":"array","items":{"$ref":"#/types/signalfx:index/DashboardGroupDashboard:DashboardGroupDashboard"},"description":"[Mirrored dashboards](https://docs.splunk.com/observability/en/data-visualization/dashboards/dashboard-share-clone-mirror.html#mirror-dashboard) in this dashboard group. **Note:** This feature is not present in all accounts. Please contact support if you are unsure.\n"},"description":{"type":"string","description":"Description of the dashboard group.\n"},"importQualifiers":{"type":"array","items":{"$ref":"#/types/signalfx:index/DashboardGroupImportQualifier:DashboardGroupImportQualifier"}},"name":{"type":"string","description":"Name of the dashboard group.\n"},"permissions":{"type":"array","items":{"$ref":"#/types/signalfx:index/DashboardGroupPermission:DashboardGroupPermission"},"description":"[Permissions](https://docs.splunk.com/Observability/infrastructure/terms-concepts/permissions.html) List of read and write permission configuration to specify which user, team, and organization can view and/or edit your dashboard group. **Note:** This feature is not present in all accounts. Please contact support if you are unsure.\n"},"teams":{"type":"array","items":{"type":"string"},"description":"Team IDs to associate the dashboard group to.\n"}},"required":["name","permissions"],"inputProperties":{"authorizedWriterTeams":{"type":"array","items":{"type":"string"},"description":"Team IDs that have write access to this dashboard group. Remember to use an admin's token if using this feature and to include that admin's team (or user id in \u003cspan pulumi-lang-nodejs=\"`authorizedWriterTeams`\" pulumi-lang-dotnet=\"`AuthorizedWriterTeams`\" pulumi-lang-go=\"`authorizedWriterTeams`\" pulumi-lang-python=\"`authorized_writer_teams`\" pulumi-lang-yaml=\"`authorizedWriterTeams`\" pulumi-lang-java=\"`authorizedWriterTeams`\"\u003e`authorized_writer_teams`\u003c/span\u003e). **Note:** Deprecated use \u003cspan pulumi-lang-nodejs=\"`permissions`\" pulumi-lang-dotnet=\"`Permissions`\" pulumi-lang-go=\"`permissions`\" pulumi-lang-python=\"`permissions`\" pulumi-lang-yaml=\"`permissions`\" pulumi-lang-java=\"`permissions`\"\u003e`permissions`\u003c/span\u003e instead.\n","deprecationMessage":"Please use permissions field now"},"authorizedWriterUsers":{"type":"array","items":{"type":"string"},"description":"User IDs that have write access to this dashboard group. Remember to use an admin's token if using this feature and to include that admin's user id (or team id in \u003cspan pulumi-lang-nodejs=\"`authorizedWriterTeams`\" pulumi-lang-dotnet=\"`AuthorizedWriterTeams`\" pulumi-lang-go=\"`authorizedWriterTeams`\" pulumi-lang-python=\"`authorized_writer_teams`\" pulumi-lang-yaml=\"`authorizedWriterTeams`\" pulumi-lang-java=\"`authorizedWriterTeams`\"\u003e`authorized_writer_teams`\u003c/span\u003e). **Note:** Deprecated use \u003cspan pulumi-lang-nodejs=\"`permissions`\" pulumi-lang-dotnet=\"`Permissions`\" pulumi-lang-go=\"`permissions`\" pulumi-lang-python=\"`permissions`\" pulumi-lang-yaml=\"`permissions`\" pulumi-lang-java=\"`permissions`\"\u003e`permissions`\u003c/span\u003e instead.\n","deprecationMessage":"Please use permissions field now"},"dashboards":{"type":"array","items":{"$ref":"#/types/signalfx:index/DashboardGroupDashboard:DashboardGroupDashboard"},"description":"[Mirrored dashboards](https://docs.splunk.com/observability/en/data-visualization/dashboards/dashboard-share-clone-mirror.html#mirror-dashboard) in this dashboard group. **Note:** This feature is not present in all accounts. Please contact support if you are unsure.\n"},"description":{"type":"string","description":"Description of the dashboard group.\n"},"importQualifiers":{"type":"array","items":{"$ref":"#/types/signalfx:index/DashboardGroupImportQualifier:DashboardGroupImportQualifier"}},"name":{"type":"string","description":"Name of the dashboard group.\n"},"permissions":{"type":"array","items":{"$ref":"#/types/signalfx:index/DashboardGroupPermission:DashboardGroupPermission"},"description":"[Permissions](https://docs.splunk.com/Observability/infrastructure/terms-concepts/permissions.html) List of read and write permission configuration to specify which user, team, and organization can view and/or edit your dashboard group. **Note:** This feature is not present in all accounts. Please contact support if you are unsure.\n"},"teams":{"type":"array","items":{"type":"string"},"description":"Team IDs to associate the dashboard group to.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering DashboardGroup resources.\n","properties":{"authorizedWriterTeams":{"type":"array","items":{"type":"string"},"description":"Team IDs that have write access to this dashboard group. Remember to use an admin's token if using this feature and to include that admin's team (or user id in \u003cspan pulumi-lang-nodejs=\"`authorizedWriterTeams`\" pulumi-lang-dotnet=\"`AuthorizedWriterTeams`\" pulumi-lang-go=\"`authorizedWriterTeams`\" pulumi-lang-python=\"`authorized_writer_teams`\" pulumi-lang-yaml=\"`authorizedWriterTeams`\" pulumi-lang-java=\"`authorizedWriterTeams`\"\u003e`authorized_writer_teams`\u003c/span\u003e). **Note:** Deprecated use \u003cspan pulumi-lang-nodejs=\"`permissions`\" pulumi-lang-dotnet=\"`Permissions`\" pulumi-lang-go=\"`permissions`\" pulumi-lang-python=\"`permissions`\" pulumi-lang-yaml=\"`permissions`\" pulumi-lang-java=\"`permissions`\"\u003e`permissions`\u003c/span\u003e instead.\n","deprecationMessage":"Please use permissions field now"},"authorizedWriterUsers":{"type":"array","items":{"type":"string"},"description":"User IDs that have write access to this dashboard group. Remember to use an admin's token if using this feature and to include that admin's user id (or team id in \u003cspan pulumi-lang-nodejs=\"`authorizedWriterTeams`\" pulumi-lang-dotnet=\"`AuthorizedWriterTeams`\" pulumi-lang-go=\"`authorizedWriterTeams`\" pulumi-lang-python=\"`authorized_writer_teams`\" pulumi-lang-yaml=\"`authorizedWriterTeams`\" pulumi-lang-java=\"`authorizedWriterTeams`\"\u003e`authorized_writer_teams`\u003c/span\u003e). **Note:** Deprecated use \u003cspan pulumi-lang-nodejs=\"`permissions`\" pulumi-lang-dotnet=\"`Permissions`\" pulumi-lang-go=\"`permissions`\" pulumi-lang-python=\"`permissions`\" pulumi-lang-yaml=\"`permissions`\" pulumi-lang-java=\"`permissions`\"\u003e`permissions`\u003c/span\u003e instead.\n","deprecationMessage":"Please use permissions field now"},"dashboards":{"type":"array","items":{"$ref":"#/types/signalfx:index/DashboardGroupDashboard:DashboardGroupDashboard"},"description":"[Mirrored dashboards](https://docs.splunk.com/observability/en/data-visualization/dashboards/dashboard-share-clone-mirror.html#mirror-dashboard) in this dashboard group. **Note:** This feature is not present in all accounts. Please contact support if you are unsure.\n"},"description":{"type":"string","description":"Description of the dashboard group.\n"},"importQualifiers":{"type":"array","items":{"$ref":"#/types/signalfx:index/DashboardGroupImportQualifier:DashboardGroupImportQualifier"}},"name":{"type":"string","description":"Name of the dashboard group.\n"},"permissions":{"type":"array","items":{"$ref":"#/types/signalfx:index/DashboardGroupPermission:DashboardGroupPermission"},"description":"[Permissions](https://docs.splunk.com/Observability/infrastructure/terms-concepts/permissions.html) List of read and write permission configuration to specify which user, team, and organization can view and/or edit your dashboard group. **Note:** This feature is not present in all accounts. Please contact support if you are unsure.\n"},"teams":{"type":"array","items":{"type":"string"},"description":"Team IDs to associate the dashboard group to.\n"}},"type":"object"}},"signalfx:index/dataLink:DataLink":{"description":"Manage Splunk Observability Cloud [Data Links](https://help.splunk.com/en/splunk-observability-cloud/data-tools/navigate-to-related-resources-with-data-links).\n\n## Example\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as signalfx from \"@pulumi/signalfx\";\n\n// A global link to Splunk Observability Cloud dashboard.\nconst myDataLink = new signalfx.DataLink(\"my_data_link\", {\n    propertyName: \"pname\",\n    propertyValue: \"pvalue\",\n    targetSignalfxDashboards: [{\n        isDefault: true,\n        name: \"sfx_dash\",\n        dashboardGroupId: mydashboardgroup0.id,\n        dashboardId: mydashboard0.id,\n    }],\n});\n// A dashboard-specific link to an external URL\nconst myDataLinkDash = new signalfx.DataLink(\"my_data_link_dash\", {\n    contextDashboardId: mydashboard0.id,\n    propertyName: \"pname2\",\n    propertyValue: \"pvalue\",\n    targetExternalUrls: [{\n        name: \"ex_url\",\n        timeFormat: \"ISO8601\",\n        url: \"https://www.example.com\",\n        propertyKeyMapping: {\n            foo: \"bar\",\n        },\n    }],\n});\n// A link to an AppDynamics Service\nconst myDataLinkAppd = new signalfx.DataLink(\"my_data_link_appd\", {\n    propertyName: \"pname3\",\n    propertyValue: \"pvalue\",\n    targetAppdUrls: [{\n        name: \"appd_url\",\n        url: \"https://www.example.saas.appdynamics.com/#/application=1234\u0026component=5678\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_signalfx as signalfx\n\n# A global link to Splunk Observability Cloud dashboard.\nmy_data_link = signalfx.DataLink(\"my_data_link\",\n    property_name=\"pname\",\n    property_value=\"pvalue\",\n    target_signalfx_dashboards=[{\n        \"is_default\": True,\n        \"name\": \"sfx_dash\",\n        \"dashboard_group_id\": mydashboardgroup0[\"id\"],\n        \"dashboard_id\": mydashboard0[\"id\"],\n    }])\n# A dashboard-specific link to an external URL\nmy_data_link_dash = signalfx.DataLink(\"my_data_link_dash\",\n    context_dashboard_id=mydashboard0[\"id\"],\n    property_name=\"pname2\",\n    property_value=\"pvalue\",\n    target_external_urls=[{\n        \"name\": \"ex_url\",\n        \"time_format\": \"ISO8601\",\n        \"url\": \"https://www.example.com\",\n        \"property_key_mapping\": {\n            \"foo\": \"bar\",\n        },\n    }])\n# A link to an AppDynamics Service\nmy_data_link_appd = signalfx.DataLink(\"my_data_link_appd\",\n    property_name=\"pname3\",\n    property_value=\"pvalue\",\n    target_appd_urls=[{\n        \"name\": \"appd_url\",\n        \"url\": \"https://www.example.saas.appdynamics.com/#/application=1234\u0026component=5678\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing SignalFx = Pulumi.SignalFx;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // A global link to Splunk Observability Cloud dashboard.\n    var myDataLink = new SignalFx.DataLink(\"my_data_link\", new()\n    {\n        PropertyName = \"pname\",\n        PropertyValue = \"pvalue\",\n        TargetSignalfxDashboards = new[]\n        {\n            new SignalFx.Inputs.DataLinkTargetSignalfxDashboardArgs\n            {\n                IsDefault = true,\n                Name = \"sfx_dash\",\n                DashboardGroupId = mydashboardgroup0.Id,\n                DashboardId = mydashboard0.Id,\n            },\n        },\n    });\n\n    // A dashboard-specific link to an external URL\n    var myDataLinkDash = new SignalFx.DataLink(\"my_data_link_dash\", new()\n    {\n        ContextDashboardId = mydashboard0.Id,\n        PropertyName = \"pname2\",\n        PropertyValue = \"pvalue\",\n        TargetExternalUrls = new[]\n        {\n            new SignalFx.Inputs.DataLinkTargetExternalUrlArgs\n            {\n                Name = \"ex_url\",\n                TimeFormat = \"ISO8601\",\n                Url = \"https://www.example.com\",\n                PropertyKeyMapping = \n                {\n                    { \"foo\", \"bar\" },\n                },\n            },\n        },\n    });\n\n    // A link to an AppDynamics Service\n    var myDataLinkAppd = new SignalFx.DataLink(\"my_data_link_appd\", new()\n    {\n        PropertyName = \"pname3\",\n        PropertyValue = \"pvalue\",\n        TargetAppdUrls = new[]\n        {\n            new SignalFx.Inputs.DataLinkTargetAppdUrlArgs\n            {\n                Name = \"appd_url\",\n                Url = \"https://www.example.saas.appdynamics.com/#/application=1234\u0026component=5678\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-signalfx/sdk/v7/go/signalfx\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// A global link to Splunk Observability Cloud dashboard.\n\t\t_, err := signalfx.NewDataLink(ctx, \"my_data_link\", \u0026signalfx.DataLinkArgs{\n\t\t\tPropertyName:  pulumi.String(\"pname\"),\n\t\t\tPropertyValue: pulumi.String(\"pvalue\"),\n\t\t\tTargetSignalfxDashboards: signalfx.DataLinkTargetSignalfxDashboardArray{\n\t\t\t\t\u0026signalfx.DataLinkTargetSignalfxDashboardArgs{\n\t\t\t\t\tIsDefault:        pulumi.Bool(true),\n\t\t\t\t\tName:             pulumi.String(\"sfx_dash\"),\n\t\t\t\t\tDashboardGroupId: pulumi.Any(mydashboardgroup0.Id),\n\t\t\t\t\tDashboardId:      pulumi.Any(mydashboard0.Id),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// A dashboard-specific link to an external URL\n\t\t_, err = signalfx.NewDataLink(ctx, \"my_data_link_dash\", \u0026signalfx.DataLinkArgs{\n\t\t\tContextDashboardId: pulumi.Any(mydashboard0.Id),\n\t\t\tPropertyName:       pulumi.String(\"pname2\"),\n\t\t\tPropertyValue:      pulumi.String(\"pvalue\"),\n\t\t\tTargetExternalUrls: signalfx.DataLinkTargetExternalUrlArray{\n\t\t\t\t\u0026signalfx.DataLinkTargetExternalUrlArgs{\n\t\t\t\t\tName:       pulumi.String(\"ex_url\"),\n\t\t\t\t\tTimeFormat: pulumi.String(\"ISO8601\"),\n\t\t\t\t\tUrl:        pulumi.String(\"https://www.example.com\"),\n\t\t\t\t\tPropertyKeyMapping: pulumi.StringMap{\n\t\t\t\t\t\t\"foo\": pulumi.String(\"bar\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// A link to an AppDynamics Service\n\t\t_, err = signalfx.NewDataLink(ctx, \"my_data_link_appd\", \u0026signalfx.DataLinkArgs{\n\t\t\tPropertyName:  pulumi.String(\"pname3\"),\n\t\t\tPropertyValue: pulumi.String(\"pvalue\"),\n\t\t\tTargetAppdUrls: signalfx.DataLinkTargetAppdUrlArray{\n\t\t\t\t\u0026signalfx.DataLinkTargetAppdUrlArgs{\n\t\t\t\t\tName: pulumi.String(\"appd_url\"),\n\t\t\t\t\tUrl:  pulumi.String(\"https://www.example.saas.appdynamics.com/#/application=1234\u0026component=5678\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.signalfx.DataLink;\nimport com.pulumi.signalfx.DataLinkArgs;\nimport com.pulumi.signalfx.inputs.DataLinkTargetSignalfxDashboardArgs;\nimport com.pulumi.signalfx.inputs.DataLinkTargetExternalUrlArgs;\nimport com.pulumi.signalfx.inputs.DataLinkTargetAppdUrlArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // A global link to Splunk Observability Cloud dashboard.\n        var myDataLink = new DataLink(\"myDataLink\", DataLinkArgs.builder()\n            .propertyName(\"pname\")\n            .propertyValue(\"pvalue\")\n            .targetSignalfxDashboards(DataLinkTargetSignalfxDashboardArgs.builder()\n                .isDefault(true)\n                .name(\"sfx_dash\")\n                .dashboardGroupId(mydashboardgroup0.id())\n                .dashboardId(mydashboard0.id())\n                .build())\n            .build());\n\n        // A dashboard-specific link to an external URL\n        var myDataLinkDash = new DataLink(\"myDataLinkDash\", DataLinkArgs.builder()\n            .contextDashboardId(mydashboard0.id())\n            .propertyName(\"pname2\")\n            .propertyValue(\"pvalue\")\n            .targetExternalUrls(DataLinkTargetExternalUrlArgs.builder()\n                .name(\"ex_url\")\n                .timeFormat(\"ISO8601\")\n                .url(\"https://www.example.com\")\n                .propertyKeyMapping(Map.of(\"foo\", \"bar\"))\n                .build())\n            .build());\n\n        // A link to an AppDynamics Service\n        var myDataLinkAppd = new DataLink(\"myDataLinkAppd\", DataLinkArgs.builder()\n            .propertyName(\"pname3\")\n            .propertyValue(\"pvalue\")\n            .targetAppdUrls(DataLinkTargetAppdUrlArgs.builder()\n                .name(\"appd_url\")\n                .url(\"https://www.example.saas.appdynamics.com/#/application=1234\u0026component=5678\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # A global link to Splunk Observability Cloud dashboard.\n  myDataLink:\n    type: signalfx:DataLink\n    name: my_data_link\n    properties:\n      propertyName: pname\n      propertyValue: pvalue\n      targetSignalfxDashboards:\n        - isDefault: true\n          name: sfx_dash\n          dashboardGroupId: ${mydashboardgroup0.id}\n          dashboardId: ${mydashboard0.id}\n  # A dashboard-specific link to an external URL\n  myDataLinkDash:\n    type: signalfx:DataLink\n    name: my_data_link_dash\n    properties:\n      contextDashboardId: ${mydashboard0.id}\n      propertyName: pname2\n      propertyValue: pvalue\n      targetExternalUrls:\n        - name: ex_url\n          timeFormat: ISO8601\n          url: https://www.example.com\n          propertyKeyMapping:\n            foo: bar\n  # A link to an AppDynamics Service\n  myDataLinkAppd:\n    type: signalfx:DataLink\n    name: my_data_link_appd\n    properties:\n      propertyName: pname3\n      propertyValue: pvalue\n      targetAppdUrls:\n        - name: appd_url\n          url: https://www.example.saas.appdynamics.com/#/application=1234\u0026component=5678\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"contextDashboardId":{"type":"string","description":"If provided, scopes this data link to the supplied dashboard id. If omitted then the link will be global.\n"},"propertyName":{"type":"string","description":"Name (key) of the metadata that's the trigger of a data link. If you specify \u003cspan pulumi-lang-nodejs=\"`propertyValue`\" pulumi-lang-dotnet=\"`PropertyValue`\" pulumi-lang-go=\"`propertyValue`\" pulumi-lang-python=\"`property_value`\" pulumi-lang-yaml=\"`propertyValue`\" pulumi-lang-java=\"`propertyValue`\"\u003e`property_value`\u003c/span\u003e, you must specify \u003cspan pulumi-lang-nodejs=\"`propertyName`\" pulumi-lang-dotnet=\"`PropertyName`\" pulumi-lang-go=\"`propertyName`\" pulumi-lang-python=\"`property_name`\" pulumi-lang-yaml=\"`propertyName`\" pulumi-lang-java=\"`propertyName`\"\u003e`property_name`\u003c/span\u003e.\n"},"propertyValue":{"type":"string","description":"Value of the metadata that's the trigger of a data link. If you specify this property, you must also specify \u003cspan pulumi-lang-nodejs=\"`propertyName`\" pulumi-lang-dotnet=\"`PropertyName`\" pulumi-lang-go=\"`propertyName`\" pulumi-lang-python=\"`property_name`\" pulumi-lang-yaml=\"`propertyName`\" pulumi-lang-java=\"`propertyName`\"\u003e`property_name`\u003c/span\u003e.\n"},"targetAppdUrls":{"type":"array","items":{"$ref":"#/types/signalfx:index/DataLinkTargetAppdUrl:DataLinkTargetAppdUrl"},"description":"Link to an AppDynamics URL\n"},"targetExternalUrls":{"type":"array","items":{"$ref":"#/types/signalfx:index/DataLinkTargetExternalUrl:DataLinkTargetExternalUrl"},"description":"Link to an external URL\n"},"targetSignalfxDashboards":{"type":"array","items":{"$ref":"#/types/signalfx:index/DataLinkTargetSignalfxDashboard:DataLinkTargetSignalfxDashboard"},"description":"Link to a Splunk Observability Cloud dashboard\n"},"targetSplunks":{"type":"array","items":{"$ref":"#/types/signalfx:index/DataLinkTargetSplunk:DataLinkTargetSplunk"},"description":"Link to an external URL\n"}},"inputProperties":{"contextDashboardId":{"type":"string","description":"If provided, scopes this data link to the supplied dashboard id. If omitted then the link will be global.\n"},"propertyName":{"type":"string","description":"Name (key) of the metadata that's the trigger of a data link. If you specify \u003cspan pulumi-lang-nodejs=\"`propertyValue`\" pulumi-lang-dotnet=\"`PropertyValue`\" pulumi-lang-go=\"`propertyValue`\" pulumi-lang-python=\"`property_value`\" pulumi-lang-yaml=\"`propertyValue`\" pulumi-lang-java=\"`propertyValue`\"\u003e`property_value`\u003c/span\u003e, you must specify \u003cspan pulumi-lang-nodejs=\"`propertyName`\" pulumi-lang-dotnet=\"`PropertyName`\" pulumi-lang-go=\"`propertyName`\" pulumi-lang-python=\"`property_name`\" pulumi-lang-yaml=\"`propertyName`\" pulumi-lang-java=\"`propertyName`\"\u003e`property_name`\u003c/span\u003e.\n"},"propertyValue":{"type":"string","description":"Value of the metadata that's the trigger of a data link. If you specify this property, you must also specify \u003cspan pulumi-lang-nodejs=\"`propertyName`\" pulumi-lang-dotnet=\"`PropertyName`\" pulumi-lang-go=\"`propertyName`\" pulumi-lang-python=\"`property_name`\" pulumi-lang-yaml=\"`propertyName`\" pulumi-lang-java=\"`propertyName`\"\u003e`property_name`\u003c/span\u003e.\n"},"targetAppdUrls":{"type":"array","items":{"$ref":"#/types/signalfx:index/DataLinkTargetAppdUrl:DataLinkTargetAppdUrl"},"description":"Link to an AppDynamics URL\n"},"targetExternalUrls":{"type":"array","items":{"$ref":"#/types/signalfx:index/DataLinkTargetExternalUrl:DataLinkTargetExternalUrl"},"description":"Link to an external URL\n"},"targetSignalfxDashboards":{"type":"array","items":{"$ref":"#/types/signalfx:index/DataLinkTargetSignalfxDashboard:DataLinkTargetSignalfxDashboard"},"description":"Link to a Splunk Observability Cloud dashboard\n"},"targetSplunks":{"type":"array","items":{"$ref":"#/types/signalfx:index/DataLinkTargetSplunk:DataLinkTargetSplunk"},"description":"Link to an external URL\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering DataLink resources.\n","properties":{"contextDashboardId":{"type":"string","description":"If provided, scopes this data link to the supplied dashboard id. If omitted then the link will be global.\n"},"propertyName":{"type":"string","description":"Name (key) of the metadata that's the trigger of a data link. If you specify \u003cspan pulumi-lang-nodejs=\"`propertyValue`\" pulumi-lang-dotnet=\"`PropertyValue`\" pulumi-lang-go=\"`propertyValue`\" pulumi-lang-python=\"`property_value`\" pulumi-lang-yaml=\"`propertyValue`\" pulumi-lang-java=\"`propertyValue`\"\u003e`property_value`\u003c/span\u003e, you must specify \u003cspan pulumi-lang-nodejs=\"`propertyName`\" pulumi-lang-dotnet=\"`PropertyName`\" pulumi-lang-go=\"`propertyName`\" pulumi-lang-python=\"`property_name`\" pulumi-lang-yaml=\"`propertyName`\" pulumi-lang-java=\"`propertyName`\"\u003e`property_name`\u003c/span\u003e.\n"},"propertyValue":{"type":"string","description":"Value of the metadata that's the trigger of a data link. If you specify this property, you must also specify \u003cspan pulumi-lang-nodejs=\"`propertyName`\" pulumi-lang-dotnet=\"`PropertyName`\" pulumi-lang-go=\"`propertyName`\" pulumi-lang-python=\"`property_name`\" pulumi-lang-yaml=\"`propertyName`\" pulumi-lang-java=\"`propertyName`\"\u003e`property_name`\u003c/span\u003e.\n"},"targetAppdUrls":{"type":"array","items":{"$ref":"#/types/signalfx:index/DataLinkTargetAppdUrl:DataLinkTargetAppdUrl"},"description":"Link to an AppDynamics URL\n"},"targetExternalUrls":{"type":"array","items":{"$ref":"#/types/signalfx:index/DataLinkTargetExternalUrl:DataLinkTargetExternalUrl"},"description":"Link to an external URL\n"},"targetSignalfxDashboards":{"type":"array","items":{"$ref":"#/types/signalfx:index/DataLinkTargetSignalfxDashboard:DataLinkTargetSignalfxDashboard"},"description":"Link to a Splunk Observability Cloud dashboard\n"},"targetSplunks":{"type":"array","items":{"$ref":"#/types/signalfx:index/DataLinkTargetSplunk:DataLinkTargetSplunk"},"description":"Link to an external URL\n"}},"type":"object"}},"signalfx:index/detector:Detector":{"description":"Provides a Splunk Observability Cloud detector resource. This can be used to create and manage detectors.\n\nIf you're interested in using Splunk Observability Cloud detector features such as Historical Anomaly, Resource Running Out, or others, consider building them in the UI first and then use the \"Show SignalFlow\" feature to extract the value for \u003cspan pulumi-lang-nodejs=\"`programText`\" pulumi-lang-dotnet=\"`ProgramText`\" pulumi-lang-go=\"`programText`\" pulumi-lang-python=\"`program_text`\" pulumi-lang-yaml=\"`programText`\" pulumi-lang-java=\"`programText`\"\u003e`program_text`\u003c/span\u003e. You can also see the [documentation for detector functions in signalflow-library](https://github.com/signalfx/signalflow-library/tree/master/library/signalfx/detectors).\n\n\u003e **NOTE** When you want to change or remove write permissions for a user other than yourself regarding detectors, use a session token of an administrator to authenticate the Splunk Observability Cloud provider. See [Operations that require a session token for an administrator](https://dev.splunk.com/observability/docs/administration/authtokens#Operations-that-require-a-session-token-for-an-administrator).\n\n## Example\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as signalfx from \"@pulumi/signalfx\";\n\nconst config = new pulumi.Config();\nconst clusters = config.getObject\u003cany\u003e(\"clusters\") || [\n    \"clusterA\",\n    \"clusterB\",\n];\nconst applicationDelay: signalfx.Detector[] = [];\nfor (const range = {value: 0}; range.value \u003c clusters.length; range.value++) {\n    applicationDelay.push(new signalfx.Detector(`application_delay-${range.value}`, {\n        name: ` max average delay - ${clusters[range.value]}`,\n        description: `your application is slow - ${clusters[range.value]}`,\n        maxDelay: 30,\n        tags: [\n            \"app-backend\",\n            \"staging\",\n        ],\n        authorizedWriterTeams: [mycoolteam.id],\n        authorizedWriterUsers: [\"abc123\"],\n        programText: `signal = data('app.delay', filter('cluster','${clusters[range.value]}'), extrapolation='last_value', maxExtrapolations=5).max()\ndetect(when(signal \u003e 60, '5m')).publish('Processing old messages 5m')\ndetect(when(signal \u003e 60, '30m')).publish('Processing old messages 30m')\n`,\n        rules: [\n            {\n                description: \"maximum \u003e 60 for 5m\",\n                severity: \"Warning\",\n                detectLabel: \"Processing old messages 5m\",\n                notifications: [\"Email,foo-alerts@bar.com\"],\n            },\n            {\n                description: \"maximum \u003e 60 for 30m\",\n                severity: \"Critical\",\n                detectLabel: \"Processing old messages 30m\",\n                notifications: [\"Email,foo-alerts@bar.com\"],\n            },\n        ],\n    }));\n}\n```\n```python\nimport pulumi\nimport pulumi_signalfx as signalfx\n\nconfig = pulumi.Config()\nclusters = config.get_object(\"clusters\")\nif clusters is None:\n    clusters = [\n        \"clusterA\",\n        \"clusterB\",\n    ]\napplication_delay = []\nfor range in [{\"value\": i} for i in range(0, len(clusters))]:\n    application_delay.append(signalfx.Detector(f\"application_delay-{range['value']}\",\n        name=f\" max average delay - {clusters[range['value']]}\",\n        description=f\"your application is slow - {clusters[range['value']]}\",\n        max_delay=30,\n        tags=[\n            \"app-backend\",\n            \"staging\",\n        ],\n        authorized_writer_teams=[mycoolteam[\"id\"]],\n        authorized_writer_users=[\"abc123\"],\n        program_text=f\"\"\"signal = data('app.delay', filter('cluster','{clusters[range[\"value\"]]}'), extrapolation='last_value', maxExtrapolations=5).max()\ndetect(when(signal \u003e 60, '5m')).publish('Processing old messages 5m')\ndetect(when(signal \u003e 60, '30m')).publish('Processing old messages 30m')\n\"\"\",\n        rules=[\n            {\n                \"description\": \"maximum \u003e 60 for 5m\",\n                \"severity\": \"Warning\",\n                \"detect_label\": \"Processing old messages 5m\",\n                \"notifications\": [\"Email,foo-alerts@bar.com\"],\n            },\n            {\n                \"description\": \"maximum \u003e 60 for 30m\",\n                \"severity\": \"Critical\",\n                \"detect_label\": \"Processing old messages 30m\",\n                \"notifications\": [\"Email,foo-alerts@bar.com\"],\n            },\n        ]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing SignalFx = Pulumi.SignalFx;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var clusters = config.GetObject\u003cdynamic\u003e(\"clusters\") ?? new[]\n    {\n        \"clusterA\",\n        \"clusterB\",\n    };\n    var applicationDelay = new List\u003cSignalFx.Detector\u003e();\n    for (var rangeIndex = 0; rangeIndex \u003c clusters.Length; rangeIndex++)\n    {\n        var range = new { Value = rangeIndex };\n        applicationDelay.Add(new SignalFx.Detector($\"application_delay-{range.Value}\", new()\n        {\n            Name = $\" max average delay - {clusters[range.Value]}\",\n            Description = $\"your application is slow - {clusters[range.Value]}\",\n            MaxDelay = 30,\n            Tags = new[]\n            {\n                \"app-backend\",\n                \"staging\",\n            },\n            AuthorizedWriterTeams = new[]\n            {\n                mycoolteam.Id,\n            },\n            AuthorizedWriterUsers = new[]\n            {\n                \"abc123\",\n            },\n            ProgramText = @$\"signal = data('app.delay', filter('cluster','{clusters[range.Value]}'), extrapolation='last_value', maxExtrapolations=5).max()\ndetect(when(signal \u003e 60, '5m')).publish('Processing old messages 5m')\ndetect(when(signal \u003e 60, '30m')).publish('Processing old messages 30m')\n\",\n            Rules = new[]\n            {\n                new SignalFx.Inputs.DetectorRuleArgs\n                {\n                    Description = \"maximum \u003e 60 for 5m\",\n                    Severity = \"Warning\",\n                    DetectLabel = \"Processing old messages 5m\",\n                    Notifications = new[]\n                    {\n                        \"Email,foo-alerts@bar.com\",\n                    },\n                },\n                new SignalFx.Inputs.DetectorRuleArgs\n                {\n                    Description = \"maximum \u003e 60 for 30m\",\n                    Severity = \"Critical\",\n                    DetectLabel = \"Processing old messages 30m\",\n                    Notifications = new[]\n                    {\n                        \"Email,foo-alerts@bar.com\",\n                    },\n                },\n            },\n        }));\n    }\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-signalfx/sdk/v7/go/signalfx\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tclusters := []string{\n\t\t\t\"clusterA\",\n\t\t\t\"clusterB\",\n\t\t}\n\t\tif param := cfg.GetObject(\"clusters\"); param != nil {\n\t\t\tclusters = param\n\t\t}\n\t\tvar applicationDelay []*signalfx.Detector\n\t\tfor index := 0; index \u003c len(clusters); index++ {\n\t\t\tkey0 := index\n\t\t\tval0 := index\n\t\t\t__res, err := signalfx.NewDetector(ctx, fmt.Sprintf(\"application_delay-%v\", key0), \u0026signalfx.DetectorArgs{\n\t\t\t\tName:        pulumi.Sprintf(\" max average delay - %v\", clusters[val0]),\n\t\t\t\tDescription: pulumi.Sprintf(\"your application is slow - %v\", clusters[val0]),\n\t\t\t\tMaxDelay:    pulumi.Int(30),\n\t\t\t\tTags: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"app-backend\"),\n\t\t\t\t\tpulumi.String(\"staging\"),\n\t\t\t\t},\n\t\t\t\tAuthorizedWriterTeams: pulumi.StringArray{\n\t\t\t\t\tmycoolteam.Id,\n\t\t\t\t},\n\t\t\t\tAuthorizedWriterUsers: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"abc123\"),\n\t\t\t\t},\n\t\t\t\tProgramText: pulumi.Sprintf(\"signal = data('app.delay', filter('cluster','%v'), extrapolation='last_value', maxExtrapolations=5).max()\\ndetect(when(signal \u003e 60, '5m')).publish('Processing old messages 5m')\\ndetect(when(signal \u003e 60, '30m')).publish('Processing old messages 30m')\\n\", clusters[val0]),\n\t\t\t\tRules: signalfx.DetectorRuleArray{\n\t\t\t\t\t\u0026signalfx.DetectorRuleArgs{\n\t\t\t\t\t\tDescription: pulumi.String(\"maximum \u003e 60 for 5m\"),\n\t\t\t\t\t\tSeverity:    pulumi.String(\"Warning\"),\n\t\t\t\t\t\tDetectLabel: pulumi.String(\"Processing old messages 5m\"),\n\t\t\t\t\t\tNotifications: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"Email,foo-alerts@bar.com\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t\u0026signalfx.DetectorRuleArgs{\n\t\t\t\t\t\tDescription: pulumi.String(\"maximum \u003e 60 for 30m\"),\n\t\t\t\t\t\tSeverity:    pulumi.String(\"Critical\"),\n\t\t\t\t\t\tDetectLabel: pulumi.String(\"Processing old messages 30m\"),\n\t\t\t\t\t\tNotifications: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"Email,foo-alerts@bar.com\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t})\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tapplicationDelay = append(applicationDelay, __res)\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.signalfx.Detector;\nimport com.pulumi.signalfx.DetectorArgs;\nimport com.pulumi.signalfx.inputs.DetectorRuleArgs;\nimport com.pulumi.codegen.internal.KeyedValue;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var clusters = config.get(\"clusters\").orElse(List.of(        \n            \"clusterA\",\n            \"clusterB\"));\n        for (var i = 0; i \u003c clusters.length(); i++) {\n            new Detector(\"applicationDelay-\" + i, DetectorArgs.builder()\n                .name(String.format(\" max average delay - %s\", clusters[range.value()]))\n                .description(String.format(\"your application is slow - %s\", clusters[range.value()]))\n                .maxDelay(30)\n                .tags(                \n                    \"app-backend\",\n                    \"staging\")\n                .authorizedWriterTeams(mycoolteam.id())\n                .authorizedWriterUsers(\"abc123\")\n                .programText(\"\"\"\nsignal = data('app.delay', filter('cluster','%s'), extrapolation='last_value', maxExtrapolations=5).max()\ndetect(when(signal \u003e 60, '5m')).publish('Processing old messages 5m')\ndetect(when(signal \u003e 60, '30m')).publish('Processing old messages 30m')\n\", clusters[range.value()]))\n                .rules(                \n                    DetectorRuleArgs.builder()\n                        .description(\"maximum \u003e 60 for 5m\")\n                        .severity(\"Warning\")\n                        .detectLabel(\"Processing old messages 5m\")\n                        .notifications(\"Email,foo-alerts@bar.com\")\n                        .build(),\n                    DetectorRuleArgs.builder()\n                        .description(\"maximum \u003e 60 for 30m\")\n                        .severity(\"Critical\")\n                        .detectLabel(\"Processing old messages 30m\")\n                        .notifications(\"Email,foo-alerts@bar.com\")\n                        .build())\n                .build());\n\n        \n}\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Notification format\n\nAs Splunk Observability Cloud supports different notification mechanisms, use a comma-delimited string to provide inputs. If you want to specify multiple notifications, each must be a member in the list, like so:\n\n```\nnotifications = [\"Email,foo-alerts@example.com\", \"Slack,credentialId,channel\"]\n```\n\nSee [Splunk Observability Cloud Docs](https://dev.splunk.com/observability/reference/api/detectors/latest) for more information.\n\nHere are some example of how to configure each notification type:\n\n### Email\n\n```\nnotifications = [\"Email,foo-alerts@bar.com\"]\n```\n\n### Jira\n\nNote that the `credentialId` is the Splunk-provided ID shown after setting up your Jira integration. See also \u003cspan pulumi-lang-nodejs=\"`signalfx.jira.Integration`\" pulumi-lang-dotnet=\"`signalfx.jira.Integration`\" pulumi-lang-go=\"`jira.Integration`\" pulumi-lang-python=\"`jira.Integration`\" pulumi-lang-yaml=\"`signalfx.jira.Integration`\" pulumi-lang-java=\"`signalfx.jira.Integration`\"\u003e`signalfx.jira.Integration`\u003c/span\u003e.\n\n```\nnotifications = [\"Jira,credentialId\"]\n```\n\n### OpsGenie\n\nNote that the `credentialId` is the Splunk-provided ID shown after setting up your Opsgenie integration. `Team` here is hardcoded as the `responderType` as that is the only acceptable type as per the API docs.\n\n```\nnotifications = [\"Opsgenie,credentialId,responderName,responderId,Team\"]\n```\n\n### PagerDuty\n\n```\nnotifications = [\"PagerDuty,credentialId\"]\n```\n\n### Slack\n\nExclude the `#` on the channel name:\n\n```\nnotifications = [\"Slack,credentialId,channel\"]\n```\n\n### Team\n\nSends [notifications to a team](https://help.splunk.com/en/splunk-observability-cloud/administer/user-and-team-management/manage-teams/manage-team-notifications).\n\n```\nnotifications = [\"Team,teamId\"]\n```\n\n### TeamEmail\n\nSends an email to every member of a team.\n\n```\nnotifications = [\"TeamEmail,teamId\"]\n```\n\n### Splunk On-Call (formerly VictorOps)\n\n```\nnotifications = [\"VictorOps,credentialId,routingKey\"]\n```\n\n### Webhooks\n\nYou need to include all the commas even if you only use a credential id.\n\nYou can either configure a Webhook to use an existing integration's credential id:\n\n```\nnotifications = [\"Webhook,credentialId,,\"]\n```\n\nOr configure one inline:\n\n```\nnotifications = [\"Webhook,,secret,url\"]\n```\n\n## Import\n\nDetectors can be imported using their string ID (recoverable from URL: `/#/detector/v2/abc123/edit`, e.g.\n\n```sh\n$ pulumi import signalfx:index/detector:Detector application_delay abc123\n```\n\n","properties":{"authorizedWriterTeams":{"type":"array","items":{"type":"string"},"description":"Team IDs that have write access to this detector. Remember to use an admin's token if using this feature and to include that admin's team id (or user id in \u003cspan pulumi-lang-nodejs=\"`authorizedWriterUsers`\" pulumi-lang-dotnet=\"`AuthorizedWriterUsers`\" pulumi-lang-go=\"`authorizedWriterUsers`\" pulumi-lang-python=\"`authorized_writer_users`\" pulumi-lang-yaml=\"`authorizedWriterUsers`\" pulumi-lang-java=\"`authorizedWriterUsers`\"\u003e`authorized_writer_users`\u003c/span\u003e).\n"},"authorizedWriterUsers":{"type":"array","items":{"type":"string"},"description":"User IDs that have write access to this detector. Remember to use an admin's token if using this feature and to include that admin's user id (or team id in \u003cspan pulumi-lang-nodejs=\"`authorizedWriterTeams`\" pulumi-lang-dotnet=\"`AuthorizedWriterTeams`\" pulumi-lang-go=\"`authorizedWriterTeams`\" pulumi-lang-python=\"`authorized_writer_teams`\" pulumi-lang-yaml=\"`authorizedWriterTeams`\" pulumi-lang-java=\"`authorizedWriterTeams`\"\u003e`authorized_writer_teams`\u003c/span\u003e).\n"},"description":{"type":"string","description":"Description of the detector.\n"},"detectorOrigin":{"type":"string","description":"Indicates how a detector was created. The possible values are: Standard and AutoDetectCustomization. The value can only be set when creating the detector and cannot be modified later.\n"},"disableSampling":{"type":"boolean","description":"When \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, the visualization may sample the output timeseries rather than displaying them all. \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e by default.\n"},"endTime":{"type":"integer","description":"Seconds since epoch. Used for visualization. Conflicts with \u003cspan pulumi-lang-nodejs=\"`timeRange`\" pulumi-lang-dotnet=\"`TimeRange`\" pulumi-lang-go=\"`timeRange`\" pulumi-lang-python=\"`time_range`\" pulumi-lang-yaml=\"`timeRange`\" pulumi-lang-java=\"`timeRange`\"\u003e`time_range`\u003c/span\u003e.\n"},"labelResolutions":{"type":"object","additionalProperties":{"type":"integer"},"description":"The resolutions of the detector alerts in milliseconds that indicate how often data is analyzed to determine if an alert should be triggered.\n"},"maxDelay":{"type":"integer","description":"allows Splunk Observability Cloud to continue with computation if there is a lag in receiving data points.\n"},"minDelay":{"type":"integer","description":"How long (in seconds) to wait even if the datapoints are arriving in a timely fashion. Max value is 900 (15m).\n"},"name":{"type":"string","description":"Name of the detector.\n"},"parentDetectorId":{"type":"string","description":"ID of the AutoDetect parent detector from which this detector is customized and created. This property is required for detectors with detectorOrigin of type AutoDetectCustomization. The value can only be set when creating the detector and cannot be modified later.\n"},"programText":{"type":"string","description":"Signalflow program text for the detector. More info [in the Splunk Observability Cloud docs](https://dev.splunk.com/observability/docs/signalflow/).\n"},"rules":{"type":"array","items":{"$ref":"#/types/signalfx:index/DetectorRule:DetectorRule"},"description":"Set of rules used for alerting.\n"},"showDataMarkers":{"type":"boolean","description":"When \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, markers will be drawn for each datapoint within the visualization. \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e by default.\n"},"showEventLines":{"type":"boolean","description":"When \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, the visualization will display a vertical line for each event trigger. \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e by default.\n"},"startTime":{"type":"integer","description":"Seconds since epoch. Used for visualization. Conflicts with \u003cspan pulumi-lang-nodejs=\"`timeRange`\" pulumi-lang-dotnet=\"`TimeRange`\" pulumi-lang-go=\"`timeRange`\" pulumi-lang-python=\"`time_range`\" pulumi-lang-yaml=\"`timeRange`\" pulumi-lang-java=\"`timeRange`\"\u003e`time_range`\u003c/span\u003e.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"Tags associated with the detector.\n"},"teams":{"type":"array","items":{"type":"string"},"description":"Team IDs to associate the detector to.\n"},"timeRange":{"type":"integer","description":"Seconds to display in the visualization. This is a rolling range from the current time. Example: \u003cspan pulumi-lang-nodejs=\"`3600`\" pulumi-lang-dotnet=\"`3600`\" pulumi-lang-go=\"`3600`\" pulumi-lang-python=\"`3600`\" pulumi-lang-yaml=\"`3600`\" pulumi-lang-java=\"`3600`\"\u003e`3600`\u003c/span\u003e corresponds to `-1h` in web UI. \u003cspan pulumi-lang-nodejs=\"`3600`\" pulumi-lang-dotnet=\"`3600`\" pulumi-lang-go=\"`3600`\" pulumi-lang-python=\"`3600`\" pulumi-lang-yaml=\"`3600`\" pulumi-lang-java=\"`3600`\"\u003e`3600`\u003c/span\u003e by default.\n"},"timezone":{"type":"string","description":"The property value is a string that denotes the geographic region associated with the time zone, (e.g. Australia/Sydney)"},"url":{"type":"string","description":"The URL of the detector.\n"},"vizOptions":{"type":"array","items":{"$ref":"#/types/signalfx:index/DetectorVizOption:DetectorVizOption"},"description":"Plot-level customization options, associated with a publish statement.\n"}},"required":["labelResolutions","name","programText","rules","url"],"inputProperties":{"authorizedWriterTeams":{"type":"array","items":{"type":"string"},"description":"Team IDs that have write access to this detector. Remember to use an admin's token if using this feature and to include that admin's team id (or user id in \u003cspan pulumi-lang-nodejs=\"`authorizedWriterUsers`\" pulumi-lang-dotnet=\"`AuthorizedWriterUsers`\" pulumi-lang-go=\"`authorizedWriterUsers`\" pulumi-lang-python=\"`authorized_writer_users`\" pulumi-lang-yaml=\"`authorizedWriterUsers`\" pulumi-lang-java=\"`authorizedWriterUsers`\"\u003e`authorized_writer_users`\u003c/span\u003e).\n"},"authorizedWriterUsers":{"type":"array","items":{"type":"string"},"description":"User IDs that have write access to this detector. Remember to use an admin's token if using this feature and to include that admin's user id (or team id in \u003cspan pulumi-lang-nodejs=\"`authorizedWriterTeams`\" pulumi-lang-dotnet=\"`AuthorizedWriterTeams`\" pulumi-lang-go=\"`authorizedWriterTeams`\" pulumi-lang-python=\"`authorized_writer_teams`\" pulumi-lang-yaml=\"`authorizedWriterTeams`\" pulumi-lang-java=\"`authorizedWriterTeams`\"\u003e`authorized_writer_teams`\u003c/span\u003e).\n"},"description":{"type":"string","description":"Description of the detector.\n"},"detectorOrigin":{"type":"string","description":"Indicates how a detector was created. The possible values are: Standard and AutoDetectCustomization. The value can only be set when creating the detector and cannot be modified later.\n"},"disableSampling":{"type":"boolean","description":"When \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, the visualization may sample the output timeseries rather than displaying them all. \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e by default.\n"},"endTime":{"type":"integer","description":"Seconds since epoch. Used for visualization. Conflicts with \u003cspan pulumi-lang-nodejs=\"`timeRange`\" pulumi-lang-dotnet=\"`TimeRange`\" pulumi-lang-go=\"`timeRange`\" pulumi-lang-python=\"`time_range`\" pulumi-lang-yaml=\"`timeRange`\" pulumi-lang-java=\"`timeRange`\"\u003e`time_range`\u003c/span\u003e.\n"},"maxDelay":{"type":"integer","description":"allows Splunk Observability Cloud to continue with computation if there is a lag in receiving data points.\n"},"minDelay":{"type":"integer","description":"How long (in seconds) to wait even if the datapoints are arriving in a timely fashion. Max value is 900 (15m).\n"},"name":{"type":"string","description":"Name of the detector.\n"},"parentDetectorId":{"type":"string","description":"ID of the AutoDetect parent detector from which this detector is customized and created. This property is required for detectors with detectorOrigin of type AutoDetectCustomization. The value can only be set when creating the detector and cannot be modified later.\n"},"programText":{"type":"string","description":"Signalflow program text for the detector. More info [in the Splunk Observability Cloud docs](https://dev.splunk.com/observability/docs/signalflow/).\n"},"rules":{"type":"array","items":{"$ref":"#/types/signalfx:index/DetectorRule:DetectorRule"},"description":"Set of rules used for alerting.\n"},"showDataMarkers":{"type":"boolean","description":"When \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, markers will be drawn for each datapoint within the visualization. \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e by default.\n"},"showEventLines":{"type":"boolean","description":"When \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, the visualization will display a vertical line for each event trigger. \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e by default.\n"},"startTime":{"type":"integer","description":"Seconds since epoch. Used for visualization. Conflicts with \u003cspan pulumi-lang-nodejs=\"`timeRange`\" pulumi-lang-dotnet=\"`TimeRange`\" pulumi-lang-go=\"`timeRange`\" pulumi-lang-python=\"`time_range`\" pulumi-lang-yaml=\"`timeRange`\" pulumi-lang-java=\"`timeRange`\"\u003e`time_range`\u003c/span\u003e.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"Tags associated with the detector.\n"},"teams":{"type":"array","items":{"type":"string"},"description":"Team IDs to associate the detector to.\n"},"timeRange":{"type":"integer","description":"Seconds to display in the visualization. This is a rolling range from the current time. Example: \u003cspan pulumi-lang-nodejs=\"`3600`\" pulumi-lang-dotnet=\"`3600`\" pulumi-lang-go=\"`3600`\" pulumi-lang-python=\"`3600`\" pulumi-lang-yaml=\"`3600`\" pulumi-lang-java=\"`3600`\"\u003e`3600`\u003c/span\u003e corresponds to `-1h` in web UI. \u003cspan pulumi-lang-nodejs=\"`3600`\" pulumi-lang-dotnet=\"`3600`\" pulumi-lang-go=\"`3600`\" pulumi-lang-python=\"`3600`\" pulumi-lang-yaml=\"`3600`\" pulumi-lang-java=\"`3600`\"\u003e`3600`\u003c/span\u003e by default.\n"},"timezone":{"type":"string","description":"The property value is a string that denotes the geographic region associated with the time zone, (e.g. Australia/Sydney)"},"vizOptions":{"type":"array","items":{"$ref":"#/types/signalfx:index/DetectorVizOption:DetectorVizOption"},"description":"Plot-level customization options, associated with a publish statement.\n"}},"requiredInputs":["programText","rules"],"stateInputs":{"description":"Input properties used for looking up and filtering Detector resources.\n","properties":{"authorizedWriterTeams":{"type":"array","items":{"type":"string"},"description":"Team IDs that have write access to this detector. Remember to use an admin's token if using this feature and to include that admin's team id (or user id in \u003cspan pulumi-lang-nodejs=\"`authorizedWriterUsers`\" pulumi-lang-dotnet=\"`AuthorizedWriterUsers`\" pulumi-lang-go=\"`authorizedWriterUsers`\" pulumi-lang-python=\"`authorized_writer_users`\" pulumi-lang-yaml=\"`authorizedWriterUsers`\" pulumi-lang-java=\"`authorizedWriterUsers`\"\u003e`authorized_writer_users`\u003c/span\u003e).\n"},"authorizedWriterUsers":{"type":"array","items":{"type":"string"},"description":"User IDs that have write access to this detector. Remember to use an admin's token if using this feature and to include that admin's user id (or team id in \u003cspan pulumi-lang-nodejs=\"`authorizedWriterTeams`\" pulumi-lang-dotnet=\"`AuthorizedWriterTeams`\" pulumi-lang-go=\"`authorizedWriterTeams`\" pulumi-lang-python=\"`authorized_writer_teams`\" pulumi-lang-yaml=\"`authorizedWriterTeams`\" pulumi-lang-java=\"`authorizedWriterTeams`\"\u003e`authorized_writer_teams`\u003c/span\u003e).\n"},"description":{"type":"string","description":"Description of the detector.\n"},"detectorOrigin":{"type":"string","description":"Indicates how a detector was created. The possible values are: Standard and AutoDetectCustomization. The value can only be set when creating the detector and cannot be modified later.\n"},"disableSampling":{"type":"boolean","description":"When \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, the visualization may sample the output timeseries rather than displaying them all. \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e by default.\n"},"endTime":{"type":"integer","description":"Seconds since epoch. Used for visualization. Conflicts with \u003cspan pulumi-lang-nodejs=\"`timeRange`\" pulumi-lang-dotnet=\"`TimeRange`\" pulumi-lang-go=\"`timeRange`\" pulumi-lang-python=\"`time_range`\" pulumi-lang-yaml=\"`timeRange`\" pulumi-lang-java=\"`timeRange`\"\u003e`time_range`\u003c/span\u003e.\n"},"labelResolutions":{"type":"object","additionalProperties":{"type":"integer"},"description":"The resolutions of the detector alerts in milliseconds that indicate how often data is analyzed to determine if an alert should be triggered.\n"},"maxDelay":{"type":"integer","description":"allows Splunk Observability Cloud to continue with computation if there is a lag in receiving data points.\n"},"minDelay":{"type":"integer","description":"How long (in seconds) to wait even if the datapoints are arriving in a timely fashion. Max value is 900 (15m).\n"},"name":{"type":"string","description":"Name of the detector.\n"},"parentDetectorId":{"type":"string","description":"ID of the AutoDetect parent detector from which this detector is customized and created. This property is required for detectors with detectorOrigin of type AutoDetectCustomization. The value can only be set when creating the detector and cannot be modified later.\n"},"programText":{"type":"string","description":"Signalflow program text for the detector. More info [in the Splunk Observability Cloud docs](https://dev.splunk.com/observability/docs/signalflow/).\n"},"rules":{"type":"array","items":{"$ref":"#/types/signalfx:index/DetectorRule:DetectorRule"},"description":"Set of rules used for alerting.\n"},"showDataMarkers":{"type":"boolean","description":"When \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, markers will be drawn for each datapoint within the visualization. \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e by default.\n"},"showEventLines":{"type":"boolean","description":"When \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, the visualization will display a vertical line for each event trigger. \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e by default.\n"},"startTime":{"type":"integer","description":"Seconds since epoch. Used for visualization. Conflicts with \u003cspan pulumi-lang-nodejs=\"`timeRange`\" pulumi-lang-dotnet=\"`TimeRange`\" pulumi-lang-go=\"`timeRange`\" pulumi-lang-python=\"`time_range`\" pulumi-lang-yaml=\"`timeRange`\" pulumi-lang-java=\"`timeRange`\"\u003e`time_range`\u003c/span\u003e.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"Tags associated with the detector.\n"},"teams":{"type":"array","items":{"type":"string"},"description":"Team IDs to associate the detector to.\n"},"timeRange":{"type":"integer","description":"Seconds to display in the visualization. This is a rolling range from the current time. Example: \u003cspan pulumi-lang-nodejs=\"`3600`\" pulumi-lang-dotnet=\"`3600`\" pulumi-lang-go=\"`3600`\" pulumi-lang-python=\"`3600`\" pulumi-lang-yaml=\"`3600`\" pulumi-lang-java=\"`3600`\"\u003e`3600`\u003c/span\u003e corresponds to `-1h` in web UI. \u003cspan pulumi-lang-nodejs=\"`3600`\" pulumi-lang-dotnet=\"`3600`\" pulumi-lang-go=\"`3600`\" pulumi-lang-python=\"`3600`\" pulumi-lang-yaml=\"`3600`\" pulumi-lang-java=\"`3600`\"\u003e`3600`\u003c/span\u003e by default.\n"},"timezone":{"type":"string","description":"The property value is a string that denotes the geographic region associated with the time zone, (e.g. Australia/Sydney)"},"url":{"type":"string","description":"The URL of the detector.\n"},"vizOptions":{"type":"array","items":{"$ref":"#/types/signalfx:index/DetectorVizOption:DetectorVizOption"},"description":"Plot-level customization options, associated with a publish statement.\n"}},"type":"object"}},"signalfx:index/eventFeedChart:EventFeedChart":{"description":"Displays a listing of events as a widget in a dashboard.\n\n## Example\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as signalfx from \"@pulumi/signalfx\";\n\nconst mynote0 = new signalfx.EventFeedChart(\"mynote0\", {\n    name: \"Important Dashboard Note\",\n    description: \"Lorem ipsum dolor sit amet\",\n    programText: \"A = events(eventType='My Event Type').publish(label='A')\",\n    vizOptions: [{\n        label: \"A\",\n        color: \"orange\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_signalfx as signalfx\n\nmynote0 = signalfx.EventFeedChart(\"mynote0\",\n    name=\"Important Dashboard Note\",\n    description=\"Lorem ipsum dolor sit amet\",\n    program_text=\"A = events(eventType='My Event Type').publish(label='A')\",\n    viz_options=[{\n        \"label\": \"A\",\n        \"color\": \"orange\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing SignalFx = Pulumi.SignalFx;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var mynote0 = new SignalFx.EventFeedChart(\"mynote0\", new()\n    {\n        Name = \"Important Dashboard Note\",\n        Description = \"Lorem ipsum dolor sit amet\",\n        ProgramText = \"A = events(eventType='My Event Type').publish(label='A')\",\n        VizOptions = new[]\n        {\n            \n            {\n                { \"label\", \"A\" },\n                { \"color\", \"orange\" },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-signalfx/sdk/v7/go/signalfx\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := signalfx.NewEventFeedChart(ctx, \"mynote0\", \u0026signalfx.EventFeedChartArgs{\n\t\t\tName:        pulumi.String(\"Important Dashboard Note\"),\n\t\t\tDescription: pulumi.String(\"Lorem ipsum dolor sit amet\"),\n\t\t\tProgramText: pulumi.String(\"A = events(eventType='My Event Type').publish(label='A')\"),\n\t\t\tVizOptions: []map[string]interface{}{\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"label\": \"A\",\n\t\t\t\t\t\"color\": \"orange\",\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.signalfx.EventFeedChart;\nimport com.pulumi.signalfx.EventFeedChartArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var mynote0 = new EventFeedChart(\"mynote0\", EventFeedChartArgs.builder()\n            .name(\"Important Dashboard Note\")\n            .description(\"Lorem ipsum dolor sit amet\")\n            .programText(\"A = events(eventType='My Event Type').publish(label='A')\")\n            .vizOptions(List.of(Map.ofEntries(\n                Map.entry(\"label\", \"A\"),\n                Map.entry(\"color\", \"orange\")\n            )))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  mynote0:\n    type: signalfx:EventFeedChart\n    properties:\n      name: Important Dashboard Note\n      description: Lorem ipsum dolor sit amet\n      programText: A = events(eventType='My Event Type').publish(label='A')\n      vizOptions:\n        - label: A\n          color: orange\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"description":{"type":"string","description":"Description of the text note.\n"},"endTime":{"type":"integer","description":"Seconds since epoch. Used for visualization. Conflicts with \u003cspan pulumi-lang-nodejs=\"`timeRange`\" pulumi-lang-dotnet=\"`TimeRange`\" pulumi-lang-go=\"`timeRange`\" pulumi-lang-python=\"`time_range`\" pulumi-lang-yaml=\"`timeRange`\" pulumi-lang-java=\"`timeRange`\"\u003e`time_range`\u003c/span\u003e.\n"},"name":{"type":"string","description":"Name of the text note.\n"},"programText":{"type":"string","description":"Signalflow program text for the chart. More info[in the Splunk Observability Cloud docs](https://dev.splunk.com/observability/docs/signalflow/).\n"},"startTime":{"type":"integer","description":"Seconds since epoch. Used for visualization. Conflicts with \u003cspan pulumi-lang-nodejs=\"`timeRange`\" pulumi-lang-dotnet=\"`TimeRange`\" pulumi-lang-go=\"`timeRange`\" pulumi-lang-python=\"`time_range`\" pulumi-lang-yaml=\"`timeRange`\" pulumi-lang-java=\"`timeRange`\"\u003e`time_range`\u003c/span\u003e.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"Tags associated with the resource"},"timeRange":{"type":"integer","description":"From when to display data. Splunk Observability Cloud time syntax (e.g. `\"-5m\"`, `\"-1h\"`). Conflicts with \u003cspan pulumi-lang-nodejs=\"`startTime`\" pulumi-lang-dotnet=\"`StartTime`\" pulumi-lang-go=\"`startTime`\" pulumi-lang-python=\"`start_time`\" pulumi-lang-yaml=\"`startTime`\" pulumi-lang-java=\"`startTime`\"\u003e`start_time`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`endTime`\" pulumi-lang-dotnet=\"`EndTime`\" pulumi-lang-go=\"`endTime`\" pulumi-lang-python=\"`end_time`\" pulumi-lang-yaml=\"`endTime`\" pulumi-lang-java=\"`endTime`\"\u003e`end_time`\u003c/span\u003e.\n"},"url":{"type":"string","description":"The URL of the chart.\n"}},"required":["name","programText","url"],"inputProperties":{"description":{"type":"string","description":"Description of the text note.\n"},"endTime":{"type":"integer","description":"Seconds since epoch. Used for visualization. Conflicts with \u003cspan pulumi-lang-nodejs=\"`timeRange`\" pulumi-lang-dotnet=\"`TimeRange`\" pulumi-lang-go=\"`timeRange`\" pulumi-lang-python=\"`time_range`\" pulumi-lang-yaml=\"`timeRange`\" pulumi-lang-java=\"`timeRange`\"\u003e`time_range`\u003c/span\u003e.\n"},"name":{"type":"string","description":"Name of the text note.\n"},"programText":{"type":"string","description":"Signalflow program text for the chart. More info[in the Splunk Observability Cloud docs](https://dev.splunk.com/observability/docs/signalflow/).\n"},"startTime":{"type":"integer","description":"Seconds since epoch. Used for visualization. Conflicts with \u003cspan pulumi-lang-nodejs=\"`timeRange`\" pulumi-lang-dotnet=\"`TimeRange`\" pulumi-lang-go=\"`timeRange`\" pulumi-lang-python=\"`time_range`\" pulumi-lang-yaml=\"`timeRange`\" pulumi-lang-java=\"`timeRange`\"\u003e`time_range`\u003c/span\u003e.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"Tags associated with the resource"},"timeRange":{"type":"integer","description":"From when to display data. Splunk Observability Cloud time syntax (e.g. `\"-5m\"`, `\"-1h\"`). Conflicts with \u003cspan pulumi-lang-nodejs=\"`startTime`\" pulumi-lang-dotnet=\"`StartTime`\" pulumi-lang-go=\"`startTime`\" pulumi-lang-python=\"`start_time`\" pulumi-lang-yaml=\"`startTime`\" pulumi-lang-java=\"`startTime`\"\u003e`start_time`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`endTime`\" pulumi-lang-dotnet=\"`EndTime`\" pulumi-lang-go=\"`endTime`\" pulumi-lang-python=\"`end_time`\" pulumi-lang-yaml=\"`endTime`\" pulumi-lang-java=\"`endTime`\"\u003e`end_time`\u003c/span\u003e.\n"}},"requiredInputs":["programText"],"stateInputs":{"description":"Input properties used for looking up and filtering EventFeedChart resources.\n","properties":{"description":{"type":"string","description":"Description of the text note.\n"},"endTime":{"type":"integer","description":"Seconds since epoch. Used for visualization. Conflicts with \u003cspan pulumi-lang-nodejs=\"`timeRange`\" pulumi-lang-dotnet=\"`TimeRange`\" pulumi-lang-go=\"`timeRange`\" pulumi-lang-python=\"`time_range`\" pulumi-lang-yaml=\"`timeRange`\" pulumi-lang-java=\"`timeRange`\"\u003e`time_range`\u003c/span\u003e.\n"},"name":{"type":"string","description":"Name of the text note.\n"},"programText":{"type":"string","description":"Signalflow program text for the chart. More info[in the Splunk Observability Cloud docs](https://dev.splunk.com/observability/docs/signalflow/).\n"},"startTime":{"type":"integer","description":"Seconds since epoch. Used for visualization. Conflicts with \u003cspan pulumi-lang-nodejs=\"`timeRange`\" pulumi-lang-dotnet=\"`TimeRange`\" pulumi-lang-go=\"`timeRange`\" pulumi-lang-python=\"`time_range`\" pulumi-lang-yaml=\"`timeRange`\" pulumi-lang-java=\"`timeRange`\"\u003e`time_range`\u003c/span\u003e.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"Tags associated with the resource"},"timeRange":{"type":"integer","description":"From when to display data. Splunk Observability Cloud time syntax (e.g. `\"-5m\"`, `\"-1h\"`). Conflicts with \u003cspan pulumi-lang-nodejs=\"`startTime`\" pulumi-lang-dotnet=\"`StartTime`\" pulumi-lang-go=\"`startTime`\" pulumi-lang-python=\"`start_time`\" pulumi-lang-yaml=\"`startTime`\" pulumi-lang-java=\"`startTime`\"\u003e`start_time`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`endTime`\" pulumi-lang-dotnet=\"`EndTime`\" pulumi-lang-go=\"`endTime`\" pulumi-lang-python=\"`end_time`\" pulumi-lang-yaml=\"`endTime`\" pulumi-lang-java=\"`endTime`\"\u003e`end_time`\u003c/span\u003e.\n"},"url":{"type":"string","description":"The URL of the chart.\n"}},"type":"object"}},"signalfx:index/heatmapChart:HeatmapChart":{"description":"This chart type shows the specified plot in a heat map fashion. This format is similar to the [Infrastructure Navigator](https://signalfx-product-docs.readthedocs-hosted.com/en/latest/built-in-content/infra-nav.html#infra), with squares representing each source for the selected metric, and the color of each square representing the value range of the metric.\n\n## Example\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as signalfx from \"@pulumi/signalfx\";\n\nconst myheatmapchart0 = new signalfx.HeatmapChart(\"myheatmapchart0\", {\n    name: \"CPU Total Idle - Heatmap\",\n    programText: `myfilters = filter(\\\\\"cluster_name\\\\\", \\\\\"prod\\\\\") and filter(\\\\\"role\\\\\", \\\\\"search\\\\\")\ndata(\\\\\"cpu.total.idle\\\\\", filter=myfilters).publish()\n`,\n    description: \"Very cool Heatmap\",\n    disableSampling: true,\n    sortBy: \"+host\",\n    groupBies: [\n        \"hostname\",\n        \"host\",\n    ],\n    hideTimestamp: true,\n    timezone: \"Europe/Paris\",\n    colorRange: {\n        minValue: 0,\n        maxValue: 100,\n        color: \"#ff0000\",\n    },\n    colorScales: [\n        {\n            gte: 99,\n            color: \"green\",\n        },\n        {\n            lt: 99,\n            gte: 95,\n            color: \"yellow\",\n        },\n        {\n            lt: 95,\n            color: \"red\",\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_signalfx as signalfx\n\nmyheatmapchart0 = signalfx.HeatmapChart(\"myheatmapchart0\",\n    name=\"CPU Total Idle - Heatmap\",\n    program_text=\"\"\"myfilters = filter(\\\"cluster_name\\\", \\\"prod\\\") and filter(\\\"role\\\", \\\"search\\\")\ndata(\\\"cpu.total.idle\\\", filter=myfilters).publish()\n\"\"\",\n    description=\"Very cool Heatmap\",\n    disable_sampling=True,\n    sort_by=\"+host\",\n    group_bies=[\n        \"hostname\",\n        \"host\",\n    ],\n    hide_timestamp=True,\n    timezone=\"Europe/Paris\",\n    color_range={\n        \"min_value\": 0,\n        \"max_value\": 100,\n        \"color\": \"#ff0000\",\n    },\n    color_scales=[\n        {\n            \"gte\": 99,\n            \"color\": \"green\",\n        },\n        {\n            \"lt\": 99,\n            \"gte\": 95,\n            \"color\": \"yellow\",\n        },\n        {\n            \"lt\": 95,\n            \"color\": \"red\",\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing SignalFx = Pulumi.SignalFx;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var myheatmapchart0 = new SignalFx.HeatmapChart(\"myheatmapchart0\", new()\n    {\n        Name = \"CPU Total Idle - Heatmap\",\n        ProgramText = @\"myfilters = filter(\\\"\"cluster_name\\\"\", \\\"\"prod\\\"\") and filter(\\\"\"role\\\"\", \\\"\"search\\\"\")\ndata(\\\"\"cpu.total.idle\\\"\", filter=myfilters).publish()\n\",\n        Description = \"Very cool Heatmap\",\n        DisableSampling = true,\n        SortBy = \"+host\",\n        GroupBies = new[]\n        {\n            \"hostname\",\n            \"host\",\n        },\n        HideTimestamp = true,\n        Timezone = \"Europe/Paris\",\n        ColorRange = new SignalFx.Inputs.HeatmapChartColorRangeArgs\n        {\n            MinValue = 0,\n            MaxValue = 100,\n            Color = \"#ff0000\",\n        },\n        ColorScales = new[]\n        {\n            new SignalFx.Inputs.HeatmapChartColorScaleArgs\n            {\n                Gte = 99,\n                Color = \"green\",\n            },\n            new SignalFx.Inputs.HeatmapChartColorScaleArgs\n            {\n                Lt = 99,\n                Gte = 95,\n                Color = \"yellow\",\n            },\n            new SignalFx.Inputs.HeatmapChartColorScaleArgs\n            {\n                Lt = 95,\n                Color = \"red\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-signalfx/sdk/v7/go/signalfx\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := signalfx.NewHeatmapChart(ctx, \"myheatmapchart0\", \u0026signalfx.HeatmapChartArgs{\n\t\t\tName:            pulumi.String(\"CPU Total Idle - Heatmap\"),\n\t\t\tProgramText:     pulumi.String(\"myfilters = filter(\\\\\\\"cluster_name\\\\\\\", \\\\\\\"prod\\\\\\\") and filter(\\\\\\\"role\\\\\\\", \\\\\\\"search\\\\\\\")\\ndata(\\\\\\\"cpu.total.idle\\\\\\\", filter=myfilters).publish()\\n\"),\n\t\t\tDescription:     pulumi.String(\"Very cool Heatmap\"),\n\t\t\tDisableSampling: pulumi.Bool(true),\n\t\t\tSortBy:          pulumi.String(\"+host\"),\n\t\t\tGroupBies: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"hostname\"),\n\t\t\t\tpulumi.String(\"host\"),\n\t\t\t},\n\t\t\tHideTimestamp: pulumi.Bool(true),\n\t\t\tTimezone:      pulumi.String(\"Europe/Paris\"),\n\t\t\tColorRange: \u0026signalfx.HeatmapChartColorRangeArgs{\n\t\t\t\tMinValue: pulumi.Float64(0),\n\t\t\t\tMaxValue: pulumi.Float64(100),\n\t\t\t\tColor:    pulumi.String(\"#ff0000\"),\n\t\t\t},\n\t\t\tColorScales: signalfx.HeatmapChartColorScaleArray{\n\t\t\t\t\u0026signalfx.HeatmapChartColorScaleArgs{\n\t\t\t\t\tGte:   pulumi.Float64(99),\n\t\t\t\t\tColor: pulumi.String(\"green\"),\n\t\t\t\t},\n\t\t\t\t\u0026signalfx.HeatmapChartColorScaleArgs{\n\t\t\t\t\tLt:    pulumi.Float64(99),\n\t\t\t\t\tGte:   pulumi.Float64(95),\n\t\t\t\t\tColor: pulumi.String(\"yellow\"),\n\t\t\t\t},\n\t\t\t\t\u0026signalfx.HeatmapChartColorScaleArgs{\n\t\t\t\t\tLt:    pulumi.Float64(95),\n\t\t\t\t\tColor: pulumi.String(\"red\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.signalfx.HeatmapChart;\nimport com.pulumi.signalfx.HeatmapChartArgs;\nimport com.pulumi.signalfx.inputs.HeatmapChartColorRangeArgs;\nimport com.pulumi.signalfx.inputs.HeatmapChartColorScaleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var myheatmapchart0 = new HeatmapChart(\"myheatmapchart0\", HeatmapChartArgs.builder()\n            .name(\"CPU Total Idle - Heatmap\")\n            .programText(\"\"\"\nmyfilters = filter(\\\"cluster_name\\\", \\\"prod\\\") and filter(\\\"role\\\", \\\"search\\\")\ndata(\\\"cpu.total.idle\\\", filter=myfilters).publish()\n            \"\"\")\n            .description(\"Very cool Heatmap\")\n            .disableSampling(true)\n            .sortBy(\"+host\")\n            .groupBies(            \n                \"hostname\",\n                \"host\")\n            .hideTimestamp(true)\n            .timezone(\"Europe/Paris\")\n            .colorRange(HeatmapChartColorRangeArgs.builder()\n                .minValue(0.0)\n                .maxValue(100.0)\n                .color(\"#ff0000\")\n                .build())\n            .colorScales(            \n                HeatmapChartColorScaleArgs.builder()\n                    .gte(99.0)\n                    .color(\"green\")\n                    .build(),\n                HeatmapChartColorScaleArgs.builder()\n                    .lt(99.0)\n                    .gte(95.0)\n                    .color(\"yellow\")\n                    .build(),\n                HeatmapChartColorScaleArgs.builder()\n                    .lt(95.0)\n                    .color(\"red\")\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  myheatmapchart0:\n    type: signalfx:HeatmapChart\n    properties:\n      name: CPU Total Idle - Heatmap\n      programText: |\n        myfilters = filter(\\\"cluster_name\\\", \\\"prod\\\") and filter(\\\"role\\\", \\\"search\\\")\n        data(\\\"cpu.total.idle\\\", filter=myfilters).publish()\n      description: Very cool Heatmap\n      disableSampling: true\n      sortBy: +host\n      groupBies:\n        - hostname\n        - host\n      hideTimestamp: true\n      timezone: Europe/Paris\n      colorRange:\n        minValue: 0\n        maxValue: 100\n        color: '#ff0000'\n      colorScales:\n        - gte: 99\n          color: green\n        - lt: 99\n          gte: 95\n          color: yellow\n        - lt: 95\n          color: red\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"colorRange":{"$ref":"#/types/signalfx:index/HeatmapChartColorRange:HeatmapChartColorRange","description":"Values and color for the color range. Example: \u003cspan pulumi-lang-nodejs=\"`colorRange \" pulumi-lang-dotnet=\"`ColorRange \" pulumi-lang-go=\"`colorRange \" pulumi-lang-python=\"`color_range \" pulumi-lang-yaml=\"`colorRange \" pulumi-lang-java=\"`colorRange \"\u003e`color_range \u003c/span\u003e: { min : 0, max : 100, color : \"#0000ff\" }`. Look at this [link](https://docs.splunk.com/observability/en/data-visualization/charts/chart-options.html).\n"},"colorScales":{"type":"array","items":{"$ref":"#/types/signalfx:index/HeatmapChartColorScale:HeatmapChartColorScale"},"description":"One to N blocks, each defining a single color range including both the color to display for that range and the borders of the range. Example: \u003cspan pulumi-lang-nodejs=\"`colorScale \" pulumi-lang-dotnet=\"`ColorScale \" pulumi-lang-go=\"`colorScale \" pulumi-lang-python=\"`color_scale \" pulumi-lang-yaml=\"`colorScale \" pulumi-lang-java=\"`colorScale \"\u003e`color_scale \u003c/span\u003e{ gt = 60, color = \"blue\" }\u003cspan pulumi-lang-nodejs=\" colorScale \" pulumi-lang-dotnet=\" ColorScale \" pulumi-lang-go=\" colorScale \" pulumi-lang-python=\" color_scale \" pulumi-lang-yaml=\" colorScale \" pulumi-lang-java=\" colorScale \"\u003e color_scale \u003c/span\u003e{ lte = 60, color = \"yellow\" }`. Look at this [link](https://docs.splunk.com/observability/en/data-visualization/charts/chart-options.html).\n"},"description":{"type":"string","description":"Description of the chart.\n"},"disableSampling":{"type":"boolean","description":"If \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, samples a subset of the output MTS, which improves UI performance. \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e by default.\n"},"groupBies":{"type":"array","items":{"type":"string"},"description":"Properties to group by in the heatmap (in nesting order).\n"},"hideTimestamp":{"type":"boolean","description":"Whether to show the timestamp in the chart. \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e by default.\n"},"maxDelay":{"type":"integer","description":"How long (in seconds) to wait for late datapoints.\n"},"minimumResolution":{"type":"integer","description":"The minimum resolution (in seconds) to use for computing the underlying program.\n"},"name":{"type":"string","description":"Name of the chart.\n"},"programText":{"type":"string","description":"Signalflow program text for the chart. More info at https://dev.splunk.com/observability/docs/signalflow/.\n"},"refreshInterval":{"type":"integer","description":"How often (in seconds) to refresh the values of the heatmap.\n"},"sortBy":{"type":"string","description":"The property to use when sorting the elements. Must be prepended with `+` for ascending or `-` for descending (e.g. `-foo`).\n"},"tags":{"type":"array","items":{"type":"string"},"description":"Tags associated with the resource"},"timezone":{"type":"string","description":"The property value is a string that denotes the geographic region associated with the time zone, (default UTC).\n"},"unitPrefix":{"type":"string","description":"Must be `\"Metric\"` or `\"Binary`\". `\"Metric\"` by default.\n"},"url":{"type":"string","description":"The URL of the chart.\n"}},"required":["name","programText","url"],"inputProperties":{"colorRange":{"$ref":"#/types/signalfx:index/HeatmapChartColorRange:HeatmapChartColorRange","description":"Values and color for the color range. Example: \u003cspan pulumi-lang-nodejs=\"`colorRange \" pulumi-lang-dotnet=\"`ColorRange \" pulumi-lang-go=\"`colorRange \" pulumi-lang-python=\"`color_range \" pulumi-lang-yaml=\"`colorRange \" pulumi-lang-java=\"`colorRange \"\u003e`color_range \u003c/span\u003e: { min : 0, max : 100, color : \"#0000ff\" }`. Look at this [link](https://docs.splunk.com/observability/en/data-visualization/charts/chart-options.html).\n"},"colorScales":{"type":"array","items":{"$ref":"#/types/signalfx:index/HeatmapChartColorScale:HeatmapChartColorScale"},"description":"One to N blocks, each defining a single color range including both the color to display for that range and the borders of the range. Example: \u003cspan pulumi-lang-nodejs=\"`colorScale \" pulumi-lang-dotnet=\"`ColorScale \" pulumi-lang-go=\"`colorScale \" pulumi-lang-python=\"`color_scale \" pulumi-lang-yaml=\"`colorScale \" pulumi-lang-java=\"`colorScale \"\u003e`color_scale \u003c/span\u003e{ gt = 60, color = \"blue\" }\u003cspan pulumi-lang-nodejs=\" colorScale \" pulumi-lang-dotnet=\" ColorScale \" pulumi-lang-go=\" colorScale \" pulumi-lang-python=\" color_scale \" pulumi-lang-yaml=\" colorScale \" pulumi-lang-java=\" colorScale \"\u003e color_scale \u003c/span\u003e{ lte = 60, color = \"yellow\" }`. Look at this [link](https://docs.splunk.com/observability/en/data-visualization/charts/chart-options.html).\n"},"description":{"type":"string","description":"Description of the chart.\n"},"disableSampling":{"type":"boolean","description":"If \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, samples a subset of the output MTS, which improves UI performance. \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e by default.\n"},"groupBies":{"type":"array","items":{"type":"string"},"description":"Properties to group by in the heatmap (in nesting order).\n"},"hideTimestamp":{"type":"boolean","description":"Whether to show the timestamp in the chart. \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e by default.\n"},"maxDelay":{"type":"integer","description":"How long (in seconds) to wait for late datapoints.\n"},"minimumResolution":{"type":"integer","description":"The minimum resolution (in seconds) to use for computing the underlying program.\n"},"name":{"type":"string","description":"Name of the chart.\n"},"programText":{"type":"string","description":"Signalflow program text for the chart. More info at https://dev.splunk.com/observability/docs/signalflow/.\n"},"refreshInterval":{"type":"integer","description":"How often (in seconds) to refresh the values of the heatmap.\n"},"sortBy":{"type":"string","description":"The property to use when sorting the elements. Must be prepended with `+` for ascending or `-` for descending (e.g. `-foo`).\n"},"tags":{"type":"array","items":{"type":"string"},"description":"Tags associated with the resource"},"timezone":{"type":"string","description":"The property value is a string that denotes the geographic region associated with the time zone, (default UTC).\n"},"unitPrefix":{"type":"string","description":"Must be `\"Metric\"` or `\"Binary`\". `\"Metric\"` by default.\n"}},"requiredInputs":["programText"],"stateInputs":{"description":"Input properties used for looking up and filtering HeatmapChart resources.\n","properties":{"colorRange":{"$ref":"#/types/signalfx:index/HeatmapChartColorRange:HeatmapChartColorRange","description":"Values and color for the color range. Example: \u003cspan pulumi-lang-nodejs=\"`colorRange \" pulumi-lang-dotnet=\"`ColorRange \" pulumi-lang-go=\"`colorRange \" pulumi-lang-python=\"`color_range \" pulumi-lang-yaml=\"`colorRange \" pulumi-lang-java=\"`colorRange \"\u003e`color_range \u003c/span\u003e: { min : 0, max : 100, color : \"#0000ff\" }`. Look at this [link](https://docs.splunk.com/observability/en/data-visualization/charts/chart-options.html).\n"},"colorScales":{"type":"array","items":{"$ref":"#/types/signalfx:index/HeatmapChartColorScale:HeatmapChartColorScale"},"description":"One to N blocks, each defining a single color range including both the color to display for that range and the borders of the range. Example: \u003cspan pulumi-lang-nodejs=\"`colorScale \" pulumi-lang-dotnet=\"`ColorScale \" pulumi-lang-go=\"`colorScale \" pulumi-lang-python=\"`color_scale \" pulumi-lang-yaml=\"`colorScale \" pulumi-lang-java=\"`colorScale \"\u003e`color_scale \u003c/span\u003e{ gt = 60, color = \"blue\" }\u003cspan pulumi-lang-nodejs=\" colorScale \" pulumi-lang-dotnet=\" ColorScale \" pulumi-lang-go=\" colorScale \" pulumi-lang-python=\" color_scale \" pulumi-lang-yaml=\" colorScale \" pulumi-lang-java=\" colorScale \"\u003e color_scale \u003c/span\u003e{ lte = 60, color = \"yellow\" }`. Look at this [link](https://docs.splunk.com/observability/en/data-visualization/charts/chart-options.html).\n"},"description":{"type":"string","description":"Description of the chart.\n"},"disableSampling":{"type":"boolean","description":"If \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, samples a subset of the output MTS, which improves UI performance. \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e by default.\n"},"groupBies":{"type":"array","items":{"type":"string"},"description":"Properties to group by in the heatmap (in nesting order).\n"},"hideTimestamp":{"type":"boolean","description":"Whether to show the timestamp in the chart. \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e by default.\n"},"maxDelay":{"type":"integer","description":"How long (in seconds) to wait for late datapoints.\n"},"minimumResolution":{"type":"integer","description":"The minimum resolution (in seconds) to use for computing the underlying program.\n"},"name":{"type":"string","description":"Name of the chart.\n"},"programText":{"type":"string","description":"Signalflow program text for the chart. More info at https://dev.splunk.com/observability/docs/signalflow/.\n"},"refreshInterval":{"type":"integer","description":"How often (in seconds) to refresh the values of the heatmap.\n"},"sortBy":{"type":"string","description":"The property to use when sorting the elements. Must be prepended with `+` for ascending or `-` for descending (e.g. `-foo`).\n"},"tags":{"type":"array","items":{"type":"string"},"description":"Tags associated with the resource"},"timezone":{"type":"string","description":"The property value is a string that denotes the geographic region associated with the time zone, (default UTC).\n"},"unitPrefix":{"type":"string","description":"Must be `\"Metric\"` or `\"Binary`\". `\"Metric\"` by default.\n"},"url":{"type":"string","description":"The URL of the chart.\n"}},"type":"object"}},"signalfx:index/listChart:ListChart":{"description":"This chart type displays current data values in a list format.\n\nThe name of each value in the chart reflects the name of the plot and any associated dimensions. We recommend you click the Pencil icon and give the plot a meaningful name, as in plot B from the example. Otherwise, just the raw metric name will be displayed on the chart, as in plot A from the example.\n\n## Example\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as signalfx from \"@pulumi/signalfx\";\n\nconst mylistchart0 = new signalfx.ListChart(\"mylistchart0\", {\n    name: \"CPU Total Idle - List\",\n    programText: `myfilters = filter(\\\\\"cluster_name\\\\\", \\\\\"prod\\\\\") and filter(\\\\\"role\\\\\", \\\\\"search\\\\\")\ndata(\\\\\"cpu.total.idle\\\\\", filter=myfilters).publish()\n`,\n    description: \"Very cool List Chart\",\n    colorBy: \"Metric\",\n    maxDelay: 2,\n    timezone: \"Europe/Paris\",\n    disableSampling: true,\n    refreshInterval: 1,\n    hideMissingValues: true,\n    legendOptionsFields: [\n        {\n            property: \"collector\",\n            enabled: false,\n        },\n        {\n            property: \"cluster_name\",\n            enabled: true,\n        },\n        {\n            property: \"role\",\n            enabled: true,\n        },\n        {\n            property: \"collector\",\n            enabled: false,\n        },\n        {\n            property: \"host\",\n            enabled: false,\n        },\n    ],\n    maxPrecision: 2,\n    sortBy: \"-value\",\n});\n```\n```python\nimport pulumi\nimport pulumi_signalfx as signalfx\n\nmylistchart0 = signalfx.ListChart(\"mylistchart0\",\n    name=\"CPU Total Idle - List\",\n    program_text=\"\"\"myfilters = filter(\\\"cluster_name\\\", \\\"prod\\\") and filter(\\\"role\\\", \\\"search\\\")\ndata(\\\"cpu.total.idle\\\", filter=myfilters).publish()\n\"\"\",\n    description=\"Very cool List Chart\",\n    color_by=\"Metric\",\n    max_delay=2,\n    timezone=\"Europe/Paris\",\n    disable_sampling=True,\n    refresh_interval=1,\n    hide_missing_values=True,\n    legend_options_fields=[\n        {\n            \"property\": \"collector\",\n            \"enabled\": False,\n        },\n        {\n            \"property\": \"cluster_name\",\n            \"enabled\": True,\n        },\n        {\n            \"property\": \"role\",\n            \"enabled\": True,\n        },\n        {\n            \"property\": \"collector\",\n            \"enabled\": False,\n        },\n        {\n            \"property\": \"host\",\n            \"enabled\": False,\n        },\n    ],\n    max_precision=2,\n    sort_by=\"-value\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing SignalFx = Pulumi.SignalFx;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var mylistchart0 = new SignalFx.ListChart(\"mylistchart0\", new()\n    {\n        Name = \"CPU Total Idle - List\",\n        ProgramText = @\"myfilters = filter(\\\"\"cluster_name\\\"\", \\\"\"prod\\\"\") and filter(\\\"\"role\\\"\", \\\"\"search\\\"\")\ndata(\\\"\"cpu.total.idle\\\"\", filter=myfilters).publish()\n\",\n        Description = \"Very cool List Chart\",\n        ColorBy = \"Metric\",\n        MaxDelay = 2,\n        Timezone = \"Europe/Paris\",\n        DisableSampling = true,\n        RefreshInterval = 1,\n        HideMissingValues = true,\n        LegendOptionsFields = new[]\n        {\n            new SignalFx.Inputs.ListChartLegendOptionsFieldArgs\n            {\n                Property = \"collector\",\n                Enabled = false,\n            },\n            new SignalFx.Inputs.ListChartLegendOptionsFieldArgs\n            {\n                Property = \"cluster_name\",\n                Enabled = true,\n            },\n            new SignalFx.Inputs.ListChartLegendOptionsFieldArgs\n            {\n                Property = \"role\",\n                Enabled = true,\n            },\n            new SignalFx.Inputs.ListChartLegendOptionsFieldArgs\n            {\n                Property = \"collector\",\n                Enabled = false,\n            },\n            new SignalFx.Inputs.ListChartLegendOptionsFieldArgs\n            {\n                Property = \"host\",\n                Enabled = false,\n            },\n        },\n        MaxPrecision = 2,\n        SortBy = \"-value\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-signalfx/sdk/v7/go/signalfx\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := signalfx.NewListChart(ctx, \"mylistchart0\", \u0026signalfx.ListChartArgs{\n\t\t\tName:              pulumi.String(\"CPU Total Idle - List\"),\n\t\t\tProgramText:       pulumi.String(\"myfilters = filter(\\\\\\\"cluster_name\\\\\\\", \\\\\\\"prod\\\\\\\") and filter(\\\\\\\"role\\\\\\\", \\\\\\\"search\\\\\\\")\\ndata(\\\\\\\"cpu.total.idle\\\\\\\", filter=myfilters).publish()\\n\"),\n\t\t\tDescription:       pulumi.String(\"Very cool List Chart\"),\n\t\t\tColorBy:           pulumi.String(\"Metric\"),\n\t\t\tMaxDelay:          pulumi.Int(2),\n\t\t\tTimezone:          pulumi.String(\"Europe/Paris\"),\n\t\t\tDisableSampling:   pulumi.Bool(true),\n\t\t\tRefreshInterval:   pulumi.Int(1),\n\t\t\tHideMissingValues: pulumi.Bool(true),\n\t\t\tLegendOptionsFields: signalfx.ListChartLegendOptionsFieldArray{\n\t\t\t\t\u0026signalfx.ListChartLegendOptionsFieldArgs{\n\t\t\t\t\tProperty: pulumi.String(\"collector\"),\n\t\t\t\t\tEnabled:  pulumi.Bool(false),\n\t\t\t\t},\n\t\t\t\t\u0026signalfx.ListChartLegendOptionsFieldArgs{\n\t\t\t\t\tProperty: pulumi.String(\"cluster_name\"),\n\t\t\t\t\tEnabled:  pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t\t\u0026signalfx.ListChartLegendOptionsFieldArgs{\n\t\t\t\t\tProperty: pulumi.String(\"role\"),\n\t\t\t\t\tEnabled:  pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t\t\u0026signalfx.ListChartLegendOptionsFieldArgs{\n\t\t\t\t\tProperty: pulumi.String(\"collector\"),\n\t\t\t\t\tEnabled:  pulumi.Bool(false),\n\t\t\t\t},\n\t\t\t\t\u0026signalfx.ListChartLegendOptionsFieldArgs{\n\t\t\t\t\tProperty: pulumi.String(\"host\"),\n\t\t\t\t\tEnabled:  pulumi.Bool(false),\n\t\t\t\t},\n\t\t\t},\n\t\t\tMaxPrecision: pulumi.Int(2),\n\t\t\tSortBy:       pulumi.String(\"-value\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.signalfx.ListChart;\nimport com.pulumi.signalfx.ListChartArgs;\nimport com.pulumi.signalfx.inputs.ListChartLegendOptionsFieldArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var mylistchart0 = new ListChart(\"mylistchart0\", ListChartArgs.builder()\n            .name(\"CPU Total Idle - List\")\n            .programText(\"\"\"\nmyfilters = filter(\\\"cluster_name\\\", \\\"prod\\\") and filter(\\\"role\\\", \\\"search\\\")\ndata(\\\"cpu.total.idle\\\", filter=myfilters).publish()\n            \"\"\")\n            .description(\"Very cool List Chart\")\n            .colorBy(\"Metric\")\n            .maxDelay(2)\n            .timezone(\"Europe/Paris\")\n            .disableSampling(true)\n            .refreshInterval(1)\n            .hideMissingValues(true)\n            .legendOptionsFields(            \n                ListChartLegendOptionsFieldArgs.builder()\n                    .property(\"collector\")\n                    .enabled(false)\n                    .build(),\n                ListChartLegendOptionsFieldArgs.builder()\n                    .property(\"cluster_name\")\n                    .enabled(true)\n                    .build(),\n                ListChartLegendOptionsFieldArgs.builder()\n                    .property(\"role\")\n                    .enabled(true)\n                    .build(),\n                ListChartLegendOptionsFieldArgs.builder()\n                    .property(\"collector\")\n                    .enabled(false)\n                    .build(),\n                ListChartLegendOptionsFieldArgs.builder()\n                    .property(\"host\")\n                    .enabled(false)\n                    .build())\n            .maxPrecision(2)\n            .sortBy(\"-value\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  mylistchart0:\n    type: signalfx:ListChart\n    properties:\n      name: CPU Total Idle - List\n      programText: |\n        myfilters = filter(\\\"cluster_name\\\", \\\"prod\\\") and filter(\\\"role\\\", \\\"search\\\")\n        data(\\\"cpu.total.idle\\\", filter=myfilters).publish()\n      description: Very cool List Chart\n      colorBy: Metric\n      maxDelay: 2\n      timezone: Europe/Paris\n      disableSampling: true\n      refreshInterval: 1\n      hideMissingValues: true\n      legendOptionsFields:\n        - property: collector\n          enabled: false\n        - property: cluster_name\n          enabled: true\n        - property: role\n          enabled: true\n        - property: collector\n          enabled: false\n        - property: host\n          enabled: false\n      maxPrecision: 2\n      sortBy: -value\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"colorBy":{"type":"string","description":"Must be one of `\"Scale\"`, `\"Dimension\"` or `\"Metric\"`. `\"Dimension\"` by default.\n"},"colorScales":{"type":"array","items":{"$ref":"#/types/signalfx:index/ListChartColorScale:ListChartColorScale"},"description":"Single color range including both the color to display for that range and the borders of the range. Example: `[{ gt = 60, color = \"blue\" }, { lte = 60, color = \"yellow\" }]`. Look at this [link](https://docs.splunk.com/observability/en/data-visualization/charts/chart-options.html).\n"},"description":{"type":"string","description":"Description of the chart.\n"},"disableSampling":{"type":"boolean","description":"If \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, samples a subset of the output MTS, which improves UI performance. \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e by default.\n"},"endTime":{"type":"integer","description":"Seconds since epoch. Used for visualization. Conflicts with \u003cspan pulumi-lang-nodejs=\"`timeRange`\" pulumi-lang-dotnet=\"`TimeRange`\" pulumi-lang-go=\"`timeRange`\" pulumi-lang-python=\"`time_range`\" pulumi-lang-yaml=\"`timeRange`\" pulumi-lang-java=\"`timeRange`\"\u003e`time_range`\u003c/span\u003e.\n"},"hideMissingValues":{"type":"boolean","description":"Determines whether to hide missing data points in the chart. If \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, missing data points in the chart would be hidden. \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e by default.\n"},"legendFieldsToHides":{"type":"array","items":{"type":"string"},"description":"List of properties that should not be displayed in the chart legend (i.e. dimension names). All the properties are visible by default. Deprecated, please use \u003cspan pulumi-lang-nodejs=\"`legendOptionsFields`\" pulumi-lang-dotnet=\"`LegendOptionsFields`\" pulumi-lang-go=\"`legendOptionsFields`\" pulumi-lang-python=\"`legend_options_fields`\" pulumi-lang-yaml=\"`legendOptionsFields`\" pulumi-lang-java=\"`legendOptionsFields`\"\u003e`legend_options_fields`\u003c/span\u003e.\n","deprecationMessage":"Please use legend_options_fields"},"legendOptionsFields":{"type":"array","items":{"$ref":"#/types/signalfx:index/ListChartLegendOptionsField:ListChartLegendOptionsField"},"description":"List of property names and enabled flags that should be displayed in the data table for the chart, in the order provided. This option cannot be used with \u003cspan pulumi-lang-nodejs=\"`legendFieldsToHide`\" pulumi-lang-dotnet=\"`LegendFieldsToHide`\" pulumi-lang-go=\"`legendFieldsToHide`\" pulumi-lang-python=\"`legend_fields_to_hide`\" pulumi-lang-yaml=\"`legendFieldsToHide`\" pulumi-lang-java=\"`legendFieldsToHide`\"\u003e`legend_fields_to_hide`\u003c/span\u003e.\n"},"maxDelay":{"type":"integer","description":"How long (in seconds) to wait for late datapoints.\n"},"maxPrecision":{"type":"integer","description":"Maximum number of digits to display when rounding values up or down.\n"},"name":{"type":"string","description":"Name of the chart.\n"},"programText":{"type":"string","description":"Signalflow program text for the chart. More info[in the Splunk Observability Cloud docs](https://dev.splunk.com/observability/docs/signalflow/).\n"},"refreshInterval":{"type":"integer","description":"How often (in seconds) to refresh the values of the list.\n"},"secondaryVisualization":{"type":"string","description":"The type of secondary visualization. Can be `None`, `Radial`, `Linear`, or `Sparkline`. If unset, the Splunk Observability Cloud default is used (`Sparkline`).\n"},"sortBy":{"type":"string","description":"The property to use when sorting the elements. Use \u003cspan pulumi-lang-nodejs=\"`value`\" pulumi-lang-dotnet=\"`Value`\" pulumi-lang-go=\"`value`\" pulumi-lang-python=\"`value`\" pulumi-lang-yaml=\"`value`\" pulumi-lang-java=\"`value`\"\u003e`value`\u003c/span\u003e if you want to sort by value. Must be prepended with `+` for ascending or `-` for descending (e.g. `-foo`). Note there are some special values for some of the options provided in the UX: `\"value\"` for Value, `\"sf_originatingMetric\"` for Metric, and `\u003cspan pulumi-lang-nodejs=\"\"sfMetric\"\" pulumi-lang-dotnet=\"\"SfMetric\"\" pulumi-lang-go=\"\"sfMetric\"\" pulumi-lang-python=\"\"sf_metric\"\" pulumi-lang-yaml=\"\"sfMetric\"\" pulumi-lang-java=\"\"sfMetric\"\"\u003e\"sf_metric\"\u003c/span\u003e` for plot.\n"},"startTime":{"type":"integer","description":"Seconds since epoch. Used for visualization. Conflicts with \u003cspan pulumi-lang-nodejs=\"`timeRange`\" pulumi-lang-dotnet=\"`TimeRange`\" pulumi-lang-go=\"`timeRange`\" pulumi-lang-python=\"`time_range`\" pulumi-lang-yaml=\"`timeRange`\" pulumi-lang-java=\"`timeRange`\"\u003e`time_range`\u003c/span\u003e.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"Tags associated with the resource"},"timeRange":{"type":"integer","description":"How many seconds ago from which to display data. For example, the last hour would be \u003cspan pulumi-lang-nodejs=\"`3600`\" pulumi-lang-dotnet=\"`3600`\" pulumi-lang-go=\"`3600`\" pulumi-lang-python=\"`3600`\" pulumi-lang-yaml=\"`3600`\" pulumi-lang-java=\"`3600`\"\u003e`3600`\u003c/span\u003e, etc. Conflicts with \u003cspan pulumi-lang-nodejs=\"`startTime`\" pulumi-lang-dotnet=\"`StartTime`\" pulumi-lang-go=\"`startTime`\" pulumi-lang-python=\"`start_time`\" pulumi-lang-yaml=\"`startTime`\" pulumi-lang-java=\"`startTime`\"\u003e`start_time`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`endTime`\" pulumi-lang-dotnet=\"`EndTime`\" pulumi-lang-go=\"`endTime`\" pulumi-lang-python=\"`end_time`\" pulumi-lang-yaml=\"`endTime`\" pulumi-lang-java=\"`endTime`\"\u003e`end_time`\u003c/span\u003e.\n"},"timezone":{"type":"string","description":"The property value is a string that denotes the geographic region associated with the time zone, (default UTC).\n"},"unitPrefix":{"type":"string","description":"Must be `\"Metric\"` or `\"Binary`\". `\"Metric\"` by default.\n"},"url":{"type":"string","description":"The URL of the chart.\n"},"vizOptions":{"type":"array","items":{"$ref":"#/types/signalfx:index/ListChartVizOption:ListChartVizOption"},"description":"Plot-level customization options, associated with a publish statement.\n"}},"required":["name","programText","url"],"inputProperties":{"colorBy":{"type":"string","description":"Must be one of `\"Scale\"`, `\"Dimension\"` or `\"Metric\"`. `\"Dimension\"` by default.\n"},"colorScales":{"type":"array","items":{"$ref":"#/types/signalfx:index/ListChartColorScale:ListChartColorScale"},"description":"Single color range including both the color to display for that range and the borders of the range. Example: `[{ gt = 60, color = \"blue\" }, { lte = 60, color = \"yellow\" }]`. Look at this [link](https://docs.splunk.com/observability/en/data-visualization/charts/chart-options.html).\n"},"description":{"type":"string","description":"Description of the chart.\n"},"disableSampling":{"type":"boolean","description":"If \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, samples a subset of the output MTS, which improves UI performance. \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e by default.\n"},"endTime":{"type":"integer","description":"Seconds since epoch. Used for visualization. Conflicts with \u003cspan pulumi-lang-nodejs=\"`timeRange`\" pulumi-lang-dotnet=\"`TimeRange`\" pulumi-lang-go=\"`timeRange`\" pulumi-lang-python=\"`time_range`\" pulumi-lang-yaml=\"`timeRange`\" pulumi-lang-java=\"`timeRange`\"\u003e`time_range`\u003c/span\u003e.\n"},"hideMissingValues":{"type":"boolean","description":"Determines whether to hide missing data points in the chart. If \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, missing data points in the chart would be hidden. \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e by default.\n"},"legendFieldsToHides":{"type":"array","items":{"type":"string"},"description":"List of properties that should not be displayed in the chart legend (i.e. dimension names). All the properties are visible by default. Deprecated, please use \u003cspan pulumi-lang-nodejs=\"`legendOptionsFields`\" pulumi-lang-dotnet=\"`LegendOptionsFields`\" pulumi-lang-go=\"`legendOptionsFields`\" pulumi-lang-python=\"`legend_options_fields`\" pulumi-lang-yaml=\"`legendOptionsFields`\" pulumi-lang-java=\"`legendOptionsFields`\"\u003e`legend_options_fields`\u003c/span\u003e.\n","deprecationMessage":"Please use legend_options_fields"},"legendOptionsFields":{"type":"array","items":{"$ref":"#/types/signalfx:index/ListChartLegendOptionsField:ListChartLegendOptionsField"},"description":"List of property names and enabled flags that should be displayed in the data table for the chart, in the order provided. This option cannot be used with \u003cspan pulumi-lang-nodejs=\"`legendFieldsToHide`\" pulumi-lang-dotnet=\"`LegendFieldsToHide`\" pulumi-lang-go=\"`legendFieldsToHide`\" pulumi-lang-python=\"`legend_fields_to_hide`\" pulumi-lang-yaml=\"`legendFieldsToHide`\" pulumi-lang-java=\"`legendFieldsToHide`\"\u003e`legend_fields_to_hide`\u003c/span\u003e.\n"},"maxDelay":{"type":"integer","description":"How long (in seconds) to wait for late datapoints.\n"},"maxPrecision":{"type":"integer","description":"Maximum number of digits to display when rounding values up or down.\n"},"name":{"type":"string","description":"Name of the chart.\n"},"programText":{"type":"string","description":"Signalflow program text for the chart. More info[in the Splunk Observability Cloud docs](https://dev.splunk.com/observability/docs/signalflow/).\n"},"refreshInterval":{"type":"integer","description":"How often (in seconds) to refresh the values of the list.\n"},"secondaryVisualization":{"type":"string","description":"The type of secondary visualization. Can be `None`, `Radial`, `Linear`, or `Sparkline`. If unset, the Splunk Observability Cloud default is used (`Sparkline`).\n"},"sortBy":{"type":"string","description":"The property to use when sorting the elements. Use \u003cspan pulumi-lang-nodejs=\"`value`\" pulumi-lang-dotnet=\"`Value`\" pulumi-lang-go=\"`value`\" pulumi-lang-python=\"`value`\" pulumi-lang-yaml=\"`value`\" pulumi-lang-java=\"`value`\"\u003e`value`\u003c/span\u003e if you want to sort by value. Must be prepended with `+` for ascending or `-` for descending (e.g. `-foo`). Note there are some special values for some of the options provided in the UX: `\"value\"` for Value, `\"sf_originatingMetric\"` for Metric, and `\u003cspan pulumi-lang-nodejs=\"\"sfMetric\"\" pulumi-lang-dotnet=\"\"SfMetric\"\" pulumi-lang-go=\"\"sfMetric\"\" pulumi-lang-python=\"\"sf_metric\"\" pulumi-lang-yaml=\"\"sfMetric\"\" pulumi-lang-java=\"\"sfMetric\"\"\u003e\"sf_metric\"\u003c/span\u003e` for plot.\n"},"startTime":{"type":"integer","description":"Seconds since epoch. Used for visualization. Conflicts with \u003cspan pulumi-lang-nodejs=\"`timeRange`\" pulumi-lang-dotnet=\"`TimeRange`\" pulumi-lang-go=\"`timeRange`\" pulumi-lang-python=\"`time_range`\" pulumi-lang-yaml=\"`timeRange`\" pulumi-lang-java=\"`timeRange`\"\u003e`time_range`\u003c/span\u003e.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"Tags associated with the resource"},"timeRange":{"type":"integer","description":"How many seconds ago from which to display data. For example, the last hour would be \u003cspan pulumi-lang-nodejs=\"`3600`\" pulumi-lang-dotnet=\"`3600`\" pulumi-lang-go=\"`3600`\" pulumi-lang-python=\"`3600`\" pulumi-lang-yaml=\"`3600`\" pulumi-lang-java=\"`3600`\"\u003e`3600`\u003c/span\u003e, etc. Conflicts with \u003cspan pulumi-lang-nodejs=\"`startTime`\" pulumi-lang-dotnet=\"`StartTime`\" pulumi-lang-go=\"`startTime`\" pulumi-lang-python=\"`start_time`\" pulumi-lang-yaml=\"`startTime`\" pulumi-lang-java=\"`startTime`\"\u003e`start_time`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`endTime`\" pulumi-lang-dotnet=\"`EndTime`\" pulumi-lang-go=\"`endTime`\" pulumi-lang-python=\"`end_time`\" pulumi-lang-yaml=\"`endTime`\" pulumi-lang-java=\"`endTime`\"\u003e`end_time`\u003c/span\u003e.\n"},"timezone":{"type":"string","description":"The property value is a string that denotes the geographic region associated with the time zone, (default UTC).\n"},"unitPrefix":{"type":"string","description":"Must be `\"Metric\"` or `\"Binary`\". `\"Metric\"` by default.\n"},"vizOptions":{"type":"array","items":{"$ref":"#/types/signalfx:index/ListChartVizOption:ListChartVizOption"},"description":"Plot-level customization options, associated with a publish statement.\n"}},"requiredInputs":["programText"],"stateInputs":{"description":"Input properties used for looking up and filtering ListChart resources.\n","properties":{"colorBy":{"type":"string","description":"Must be one of `\"Scale\"`, `\"Dimension\"` or `\"Metric\"`. `\"Dimension\"` by default.\n"},"colorScales":{"type":"array","items":{"$ref":"#/types/signalfx:index/ListChartColorScale:ListChartColorScale"},"description":"Single color range including both the color to display for that range and the borders of the range. Example: `[{ gt = 60, color = \"blue\" }, { lte = 60, color = \"yellow\" }]`. Look at this [link](https://docs.splunk.com/observability/en/data-visualization/charts/chart-options.html).\n"},"description":{"type":"string","description":"Description of the chart.\n"},"disableSampling":{"type":"boolean","description":"If \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, samples a subset of the output MTS, which improves UI performance. \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e by default.\n"},"endTime":{"type":"integer","description":"Seconds since epoch. Used for visualization. Conflicts with \u003cspan pulumi-lang-nodejs=\"`timeRange`\" pulumi-lang-dotnet=\"`TimeRange`\" pulumi-lang-go=\"`timeRange`\" pulumi-lang-python=\"`time_range`\" pulumi-lang-yaml=\"`timeRange`\" pulumi-lang-java=\"`timeRange`\"\u003e`time_range`\u003c/span\u003e.\n"},"hideMissingValues":{"type":"boolean","description":"Determines whether to hide missing data points in the chart. If \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, missing data points in the chart would be hidden. \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e by default.\n"},"legendFieldsToHides":{"type":"array","items":{"type":"string"},"description":"List of properties that should not be displayed in the chart legend (i.e. dimension names). All the properties are visible by default. Deprecated, please use \u003cspan pulumi-lang-nodejs=\"`legendOptionsFields`\" pulumi-lang-dotnet=\"`LegendOptionsFields`\" pulumi-lang-go=\"`legendOptionsFields`\" pulumi-lang-python=\"`legend_options_fields`\" pulumi-lang-yaml=\"`legendOptionsFields`\" pulumi-lang-java=\"`legendOptionsFields`\"\u003e`legend_options_fields`\u003c/span\u003e.\n","deprecationMessage":"Please use legend_options_fields"},"legendOptionsFields":{"type":"array","items":{"$ref":"#/types/signalfx:index/ListChartLegendOptionsField:ListChartLegendOptionsField"},"description":"List of property names and enabled flags that should be displayed in the data table for the chart, in the order provided. This option cannot be used with \u003cspan pulumi-lang-nodejs=\"`legendFieldsToHide`\" pulumi-lang-dotnet=\"`LegendFieldsToHide`\" pulumi-lang-go=\"`legendFieldsToHide`\" pulumi-lang-python=\"`legend_fields_to_hide`\" pulumi-lang-yaml=\"`legendFieldsToHide`\" pulumi-lang-java=\"`legendFieldsToHide`\"\u003e`legend_fields_to_hide`\u003c/span\u003e.\n"},"maxDelay":{"type":"integer","description":"How long (in seconds) to wait for late datapoints.\n"},"maxPrecision":{"type":"integer","description":"Maximum number of digits to display when rounding values up or down.\n"},"name":{"type":"string","description":"Name of the chart.\n"},"programText":{"type":"string","description":"Signalflow program text for the chart. More info[in the Splunk Observability Cloud docs](https://dev.splunk.com/observability/docs/signalflow/).\n"},"refreshInterval":{"type":"integer","description":"How often (in seconds) to refresh the values of the list.\n"},"secondaryVisualization":{"type":"string","description":"The type of secondary visualization. Can be `None`, `Radial`, `Linear`, or `Sparkline`. If unset, the Splunk Observability Cloud default is used (`Sparkline`).\n"},"sortBy":{"type":"string","description":"The property to use when sorting the elements. Use \u003cspan pulumi-lang-nodejs=\"`value`\" pulumi-lang-dotnet=\"`Value`\" pulumi-lang-go=\"`value`\" pulumi-lang-python=\"`value`\" pulumi-lang-yaml=\"`value`\" pulumi-lang-java=\"`value`\"\u003e`value`\u003c/span\u003e if you want to sort by value. Must be prepended with `+` for ascending or `-` for descending (e.g. `-foo`). Note there are some special values for some of the options provided in the UX: `\"value\"` for Value, `\"sf_originatingMetric\"` for Metric, and `\u003cspan pulumi-lang-nodejs=\"\"sfMetric\"\" pulumi-lang-dotnet=\"\"SfMetric\"\" pulumi-lang-go=\"\"sfMetric\"\" pulumi-lang-python=\"\"sf_metric\"\" pulumi-lang-yaml=\"\"sfMetric\"\" pulumi-lang-java=\"\"sfMetric\"\"\u003e\"sf_metric\"\u003c/span\u003e` for plot.\n"},"startTime":{"type":"integer","description":"Seconds since epoch. Used for visualization. Conflicts with \u003cspan pulumi-lang-nodejs=\"`timeRange`\" pulumi-lang-dotnet=\"`TimeRange`\" pulumi-lang-go=\"`timeRange`\" pulumi-lang-python=\"`time_range`\" pulumi-lang-yaml=\"`timeRange`\" pulumi-lang-java=\"`timeRange`\"\u003e`time_range`\u003c/span\u003e.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"Tags associated with the resource"},"timeRange":{"type":"integer","description":"How many seconds ago from which to display data. For example, the last hour would be \u003cspan pulumi-lang-nodejs=\"`3600`\" pulumi-lang-dotnet=\"`3600`\" pulumi-lang-go=\"`3600`\" pulumi-lang-python=\"`3600`\" pulumi-lang-yaml=\"`3600`\" pulumi-lang-java=\"`3600`\"\u003e`3600`\u003c/span\u003e, etc. Conflicts with \u003cspan pulumi-lang-nodejs=\"`startTime`\" pulumi-lang-dotnet=\"`StartTime`\" pulumi-lang-go=\"`startTime`\" pulumi-lang-python=\"`start_time`\" pulumi-lang-yaml=\"`startTime`\" pulumi-lang-java=\"`startTime`\"\u003e`start_time`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`endTime`\" pulumi-lang-dotnet=\"`EndTime`\" pulumi-lang-go=\"`endTime`\" pulumi-lang-python=\"`end_time`\" pulumi-lang-yaml=\"`endTime`\" pulumi-lang-java=\"`endTime`\"\u003e`end_time`\u003c/span\u003e.\n"},"timezone":{"type":"string","description":"The property value is a string that denotes the geographic region associated with the time zone, (default UTC).\n"},"unitPrefix":{"type":"string","description":"Must be `\"Metric\"` or `\"Binary`\". `\"Metric\"` by default.\n"},"url":{"type":"string","description":"The URL of the chart.\n"},"vizOptions":{"type":"array","items":{"$ref":"#/types/signalfx:index/ListChartVizOption:ListChartVizOption"},"description":"Plot-level customization options, associated with a publish statement.\n"}},"type":"object"}},"signalfx:index/metricRuleset:MetricRuleset":{"description":"Provides an Observability Cloud resource for managing metric rulesets.\n\n\u003e **NOTE** When managing metric rulesets to drop data use a session token for an administrator to authenticate the Splunk Observability Cloud provider. See [Operations that require a session token for an administrator](https://dev.splunk.com/observability/docs/administration/authtokens#Operations-that-require-a-session-token-for-an-administrator). Otherwise you'll receive a 4xx error.\n\n## Example\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as signalfx from \"@pulumi/signalfx\";\n\nconst cpuUtilizationMetricRuleset = new signalfx.MetricRuleset(\"cpu_utilization_metric_ruleset\", {\n    metricName: \"cpu.utilization\",\n    description: \"Routing ruleset for cpu.utilization\",\n    aggregationRules: [{\n        name: \"cpu.utilization by service rule\",\n        description: \"Aggregates cpu.utilization data by service\",\n        enabled: true,\n        matchers: [{\n            type: \"dimension\",\n            filters: [{\n                property: \"realm\",\n                propertyValues: [\"us-east-1\"],\n                not: false,\n            }],\n        }],\n        aggregators: [{\n            type: \"rollup\",\n            dimensions: [\"service\"],\n            dropDimensions: false,\n            outputName: \"cpu.utilization.by.service.agg\",\n        }],\n    }],\n    exceptionRules: [{\n        name: \"Exception rule us-east-2\",\n        description: \"Routes us-east-2 data to real-time\",\n        enabled: true,\n        matchers: [{\n            type: \"dimension\",\n            filters: [{\n                property: \"realm\",\n                propertyValues: [\"us-east-2\"],\n                not: false,\n            }],\n        }],\n    }],\n    routingRules: [{\n        destination: \"Archived\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_signalfx as signalfx\n\ncpu_utilization_metric_ruleset = signalfx.MetricRuleset(\"cpu_utilization_metric_ruleset\",\n    metric_name=\"cpu.utilization\",\n    description=\"Routing ruleset for cpu.utilization\",\n    aggregation_rules=[{\n        \"name\": \"cpu.utilization by service rule\",\n        \"description\": \"Aggregates cpu.utilization data by service\",\n        \"enabled\": True,\n        \"matchers\": [{\n            \"type\": \"dimension\",\n            \"filters\": [{\n                \"property\": \"realm\",\n                \"property_values\": [\"us-east-1\"],\n                \"not_\": False,\n            }],\n        }],\n        \"aggregators\": [{\n            \"type\": \"rollup\",\n            \"dimensions\": [\"service\"],\n            \"drop_dimensions\": False,\n            \"output_name\": \"cpu.utilization.by.service.agg\",\n        }],\n    }],\n    exception_rules=[{\n        \"name\": \"Exception rule us-east-2\",\n        \"description\": \"Routes us-east-2 data to real-time\",\n        \"enabled\": True,\n        \"matchers\": [{\n            \"type\": \"dimension\",\n            \"filters\": [{\n                \"property\": \"realm\",\n                \"property_values\": [\"us-east-2\"],\n                \"not_\": False,\n            }],\n        }],\n    }],\n    routing_rules=[{\n        \"destination\": \"Archived\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing SignalFx = Pulumi.SignalFx;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var cpuUtilizationMetricRuleset = new SignalFx.MetricRuleset(\"cpu_utilization_metric_ruleset\", new()\n    {\n        MetricName = \"cpu.utilization\",\n        Description = \"Routing ruleset for cpu.utilization\",\n        AggregationRules = new[]\n        {\n            new SignalFx.Inputs.MetricRulesetAggregationRuleArgs\n            {\n                Name = \"cpu.utilization by service rule\",\n                Description = \"Aggregates cpu.utilization data by service\",\n                Enabled = true,\n                Matchers = new[]\n                {\n                    new SignalFx.Inputs.MetricRulesetAggregationRuleMatcherArgs\n                    {\n                        Type = \"dimension\",\n                        Filters = new[]\n                        {\n                            new SignalFx.Inputs.MetricRulesetAggregationRuleMatcherFilterArgs\n                            {\n                                Property = \"realm\",\n                                PropertyValues = new[]\n                                {\n                                    \"us-east-1\",\n                                },\n                                Not = false,\n                            },\n                        },\n                    },\n                },\n                Aggregators = new[]\n                {\n                    new SignalFx.Inputs.MetricRulesetAggregationRuleAggregatorArgs\n                    {\n                        Type = \"rollup\",\n                        Dimensions = new[]\n                        {\n                            \"service\",\n                        },\n                        DropDimensions = false,\n                        OutputName = \"cpu.utilization.by.service.agg\",\n                    },\n                },\n            },\n        },\n        ExceptionRules = new[]\n        {\n            new SignalFx.Inputs.MetricRulesetExceptionRuleArgs\n            {\n                Name = \"Exception rule us-east-2\",\n                Description = \"Routes us-east-2 data to real-time\",\n                Enabled = true,\n                Matchers = new[]\n                {\n                    new SignalFx.Inputs.MetricRulesetExceptionRuleMatcherArgs\n                    {\n                        Type = \"dimension\",\n                        Filters = new[]\n                        {\n                            new SignalFx.Inputs.MetricRulesetExceptionRuleMatcherFilterArgs\n                            {\n                                Property = \"realm\",\n                                PropertyValues = new[]\n                                {\n                                    \"us-east-2\",\n                                },\n                                Not = false,\n                            },\n                        },\n                    },\n                },\n            },\n        },\n        RoutingRules = new[]\n        {\n            new SignalFx.Inputs.MetricRulesetRoutingRuleArgs\n            {\n                Destination = \"Archived\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-signalfx/sdk/v7/go/signalfx\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := signalfx.NewMetricRuleset(ctx, \"cpu_utilization_metric_ruleset\", \u0026signalfx.MetricRulesetArgs{\n\t\t\tMetricName:  pulumi.String(\"cpu.utilization\"),\n\t\t\tDescription: pulumi.String(\"Routing ruleset for cpu.utilization\"),\n\t\t\tAggregationRules: signalfx.MetricRulesetAggregationRuleArray{\n\t\t\t\t\u0026signalfx.MetricRulesetAggregationRuleArgs{\n\t\t\t\t\tName:        pulumi.String(\"cpu.utilization by service rule\"),\n\t\t\t\t\tDescription: pulumi.String(\"Aggregates cpu.utilization data by service\"),\n\t\t\t\t\tEnabled:     pulumi.Bool(true),\n\t\t\t\t\tMatchers: signalfx.MetricRulesetAggregationRuleMatcherArray{\n\t\t\t\t\t\t\u0026signalfx.MetricRulesetAggregationRuleMatcherArgs{\n\t\t\t\t\t\t\tType: pulumi.String(\"dimension\"),\n\t\t\t\t\t\t\tFilters: signalfx.MetricRulesetAggregationRuleMatcherFilterArray{\n\t\t\t\t\t\t\t\t\u0026signalfx.MetricRulesetAggregationRuleMatcherFilterArgs{\n\t\t\t\t\t\t\t\t\tProperty: pulumi.String(\"realm\"),\n\t\t\t\t\t\t\t\t\tPropertyValues: pulumi.StringArray{\n\t\t\t\t\t\t\t\t\t\tpulumi.String(\"us-east-1\"),\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tNot: pulumi.Bool(false),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tAggregators: signalfx.MetricRulesetAggregationRuleAggregatorArray{\n\t\t\t\t\t\t\u0026signalfx.MetricRulesetAggregationRuleAggregatorArgs{\n\t\t\t\t\t\t\tType: pulumi.String(\"rollup\"),\n\t\t\t\t\t\t\tDimensions: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"service\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tDropDimensions: pulumi.Bool(false),\n\t\t\t\t\t\t\tOutputName:     pulumi.String(\"cpu.utilization.by.service.agg\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tExceptionRules: signalfx.MetricRulesetExceptionRuleArray{\n\t\t\t\t\u0026signalfx.MetricRulesetExceptionRuleArgs{\n\t\t\t\t\tName:        pulumi.String(\"Exception rule us-east-2\"),\n\t\t\t\t\tDescription: pulumi.String(\"Routes us-east-2 data to real-time\"),\n\t\t\t\t\tEnabled:     pulumi.Bool(true),\n\t\t\t\t\tMatchers: signalfx.MetricRulesetExceptionRuleMatcherArray{\n\t\t\t\t\t\t\u0026signalfx.MetricRulesetExceptionRuleMatcherArgs{\n\t\t\t\t\t\t\tType: pulumi.String(\"dimension\"),\n\t\t\t\t\t\t\tFilters: signalfx.MetricRulesetExceptionRuleMatcherFilterArray{\n\t\t\t\t\t\t\t\t\u0026signalfx.MetricRulesetExceptionRuleMatcherFilterArgs{\n\t\t\t\t\t\t\t\t\tProperty: pulumi.String(\"realm\"),\n\t\t\t\t\t\t\t\t\tPropertyValues: pulumi.StringArray{\n\t\t\t\t\t\t\t\t\t\tpulumi.String(\"us-east-2\"),\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tNot: pulumi.Bool(false),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tRoutingRules: signalfx.MetricRulesetRoutingRuleArray{\n\t\t\t\t\u0026signalfx.MetricRulesetRoutingRuleArgs{\n\t\t\t\t\tDestination: pulumi.String(\"Archived\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.signalfx.MetricRuleset;\nimport com.pulumi.signalfx.MetricRulesetArgs;\nimport com.pulumi.signalfx.inputs.MetricRulesetAggregationRuleArgs;\nimport com.pulumi.signalfx.inputs.MetricRulesetExceptionRuleArgs;\nimport com.pulumi.signalfx.inputs.MetricRulesetRoutingRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var cpuUtilizationMetricRuleset = new MetricRuleset(\"cpuUtilizationMetricRuleset\", MetricRulesetArgs.builder()\n            .metricName(\"cpu.utilization\")\n            .description(\"Routing ruleset for cpu.utilization\")\n            .aggregationRules(MetricRulesetAggregationRuleArgs.builder()\n                .name(\"cpu.utilization by service rule\")\n                .description(\"Aggregates cpu.utilization data by service\")\n                .enabled(true)\n                .matchers(MetricRulesetAggregationRuleMatcherArgs.builder()\n                    .type(\"dimension\")\n                    .filters(MetricRulesetAggregationRuleMatcherFilterArgs.builder()\n                        .property(\"realm\")\n                        .propertyValues(\"us-east-1\")\n                        .not(false)\n                        .build())\n                    .build())\n                .aggregators(MetricRulesetAggregationRuleAggregatorArgs.builder()\n                    .type(\"rollup\")\n                    .dimensions(\"service\")\n                    .dropDimensions(false)\n                    .outputName(\"cpu.utilization.by.service.agg\")\n                    .build())\n                .build())\n            .exceptionRules(MetricRulesetExceptionRuleArgs.builder()\n                .name(\"Exception rule us-east-2\")\n                .description(\"Routes us-east-2 data to real-time\")\n                .enabled(true)\n                .matchers(MetricRulesetExceptionRuleMatcherArgs.builder()\n                    .type(\"dimension\")\n                    .filters(MetricRulesetExceptionRuleMatcherFilterArgs.builder()\n                        .property(\"realm\")\n                        .propertyValues(\"us-east-2\")\n                        .not(false)\n                        .build())\n                    .build())\n                .build())\n            .routingRules(MetricRulesetRoutingRuleArgs.builder()\n                .destination(\"Archived\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  cpuUtilizationMetricRuleset:\n    type: signalfx:MetricRuleset\n    name: cpu_utilization_metric_ruleset\n    properties:\n      metricName: cpu.utilization\n      description: Routing ruleset for cpu.utilization\n      aggregationRules:\n        - name: cpu.utilization by service rule\n          description: Aggregates cpu.utilization data by service\n          enabled: true\n          matchers:\n            - type: dimension\n              filters:\n                - property: realm\n                  propertyValues:\n                    - us-east-1\n                  not: false\n          aggregators:\n            - type: rollup\n              dimensions:\n                - service\n              dropDimensions: false\n              outputName: cpu.utilization.by.service.agg\n      exceptionRules:\n        - name: Exception rule us-east-2\n          description: Routes us-east-2 data to real-time\n          enabled: true\n          matchers:\n            - type: dimension\n              filters:\n                - property: realm\n                  propertyValues:\n                    - us-east-2\n                  not: false\n      routingRules:\n        - destination: Archived\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"aggregationRules":{"type":"array","items":{"$ref":"#/types/signalfx:index/MetricRulesetAggregationRule:MetricRulesetAggregationRule"},"description":"List of aggregation rules for the metric\n"},"created":{"type":"string","description":"Timestamp of when the metric ruleset was created"},"creator":{"type":"string","description":"ID of the creator of the metric ruleset"},"description":{"type":"string","description":"Information about the metric ruleset\n"},"exceptionRules":{"type":"array","items":{"$ref":"#/types/signalfx:index/MetricRulesetExceptionRule:MetricRulesetExceptionRule"},"description":"List of exception rules for the metric\n"},"lastUpdated":{"type":"string","description":"Timestamp of when the metric ruleset was last updated"},"lastUpdatedBy":{"type":"string","description":"ID of user who last updated the metric ruleset"},"lastUpdatedByName":{"type":"string","description":"Name of user who last updated this metric ruleset"},"metricName":{"type":"string","description":"Name of the input metric\n"},"routingRules":{"type":"array","items":{"$ref":"#/types/signalfx:index/MetricRulesetRoutingRule:MetricRulesetRoutingRule"},"description":"Routing Rule object\n"},"version":{"type":"string","description":"Version of the ruleset"}},"required":["created","creator","lastUpdated","lastUpdatedBy","lastUpdatedByName","metricName","routingRules","version"],"inputProperties":{"aggregationRules":{"type":"array","items":{"$ref":"#/types/signalfx:index/MetricRulesetAggregationRule:MetricRulesetAggregationRule"},"description":"List of aggregation rules for the metric\n"},"description":{"type":"string","description":"Information about the metric ruleset\n"},"exceptionRules":{"type":"array","items":{"$ref":"#/types/signalfx:index/MetricRulesetExceptionRule:MetricRulesetExceptionRule"},"description":"List of exception rules for the metric\n"},"metricName":{"type":"string","description":"Name of the input metric\n"},"routingRules":{"type":"array","items":{"$ref":"#/types/signalfx:index/MetricRulesetRoutingRule:MetricRulesetRoutingRule"},"description":"Routing Rule object\n"}},"requiredInputs":["metricName","routingRules"],"stateInputs":{"description":"Input properties used for looking up and filtering MetricRuleset resources.\n","properties":{"aggregationRules":{"type":"array","items":{"$ref":"#/types/signalfx:index/MetricRulesetAggregationRule:MetricRulesetAggregationRule"},"description":"List of aggregation rules for the metric\n"},"created":{"type":"string","description":"Timestamp of when the metric ruleset was created"},"creator":{"type":"string","description":"ID of the creator of the metric ruleset"},"description":{"type":"string","description":"Information about the metric ruleset\n"},"exceptionRules":{"type":"array","items":{"$ref":"#/types/signalfx:index/MetricRulesetExceptionRule:MetricRulesetExceptionRule"},"description":"List of exception rules for the metric\n"},"lastUpdated":{"type":"string","description":"Timestamp of when the metric ruleset was last updated"},"lastUpdatedBy":{"type":"string","description":"ID of user who last updated the metric ruleset"},"lastUpdatedByName":{"type":"string","description":"Name of user who last updated this metric ruleset"},"metricName":{"type":"string","description":"Name of the input metric\n"},"routingRules":{"type":"array","items":{"$ref":"#/types/signalfx:index/MetricRulesetRoutingRule:MetricRulesetRoutingRule"},"description":"Routing Rule object\n"},"version":{"type":"string","description":"Version of the ruleset"}},"type":"object"}},"signalfx:index/orgToken:OrgToken":{"description":"Manage Splunk Observability Cloud org tokens.\n\n\u003e **NOTE** When managing Org tokens, use a session token of an administrator to authenticate the Splunk Observability Cloud provider. See [Operations that require a session token for an administrator](https://dev.splunk.com/observability/docs/administration/authtokens#Operations-that-require-a-session-token-for-an-administrator).\n\n## Example\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as signalfx from \"@pulumi/signalfx\";\n\nconst myteamkey0 = new signalfx.OrgToken(\"myteamkey0\", {\n    name: \"TeamIDKey\",\n    description: \"My team's rad key\",\n    notifications: [\"Email,foo-alerts@bar.com\"],\n    hostOrUsageLimits: {\n        hostLimit: 100,\n        hostNotificationThreshold: 90,\n        containerLimit: 200,\n        containerNotificationThreshold: 180,\n        customMetricsLimit: 1000,\n        customMetricsNotificationThreshold: 900,\n        highResMetricsLimit: 1000,\n        highResMetricsNotificationThreshold: 900,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_signalfx as signalfx\n\nmyteamkey0 = signalfx.OrgToken(\"myteamkey0\",\n    name=\"TeamIDKey\",\n    description=\"My team's rad key\",\n    notifications=[\"Email,foo-alerts@bar.com\"],\n    host_or_usage_limits={\n        \"host_limit\": 100,\n        \"host_notification_threshold\": 90,\n        \"container_limit\": 200,\n        \"container_notification_threshold\": 180,\n        \"custom_metrics_limit\": 1000,\n        \"custom_metrics_notification_threshold\": 900,\n        \"high_res_metrics_limit\": 1000,\n        \"high_res_metrics_notification_threshold\": 900,\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing SignalFx = Pulumi.SignalFx;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var myteamkey0 = new SignalFx.OrgToken(\"myteamkey0\", new()\n    {\n        Name = \"TeamIDKey\",\n        Description = \"My team's rad key\",\n        Notifications = new[]\n        {\n            \"Email,foo-alerts@bar.com\",\n        },\n        HostOrUsageLimits = new SignalFx.Inputs.OrgTokenHostOrUsageLimitsArgs\n        {\n            HostLimit = 100,\n            HostNotificationThreshold = 90,\n            ContainerLimit = 200,\n            ContainerNotificationThreshold = 180,\n            CustomMetricsLimit = 1000,\n            CustomMetricsNotificationThreshold = 900,\n            HighResMetricsLimit = 1000,\n            HighResMetricsNotificationThreshold = 900,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-signalfx/sdk/v7/go/signalfx\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := signalfx.NewOrgToken(ctx, \"myteamkey0\", \u0026signalfx.OrgTokenArgs{\n\t\t\tName:        pulumi.String(\"TeamIDKey\"),\n\t\t\tDescription: pulumi.String(\"My team's rad key\"),\n\t\t\tNotifications: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"Email,foo-alerts@bar.com\"),\n\t\t\t},\n\t\t\tHostOrUsageLimits: \u0026signalfx.OrgTokenHostOrUsageLimitsArgs{\n\t\t\t\tHostLimit:                           pulumi.Int(100),\n\t\t\t\tHostNotificationThreshold:           pulumi.Int(90),\n\t\t\t\tContainerLimit:                      pulumi.Int(200),\n\t\t\t\tContainerNotificationThreshold:      pulumi.Int(180),\n\t\t\t\tCustomMetricsLimit:                  pulumi.Int(1000),\n\t\t\t\tCustomMetricsNotificationThreshold:  pulumi.Int(900),\n\t\t\t\tHighResMetricsLimit:                 pulumi.Int(1000),\n\t\t\t\tHighResMetricsNotificationThreshold: pulumi.Int(900),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.signalfx.OrgToken;\nimport com.pulumi.signalfx.OrgTokenArgs;\nimport com.pulumi.signalfx.inputs.OrgTokenHostOrUsageLimitsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var myteamkey0 = new OrgToken(\"myteamkey0\", OrgTokenArgs.builder()\n            .name(\"TeamIDKey\")\n            .description(\"My team's rad key\")\n            .notifications(\"Email,foo-alerts@bar.com\")\n            .hostOrUsageLimits(OrgTokenHostOrUsageLimitsArgs.builder()\n                .hostLimit(100)\n                .hostNotificationThreshold(90)\n                .containerLimit(200)\n                .containerNotificationThreshold(180)\n                .customMetricsLimit(1000)\n                .customMetricsNotificationThreshold(900)\n                .highResMetricsLimit(1000)\n                .highResMetricsNotificationThreshold(900)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  myteamkey0:\n    type: signalfx:OrgToken\n    properties:\n      name: TeamIDKey\n      description: My team's rad key\n      notifications:\n        - Email,foo-alerts@bar.com\n      hostOrUsageLimits:\n        hostLimit: 100\n        hostNotificationThreshold: 90\n        containerLimit: 200\n        containerNotificationThreshold: 180\n        customMetricsLimit: 1000\n        customMetricsNotificationThreshold: 900\n        highResMetricsLimit: 1000\n        highResMetricsNotificationThreshold: 900\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"authScopes":{"type":"array","items":{"type":"string"},"description":"Authentication scope, ex: INGEST, API, RUM ... (Optional)"},"description":{"type":"string","description":"Description of the token.\n"},"disabled":{"type":"boolean","description":"Flag that controls enabling the token. If set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, the token is disabled, and you can't use it for authentication. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"dpmLimits":{"$ref":"#/types/signalfx:index/OrgTokenDpmLimits:OrgTokenDpmLimits","description":"Specify DPM-based limits for this token.\n"},"hostOrUsageLimits":{"$ref":"#/types/signalfx:index/OrgTokenHostOrUsageLimits:OrgTokenHostOrUsageLimits","description":"Specify Usage-based limits for this token.\n"},"name":{"type":"string","description":"Name of the token.\n"},"notifications":{"type":"array","items":{"type":"string"},"description":"Where to send notifications about this token's limits. See the Notification Format laid out in detectors.\n"},"secret":{"type":"string","description":"The secret token created by the API. You cannot set this value.\n","secret":true}},"required":["authScopes","name","secret"],"inputProperties":{"authScopes":{"type":"array","items":{"type":"string"},"description":"Authentication scope, ex: INGEST, API, RUM ... (Optional)"},"description":{"type":"string","description":"Description of the token.\n"},"disabled":{"type":"boolean","description":"Flag that controls enabling the token. If set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, the token is disabled, and you can't use it for authentication. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"dpmLimits":{"$ref":"#/types/signalfx:index/OrgTokenDpmLimits:OrgTokenDpmLimits","description":"Specify DPM-based limits for this token.\n"},"hostOrUsageLimits":{"$ref":"#/types/signalfx:index/OrgTokenHostOrUsageLimits:OrgTokenHostOrUsageLimits","description":"Specify Usage-based limits for this token.\n"},"name":{"type":"string","description":"Name of the token.\n"},"notifications":{"type":"array","items":{"type":"string"},"description":"Where to send notifications about this token's limits. See the Notification Format laid out in detectors.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering OrgToken resources.\n","properties":{"authScopes":{"type":"array","items":{"type":"string"},"description":"Authentication scope, ex: INGEST, API, RUM ... (Optional)"},"description":{"type":"string","description":"Description of the token.\n"},"disabled":{"type":"boolean","description":"Flag that controls enabling the token. If set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, the token is disabled, and you can't use it for authentication. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"dpmLimits":{"$ref":"#/types/signalfx:index/OrgTokenDpmLimits:OrgTokenDpmLimits","description":"Specify DPM-based limits for this token.\n"},"hostOrUsageLimits":{"$ref":"#/types/signalfx:index/OrgTokenHostOrUsageLimits:OrgTokenHostOrUsageLimits","description":"Specify Usage-based limits for this token.\n"},"name":{"type":"string","description":"Name of the token.\n"},"notifications":{"type":"array","items":{"type":"string"},"description":"Where to send notifications about this token's limits. See the Notification Format laid out in detectors.\n"},"secret":{"type":"string","description":"The secret token created by the API. You cannot set this value.\n","secret":true}},"type":"object"}},"signalfx:index/singleValueChart:SingleValueChart":{"description":"This chart type displays a single number in a large font, representing the current value of a single metric on a plot line.\n\nIf the time period is in the past, the number represents the value of the metric near the end of the time period.\n\n## Example\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as signalfx from \"@pulumi/signalfx\";\n\nconst mysvchart0 = new signalfx.SingleValueChart(\"mysvchart0\", {\n    name: \"CPU Total Idle - Single Value\",\n    programText: `myfilters = filter(\\\\\"cluster_name\\\\\", \\\\\"prod\\\\\") and filter(\\\\\"role\\\\\", \\\\\"search\\\\\")\ndata(\\\\\"cpu.total.idle\\\\\", filter=myfilters).publish()\n`,\n    description: \"Very cool Single Value Chart\",\n    colorBy: \"Dimension\",\n    maxDelay: 2,\n    refreshInterval: 1,\n    maxPrecision: 2,\n    isTimestampHidden: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_signalfx as signalfx\n\nmysvchart0 = signalfx.SingleValueChart(\"mysvchart0\",\n    name=\"CPU Total Idle - Single Value\",\n    program_text=\"\"\"myfilters = filter(\\\"cluster_name\\\", \\\"prod\\\") and filter(\\\"role\\\", \\\"search\\\")\ndata(\\\"cpu.total.idle\\\", filter=myfilters).publish()\n\"\"\",\n    description=\"Very cool Single Value Chart\",\n    color_by=\"Dimension\",\n    max_delay=2,\n    refresh_interval=1,\n    max_precision=2,\n    is_timestamp_hidden=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing SignalFx = Pulumi.SignalFx;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var mysvchart0 = new SignalFx.SingleValueChart(\"mysvchart0\", new()\n    {\n        Name = \"CPU Total Idle - Single Value\",\n        ProgramText = @\"myfilters = filter(\\\"\"cluster_name\\\"\", \\\"\"prod\\\"\") and filter(\\\"\"role\\\"\", \\\"\"search\\\"\")\ndata(\\\"\"cpu.total.idle\\\"\", filter=myfilters).publish()\n\",\n        Description = \"Very cool Single Value Chart\",\n        ColorBy = \"Dimension\",\n        MaxDelay = 2,\n        RefreshInterval = 1,\n        MaxPrecision = 2,\n        IsTimestampHidden = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-signalfx/sdk/v7/go/signalfx\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := signalfx.NewSingleValueChart(ctx, \"mysvchart0\", \u0026signalfx.SingleValueChartArgs{\n\t\t\tName:              pulumi.String(\"CPU Total Idle - Single Value\"),\n\t\t\tProgramText:       pulumi.String(\"myfilters = filter(\\\\\\\"cluster_name\\\\\\\", \\\\\\\"prod\\\\\\\") and filter(\\\\\\\"role\\\\\\\", \\\\\\\"search\\\\\\\")\\ndata(\\\\\\\"cpu.total.idle\\\\\\\", filter=myfilters).publish()\\n\"),\n\t\t\tDescription:       pulumi.String(\"Very cool Single Value Chart\"),\n\t\t\tColorBy:           pulumi.String(\"Dimension\"),\n\t\t\tMaxDelay:          pulumi.Int(2),\n\t\t\tRefreshInterval:   pulumi.Int(1),\n\t\t\tMaxPrecision:      pulumi.Int(2),\n\t\t\tIsTimestampHidden: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.signalfx.SingleValueChart;\nimport com.pulumi.signalfx.SingleValueChartArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var mysvchart0 = new SingleValueChart(\"mysvchart0\", SingleValueChartArgs.builder()\n            .name(\"CPU Total Idle - Single Value\")\n            .programText(\"\"\"\nmyfilters = filter(\\\"cluster_name\\\", \\\"prod\\\") and filter(\\\"role\\\", \\\"search\\\")\ndata(\\\"cpu.total.idle\\\", filter=myfilters).publish()\n            \"\"\")\n            .description(\"Very cool Single Value Chart\")\n            .colorBy(\"Dimension\")\n            .maxDelay(2)\n            .refreshInterval(1)\n            .maxPrecision(2)\n            .isTimestampHidden(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  mysvchart0:\n    type: signalfx:SingleValueChart\n    properties:\n      name: CPU Total Idle - Single Value\n      programText: |\n        myfilters = filter(\\\"cluster_name\\\", \\\"prod\\\") and filter(\\\"role\\\", \\\"search\\\")\n        data(\\\"cpu.total.idle\\\", filter=myfilters).publish()\n      description: Very cool Single Value Chart\n      colorBy: Dimension\n      maxDelay: 2\n      refreshInterval: 1\n      maxPrecision: 2\n      isTimestampHidden: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"colorBy":{"type":"string","description":"Must be `\"Dimension\"`, `\"Scale\"` or `\"Metric\"`. `\"Dimension\"` by default.\n"},"colorScales":{"type":"array","items":{"$ref":"#/types/signalfx:index/SingleValueChartColorScale:SingleValueChartColorScale"},"description":"Single color range including both the color to display for that range and the borders of the range. Example: `[{ gt = 60, color = \"blue\" }, { lte = 60, color = \"yellow\" }]`. Look at this [link](https://dev.splunk.com/observability/docs/chartsdashboards/charts_overview/#Chart-color-palettes).\n"},"description":{"type":"string","description":"Description of the chart.\n"},"isTimestampHidden":{"type":"boolean","description":"Whether to hide the timestamp in the chart. \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e by default.\n"},"maxDelay":{"type":"integer","description":"How long (in seconds) to wait for late datapoints\n"},"maxPrecision":{"type":"integer","description":"The maximum precision to for value displayed.\n"},"name":{"type":"string","description":"Name of the chart.\n"},"programText":{"type":"string","description":"Signalflow program text for the chart. More info [in the Splunk Observability Cloud docs](https://dev.splunk.com/observability/docs/signalflow/).\n"},"refreshInterval":{"type":"integer","description":"How often (in seconds) to refresh the value.\n"},"secondaryVisualization":{"type":"string","description":"The type of secondary visualization. Can be `None`, `Radial`, `Linear`, or `Sparkline`. If unset, the Splunk Observability Cloud default is used (`None`).\n"},"showSparkLine":{"type":"boolean","description":"Whether to show a trend line below the current value. \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e by default.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"Tags associated with the resource"},"timezone":{"type":"string","description":"The property value is a string that denotes the geographic region associated with the time zone, (e.g. Australia/Sydney)"},"unitPrefix":{"type":"string","description":"Must be `\"Metric\"` or `\"Binary\"`. `\"Metric\"` by default.\n"},"url":{"type":"string","description":"The URL of the chart.\n"},"vizOptions":{"type":"array","items":{"$ref":"#/types/signalfx:index/SingleValueChartVizOption:SingleValueChartVizOption"},"description":"Plot-level customization options, associated with a publish statement.\n"}},"required":["name","programText","url"],"inputProperties":{"colorBy":{"type":"string","description":"Must be `\"Dimension\"`, `\"Scale\"` or `\"Metric\"`. `\"Dimension\"` by default.\n"},"colorScales":{"type":"array","items":{"$ref":"#/types/signalfx:index/SingleValueChartColorScale:SingleValueChartColorScale"},"description":"Single color range including both the color to display for that range and the borders of the range. Example: `[{ gt = 60, color = \"blue\" }, { lte = 60, color = \"yellow\" }]`. Look at this [link](https://dev.splunk.com/observability/docs/chartsdashboards/charts_overview/#Chart-color-palettes).\n"},"description":{"type":"string","description":"Description of the chart.\n"},"isTimestampHidden":{"type":"boolean","description":"Whether to hide the timestamp in the chart. \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e by default.\n"},"maxDelay":{"type":"integer","description":"How long (in seconds) to wait for late datapoints\n"},"maxPrecision":{"type":"integer","description":"The maximum precision to for value displayed.\n"},"name":{"type":"string","description":"Name of the chart.\n"},"programText":{"type":"string","description":"Signalflow program text for the chart. More info [in the Splunk Observability Cloud docs](https://dev.splunk.com/observability/docs/signalflow/).\n"},"refreshInterval":{"type":"integer","description":"How often (in seconds) to refresh the value.\n"},"secondaryVisualization":{"type":"string","description":"The type of secondary visualization. Can be `None`, `Radial`, `Linear`, or `Sparkline`. If unset, the Splunk Observability Cloud default is used (`None`).\n"},"showSparkLine":{"type":"boolean","description":"Whether to show a trend line below the current value. \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e by default.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"Tags associated with the resource"},"timezone":{"type":"string","description":"The property value is a string that denotes the geographic region associated with the time zone, (e.g. Australia/Sydney)"},"unitPrefix":{"type":"string","description":"Must be `\"Metric\"` or `\"Binary\"`. `\"Metric\"` by default.\n"},"vizOptions":{"type":"array","items":{"$ref":"#/types/signalfx:index/SingleValueChartVizOption:SingleValueChartVizOption"},"description":"Plot-level customization options, associated with a publish statement.\n"}},"requiredInputs":["programText"],"stateInputs":{"description":"Input properties used for looking up and filtering SingleValueChart resources.\n","properties":{"colorBy":{"type":"string","description":"Must be `\"Dimension\"`, `\"Scale\"` or `\"Metric\"`. `\"Dimension\"` by default.\n"},"colorScales":{"type":"array","items":{"$ref":"#/types/signalfx:index/SingleValueChartColorScale:SingleValueChartColorScale"},"description":"Single color range including both the color to display for that range and the borders of the range. Example: `[{ gt = 60, color = \"blue\" }, { lte = 60, color = \"yellow\" }]`. Look at this [link](https://dev.splunk.com/observability/docs/chartsdashboards/charts_overview/#Chart-color-palettes).\n"},"description":{"type":"string","description":"Description of the chart.\n"},"isTimestampHidden":{"type":"boolean","description":"Whether to hide the timestamp in the chart. \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e by default.\n"},"maxDelay":{"type":"integer","description":"How long (in seconds) to wait for late datapoints\n"},"maxPrecision":{"type":"integer","description":"The maximum precision to for value displayed.\n"},"name":{"type":"string","description":"Name of the chart.\n"},"programText":{"type":"string","description":"Signalflow program text for the chart. More info [in the Splunk Observability Cloud docs](https://dev.splunk.com/observability/docs/signalflow/).\n"},"refreshInterval":{"type":"integer","description":"How often (in seconds) to refresh the value.\n"},"secondaryVisualization":{"type":"string","description":"The type of secondary visualization. Can be `None`, `Radial`, `Linear`, or `Sparkline`. If unset, the Splunk Observability Cloud default is used (`None`).\n"},"showSparkLine":{"type":"boolean","description":"Whether to show a trend line below the current value. \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e by default.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"Tags associated with the resource"},"timezone":{"type":"string","description":"The property value is a string that denotes the geographic region associated with the time zone, (e.g. Australia/Sydney)"},"unitPrefix":{"type":"string","description":"Must be `\"Metric\"` or `\"Binary\"`. `\"Metric\"` by default.\n"},"url":{"type":"string","description":"The URL of the chart.\n"},"vizOptions":{"type":"array","items":{"$ref":"#/types/signalfx:index/SingleValueChartVizOption:SingleValueChartVizOption"},"description":"Plot-level customization options, associated with a publish statement.\n"}},"type":"object"}},"signalfx:index/slo:Slo":{"description":"Provides a Splunk Observability Cloud slo resource. This can be used to create and manage SLOs.\n\nTo learn more about this feature take a look on [documentation for SLO](https://docs.splunk.com/observability/en/alerts-detectors-notifications/slo/slo-intro.html).\n\n## Example\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as signalfx from \"@pulumi/signalfx\";\n\nconst fooServiceSlo = new signalfx.Slo(\"foo_service_slo\", {\n    name: \"foo service SLO\",\n    type: \"RequestBased\",\n    description: \"SLO monitoring for foo service\",\n    input: {\n        programText: `G = data('spans.count', filter=filter('sf_error', 'false') and filter('sf_service', 'foo-service'))\nT = data('spans.count', filter=filter('sf_service', 'foo-service'))`,\n        goodEventsLabel: \"G\",\n        totalEventsLabel: \"T\",\n    },\n    target: {\n        type: \"RollingWindow\",\n        slo: 95,\n        compliancePeriod: \"30d\",\n        alertRules: [{\n            type: \"BREACH\",\n            rules: [{\n                severity: \"Warning\",\n                notifications: [\"Email,foo-alerts@bar.com\"],\n            }],\n        }],\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_signalfx as signalfx\n\nfoo_service_slo = signalfx.Slo(\"foo_service_slo\",\n    name=\"foo service SLO\",\n    type=\"RequestBased\",\n    description=\"SLO monitoring for foo service\",\n    input={\n        \"program_text\": \"\"\"G = data('spans.count', filter=filter('sf_error', 'false') and filter('sf_service', 'foo-service'))\nT = data('spans.count', filter=filter('sf_service', 'foo-service'))\"\"\",\n        \"good_events_label\": \"G\",\n        \"total_events_label\": \"T\",\n    },\n    target={\n        \"type\": \"RollingWindow\",\n        \"slo\": 95,\n        \"compliance_period\": \"30d\",\n        \"alert_rules\": [{\n            \"type\": \"BREACH\",\n            \"rules\": [{\n                \"severity\": \"Warning\",\n                \"notifications\": [\"Email,foo-alerts@bar.com\"],\n            }],\n        }],\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing SignalFx = Pulumi.SignalFx;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var fooServiceSlo = new SignalFx.Slo(\"foo_service_slo\", new()\n    {\n        Name = \"foo service SLO\",\n        Type = \"RequestBased\",\n        Description = \"SLO monitoring for foo service\",\n        Input = new SignalFx.Inputs.SloInputArgs\n        {\n            ProgramText = @\"G = data('spans.count', filter=filter('sf_error', 'false') and filter('sf_service', 'foo-service'))\nT = data('spans.count', filter=filter('sf_service', 'foo-service'))\",\n            GoodEventsLabel = \"G\",\n            TotalEventsLabel = \"T\",\n        },\n        Target = new SignalFx.Inputs.SloTargetArgs\n        {\n            Type = \"RollingWindow\",\n            Slo = 95,\n            CompliancePeriod = \"30d\",\n            AlertRules = new[]\n            {\n                new SignalFx.Inputs.SloTargetAlertRuleArgs\n                {\n                    Type = \"BREACH\",\n                    Rules = new[]\n                    {\n                        new SignalFx.Inputs.SloTargetAlertRuleRuleArgs\n                        {\n                            Severity = \"Warning\",\n                            Notifications = new[]\n                            {\n                                \"Email,foo-alerts@bar.com\",\n                            },\n                        },\n                    },\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-signalfx/sdk/v7/go/signalfx\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := signalfx.NewSlo(ctx, \"foo_service_slo\", \u0026signalfx.SloArgs{\n\t\t\tName:        pulumi.String(\"foo service SLO\"),\n\t\t\tType:        pulumi.String(\"RequestBased\"),\n\t\t\tDescription: pulumi.String(\"SLO monitoring for foo service\"),\n\t\t\tInput: \u0026signalfx.SloInputTypeArgs{\n\t\t\t\tProgramText:      pulumi.String(\"G = data('spans.count', filter=filter('sf_error', 'false') and filter('sf_service', 'foo-service'))\\nT = data('spans.count', filter=filter('sf_service', 'foo-service'))\"),\n\t\t\t\tGoodEventsLabel:  pulumi.String(\"G\"),\n\t\t\t\tTotalEventsLabel: pulumi.String(\"T\"),\n\t\t\t},\n\t\t\tTarget: \u0026signalfx.SloTargetArgs{\n\t\t\t\tType:             pulumi.String(\"RollingWindow\"),\n\t\t\t\tSlo:              pulumi.Float64(95),\n\t\t\t\tCompliancePeriod: pulumi.String(\"30d\"),\n\t\t\t\tAlertRules: signalfx.SloTargetAlertRuleArray{\n\t\t\t\t\t\u0026signalfx.SloTargetAlertRuleArgs{\n\t\t\t\t\t\tType: pulumi.String(\"BREACH\"),\n\t\t\t\t\t\tRules: signalfx.SloTargetAlertRuleRuleArray{\n\t\t\t\t\t\t\t\u0026signalfx.SloTargetAlertRuleRuleArgs{\n\t\t\t\t\t\t\t\tSeverity: pulumi.String(\"Warning\"),\n\t\t\t\t\t\t\t\tNotifications: pulumi.StringArray{\n\t\t\t\t\t\t\t\t\tpulumi.String(\"Email,foo-alerts@bar.com\"),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.signalfx.Slo;\nimport com.pulumi.signalfx.SloArgs;\nimport com.pulumi.signalfx.inputs.SloInputArgs;\nimport com.pulumi.signalfx.inputs.SloTargetArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var fooServiceSlo = new Slo(\"fooServiceSlo\", SloArgs.builder()\n            .name(\"foo service SLO\")\n            .type(\"RequestBased\")\n            .description(\"SLO monitoring for foo service\")\n            .input(SloInputArgs.builder()\n                .programText(\"\"\"\nG = data('spans.count', filter=filter('sf_error', 'false') and filter('sf_service', 'foo-service'))\nT = data('spans.count', filter=filter('sf_service', 'foo-service'))                \"\"\")\n                .goodEventsLabel(\"G\")\n                .totalEventsLabel(\"T\")\n                .build())\n            .target(SloTargetArgs.builder()\n                .type(\"RollingWindow\")\n                .slo(95.0)\n                .compliancePeriod(\"30d\")\n                .alertRules(SloTargetAlertRuleArgs.builder()\n                    .type(\"BREACH\")\n                    .rules(SloTargetAlertRuleRuleArgs.builder()\n                        .severity(\"Warning\")\n                        .notifications(\"Email,foo-alerts@bar.com\")\n                        .build())\n                    .build())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  fooServiceSlo:\n    type: signalfx:Slo\n    name: foo_service_slo\n    properties:\n      name: foo service SLO\n      type: RequestBased\n      description: SLO monitoring for foo service\n      input:\n        programText: |-\n          G = data('spans.count', filter=filter('sf_error', 'false') and filter('sf_service', 'foo-service'))\n          T = data('spans.count', filter=filter('sf_service', 'foo-service'))\n        goodEventsLabel: G\n        totalEventsLabel: T\n      target:\n        type: RollingWindow\n        slo: 95\n        compliancePeriod: 30d\n        alertRules:\n          - type: BREACH\n            rules:\n              - severity: Warning\n                notifications:\n                  - Email,foo-alerts@bar.com\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Notification format\n\nAs Splunk Observability Cloud supports different notification mechanisms, use a comma-delimited string to provide inputs. If you want to specify multiple notifications, each must be a member in the list, like so:\n\n```\nnotifications = [\"Email,foo-alerts@example.com\", \"Slack,credentialId,channel\"]\n```\n\nSee [Splunk Observability Cloud Docs](https://dev.splunk.com/observability/reference/api/detectors/latest) for more information.\n\nHere are some example of how to configure each notification type:\n\n### Email\n\n```\nnotifications = [\"Email,foo-alerts@bar.com\"]\n```\n\n### Jira\n\nNote that the `credentialId` is the Splunk-provided ID shown after setting up your Jira integration. See also \u003cspan pulumi-lang-nodejs=\"`signalfx.jira.Integration`\" pulumi-lang-dotnet=\"`signalfx.jira.Integration`\" pulumi-lang-go=\"`jira.Integration`\" pulumi-lang-python=\"`jira.Integration`\" pulumi-lang-yaml=\"`signalfx.jira.Integration`\" pulumi-lang-java=\"`signalfx.jira.Integration`\"\u003e`signalfx.jira.Integration`\u003c/span\u003e.\n\n```\nnotifications = [\"Jira,credentialId\"]\n```\n\n### OpsGenie\n\nNote that the `credentialId` is the Splunk-provided ID shown after setting up your Opsgenie integration. `Team` here is hardcoded as the `responderType` as that is the only acceptable type as per the API docs.\n\n```\nnotifications = [\"Opsgenie,credentialId,responderName,responderId,Team\"]\n```\n\n### PagerDuty\n\n```\nnotifications = [\"PagerDuty,credentialId\"]\n```\n\n### Slack\n\nExclude the `#` on the channel name:\n\n```\nnotifications = [\"Slack,credentialId,channel\"]\n```\n\n### Team\n\nSends [notifications to a team](https://help.splunk.com/en/splunk-observability-cloud/administer/user-and-team-management/manage-teams/manage-team-notifications).\n\n```\nnotifications = [\"Team,teamId\"]\n```\n\n### TeamEmail\n\nSends an email to every member of a team.\n\n```\nnotifications = [\"TeamEmail,teamId\"]\n```\n\n### Splunk On-Call (formerly VictorOps)\n\n```\nnotifications = [\"VictorOps,credentialId,routingKey\"]\n```\n\n### Webhooks\n\nYou need to include all the commas even if you only use a credential id.\n\nYou can either configure a Webhook to use an existing integration's credential id:\n\n```\nnotifications = [\"Webhook,credentialId,,\"]\n```\n\nOr configure one inline:\n\n```\nnotifications = [\"Webhook,,secret,url\"]\n```\n","properties":{"description":{"type":"string","description":"Description of the SLO.\n"},"input":{"$ref":"#/types/signalfx:index/SloInput:SloInput","description":"Properties to configure an SLO object inputs\n"},"name":{"type":"string","description":"Name of the SLO. Each SLO name must be unique within an organization.\n"},"target":{"$ref":"#/types/signalfx:index/SloTarget:SloTarget","description":"Define target value of the service level indicator in the appropriate time period.\n"},"type":{"type":"string","description":"Type of the SLO. Currently just: `\"RequestBased\"` is supported.\n"}},"required":["input","name","target","type"],"inputProperties":{"description":{"type":"string","description":"Description of the SLO.\n"},"input":{"$ref":"#/types/signalfx:index/SloInput:SloInput","description":"Properties to configure an SLO object inputs\n"},"name":{"type":"string","description":"Name of the SLO. Each SLO name must be unique within an organization.\n"},"target":{"$ref":"#/types/signalfx:index/SloTarget:SloTarget","description":"Define target value of the service level indicator in the appropriate time period.\n"},"type":{"type":"string","description":"Type of the SLO. Currently just: `\"RequestBased\"` is supported.\n"}},"requiredInputs":["input","target","type"],"stateInputs":{"description":"Input properties used for looking up and filtering Slo resources.\n","properties":{"description":{"type":"string","description":"Description of the SLO.\n"},"input":{"$ref":"#/types/signalfx:index/SloInput:SloInput","description":"Properties to configure an SLO object inputs\n"},"name":{"type":"string","description":"Name of the SLO. Each SLO name must be unique within an organization.\n"},"target":{"$ref":"#/types/signalfx:index/SloTarget:SloTarget","description":"Define target value of the service level indicator in the appropriate time period.\n"},"type":{"type":"string","description":"Type of the SLO. Currently just: `\"RequestBased\"` is supported.\n"}},"type":"object"}},"signalfx:index/sloChart:SloChart":{"description":"This chart type displays an overview of your SLO and can give more specific insights into your SLI performance using different filter and customized time ranges.\n\n## Example\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as signalfx from \"@pulumi/signalfx\";\n\nconst myslochart0 = new signalfx.SloChart(\"myslochart0\", {sloId: \"GbOHXbSAEAA\"});\n```\n```python\nimport pulumi\nimport pulumi_signalfx as signalfx\n\nmyslochart0 = signalfx.SloChart(\"myslochart0\", slo_id=\"GbOHXbSAEAA\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing SignalFx = Pulumi.SignalFx;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var myslochart0 = new SignalFx.SloChart(\"myslochart0\", new()\n    {\n        SloId = \"GbOHXbSAEAA\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-signalfx/sdk/v7/go/signalfx\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := signalfx.NewSloChart(ctx, \"myslochart0\", \u0026signalfx.SloChartArgs{\n\t\t\tSloId: pulumi.String(\"GbOHXbSAEAA\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.signalfx.SloChart;\nimport com.pulumi.signalfx.SloChartArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var myslochart0 = new SloChart(\"myslochart0\", SloChartArgs.builder()\n            .sloId(\"GbOHXbSAEAA\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  myslochart0:\n    type: signalfx:SloChart\n    properties:\n      sloId: GbOHXbSAEAA\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"sloId":{"type":"string","description":"ID of SLO object.\n"},"url":{"type":"string","description":"The URL of the chart.\n"}},"required":["sloId","url"],"inputProperties":{"sloId":{"type":"string","description":"ID of SLO object.\n"}},"requiredInputs":["sloId"],"stateInputs":{"description":"Input properties used for looking up and filtering SloChart resources.\n","properties":{"sloId":{"type":"string","description":"ID of SLO object.\n"},"url":{"type":"string","description":"The URL of the chart.\n"}},"type":"object"}},"signalfx:index/tableChart:TableChart":{"description":"This special type of chart displays a data table. This table can be grouped by a dimension.\n\n## Example\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as signalfx from \"@pulumi/signalfx\";\n\n// signalfx_list_chart.Logs-Exec_0:\nconst table0 = new signalfx.TableChart(\"table_0\", {\n    description: \"beep\",\n    disableSampling: false,\n    maxDelay: 0,\n    name: \"TableChart!\",\n    programText: \"A = data('cpu.usage.total').publish(label='CPU Total')\",\n    groupBies: [\"ClusterName\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_signalfx as signalfx\n\n# signalfx_list_chart.Logs-Exec_0:\ntable0 = signalfx.TableChart(\"table_0\",\n    description=\"beep\",\n    disable_sampling=False,\n    max_delay=0,\n    name=\"TableChart!\",\n    program_text=\"A = data('cpu.usage.total').publish(label='CPU Total')\",\n    group_bies=[\"ClusterName\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing SignalFx = Pulumi.SignalFx;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // signalfx_list_chart.Logs-Exec_0:\n    var table0 = new SignalFx.TableChart(\"table_0\", new()\n    {\n        Description = \"beep\",\n        DisableSampling = false,\n        MaxDelay = 0,\n        Name = \"TableChart!\",\n        ProgramText = \"A = data('cpu.usage.total').publish(label='CPU Total')\",\n        GroupBies = new[]\n        {\n            \"ClusterName\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-signalfx/sdk/v7/go/signalfx\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// signalfx_list_chart.Logs-Exec_0:\n\t\t_, err := signalfx.NewTableChart(ctx, \"table_0\", \u0026signalfx.TableChartArgs{\n\t\t\tDescription:     pulumi.String(\"beep\"),\n\t\t\tDisableSampling: pulumi.Bool(false),\n\t\t\tMaxDelay:        pulumi.Int(0),\n\t\t\tName:            pulumi.String(\"TableChart!\"),\n\t\t\tProgramText:     pulumi.String(\"A = data('cpu.usage.total').publish(label='CPU Total')\"),\n\t\t\tGroupBies: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"ClusterName\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.signalfx.TableChart;\nimport com.pulumi.signalfx.TableChartArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // signalfx_list_chart.Logs-Exec_0:\n        var table0 = new TableChart(\"table0\", TableChartArgs.builder()\n            .description(\"beep\")\n            .disableSampling(false)\n            .maxDelay(0)\n            .name(\"TableChart!\")\n            .programText(\"A = data('cpu.usage.total').publish(label='CPU Total')\")\n            .groupBies(\"ClusterName\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # signalfx_list_chart.Logs-Exec_0:\n  table0:\n    type: signalfx:TableChart\n    name: table_0\n    properties:\n      description: beep\n      disableSampling: false\n      maxDelay: 0\n      name: TableChart!\n      programText: A = data('cpu.usage.total').publish(label='CPU Total')\n      groupBies:\n        - ClusterName\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"description":{"type":"string","description":"Description of the table chart.\n"},"disableSampling":{"type":"boolean","description":"(false by default) If false, samples a subset of the output MTS, which improves UI performance"},"groupBies":{"type":"array","items":{"type":"string"},"description":"Dimension to group by\n"},"hideTimestamp":{"type":"boolean","description":"(false by default) Whether to show the timestamp in the chart"},"maxDelay":{"type":"integer","description":"How long (in seconds) to wait for late datapoints"},"minimumResolution":{"type":"integer","description":"The minimum resolution (in seconds) to use for computing the underlying program"},"name":{"type":"string","description":"Name of the table chart.\n"},"programText":{"type":"string","description":"The SignalFlow for your Data Table Chart\n"},"refreshInterval":{"type":"integer","description":"How often (in seconds) to refresh the values of the Table"},"tags":{"type":"array","items":{"type":"string"},"description":"Tags associated with the resource"},"timezone":{"type":"string","description":"The property value is a string that denotes the geographic region associated with the time zone, (e.g. Australia/Sydney)"},"unitPrefix":{"type":"string","description":"(Metric by default) Must be \"Metric\" or \"Binary\""},"url":{"type":"string","description":"The URL of the chart.\n"},"vizOptions":{"type":"array","items":{"$ref":"#/types/signalfx:index/TableChartVizOption:TableChartVizOption"},"description":"Plot-level customization options, associated with a publish statement"}},"required":["name","programText","url"],"inputProperties":{"description":{"type":"string","description":"Description of the table chart.\n"},"disableSampling":{"type":"boolean","description":"(false by default) If false, samples a subset of the output MTS, which improves UI performance"},"groupBies":{"type":"array","items":{"type":"string"},"description":"Dimension to group by\n"},"hideTimestamp":{"type":"boolean","description":"(false by default) Whether to show the timestamp in the chart"},"maxDelay":{"type":"integer","description":"How long (in seconds) to wait for late datapoints"},"minimumResolution":{"type":"integer","description":"The minimum resolution (in seconds) to use for computing the underlying program"},"name":{"type":"string","description":"Name of the table chart.\n"},"programText":{"type":"string","description":"The SignalFlow for your Data Table Chart\n"},"refreshInterval":{"type":"integer","description":"How often (in seconds) to refresh the values of the Table"},"tags":{"type":"array","items":{"type":"string"},"description":"Tags associated with the resource"},"timezone":{"type":"string","description":"The property value is a string that denotes the geographic region associated with the time zone, (e.g. Australia/Sydney)"},"unitPrefix":{"type":"string","description":"(Metric by default) Must be \"Metric\" or \"Binary\""},"vizOptions":{"type":"array","items":{"$ref":"#/types/signalfx:index/TableChartVizOption:TableChartVizOption"},"description":"Plot-level customization options, associated with a publish statement"}},"requiredInputs":["programText"],"stateInputs":{"description":"Input properties used for looking up and filtering TableChart resources.\n","properties":{"description":{"type":"string","description":"Description of the table chart.\n"},"disableSampling":{"type":"boolean","description":"(false by default) If false, samples a subset of the output MTS, which improves UI performance"},"groupBies":{"type":"array","items":{"type":"string"},"description":"Dimension to group by\n"},"hideTimestamp":{"type":"boolean","description":"(false by default) Whether to show the timestamp in the chart"},"maxDelay":{"type":"integer","description":"How long (in seconds) to wait for late datapoints"},"minimumResolution":{"type":"integer","description":"The minimum resolution (in seconds) to use for computing the underlying program"},"name":{"type":"string","description":"Name of the table chart.\n"},"programText":{"type":"string","description":"The SignalFlow for your Data Table Chart\n"},"refreshInterval":{"type":"integer","description":"How often (in seconds) to refresh the values of the Table"},"tags":{"type":"array","items":{"type":"string"},"description":"Tags associated with the resource"},"timezone":{"type":"string","description":"The property value is a string that denotes the geographic region associated with the time zone, (e.g. Australia/Sydney)"},"unitPrefix":{"type":"string","description":"(Metric by default) Must be \"Metric\" or \"Binary\""},"url":{"type":"string","description":"The URL of the chart.\n"},"vizOptions":{"type":"array","items":{"$ref":"#/types/signalfx:index/TableChartVizOption:TableChartVizOption"},"description":"Plot-level customization options, associated with a publish statement"}},"type":"object"}},"signalfx:index/team:Team":{"description":"Handles management of Splunk Observability Cloud teams.\n\nYou can configure [team notification policies](https://docs.splunk.com/observability/en/admin/user-management/teams/team-notifications.html) using this resource and the various `notifications_*` properties.\n\n\u003e **NOTE** When managing teams, use a session token of an administrator to authenticate the Splunk Observability Cloud provider. See [Operations that require a session token for an administrator](https://dev.splunk.com/observability/docs/administration/authtokens#Operations-that-require-a-session-token-for-an-administrator).\n\n## Example\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as signalfx from \"@pulumi/signalfx\";\n\nconst myteam0 = new signalfx.Team(\"myteam0\", {\n    name: \"Best Team Ever\",\n    description: \"Super great team no jerks definitely\",\n    members: [\n        \"userid1\",\n        \"userid2\",\n    ],\n    notificationsCriticals: [\"PagerDuty,credentialId\"],\n    notificationsInfos: [\"Email,notify@example.com\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_signalfx as signalfx\n\nmyteam0 = signalfx.Team(\"myteam0\",\n    name=\"Best Team Ever\",\n    description=\"Super great team no jerks definitely\",\n    members=[\n        \"userid1\",\n        \"userid2\",\n    ],\n    notifications_criticals=[\"PagerDuty,credentialId\"],\n    notifications_infos=[\"Email,notify@example.com\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing SignalFx = Pulumi.SignalFx;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var myteam0 = new SignalFx.Team(\"myteam0\", new()\n    {\n        Name = \"Best Team Ever\",\n        Description = \"Super great team no jerks definitely\",\n        Members = new[]\n        {\n            \"userid1\",\n            \"userid2\",\n        },\n        NotificationsCriticals = new[]\n        {\n            \"PagerDuty,credentialId\",\n        },\n        NotificationsInfos = new[]\n        {\n            \"Email,notify@example.com\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-signalfx/sdk/v7/go/signalfx\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := signalfx.NewTeam(ctx, \"myteam0\", \u0026signalfx.TeamArgs{\n\t\t\tName:        pulumi.String(\"Best Team Ever\"),\n\t\t\tDescription: pulumi.String(\"Super great team no jerks definitely\"),\n\t\t\tMembers: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"userid1\"),\n\t\t\t\tpulumi.String(\"userid2\"),\n\t\t\t},\n\t\t\tNotificationsCriticals: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"PagerDuty,credentialId\"),\n\t\t\t},\n\t\t\tNotificationsInfos: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"Email,notify@example.com\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.signalfx.Team;\nimport com.pulumi.signalfx.TeamArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var myteam0 = new Team(\"myteam0\", TeamArgs.builder()\n            .name(\"Best Team Ever\")\n            .description(\"Super great team no jerks definitely\")\n            .members(            \n                \"userid1\",\n                \"userid2\")\n            .notificationsCriticals(\"PagerDuty,credentialId\")\n            .notificationsInfos(\"Email,notify@example.com\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  myteam0:\n    type: signalfx:Team\n    properties:\n      name: Best Team Ever\n      description: Super great team no jerks definitely\n      members:\n        - userid1\n        - userid2\n      notificationsCriticals:\n        - PagerDuty,credentialId\n      notificationsInfos:\n        - Email,notify@example.com\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"description":{"type":"string","description":"Description of the team.\n"},"members":{"type":"array","items":{"type":"string"},"description":"List of user IDs to include in the team.\n"},"name":{"type":"string","description":"Name of the team.\n"},"notificationsCriticals":{"type":"array","items":{"type":"string"},"description":"Where to send notifications for critical alerts\n"},"notificationsDefaults":{"type":"array","items":{"type":"string"},"description":"Where to send notifications for default alerts\n"},"notificationsInfos":{"type":"array","items":{"type":"string"},"description":"Where to send notifications for info alerts\n"},"notificationsMajors":{"type":"array","items":{"type":"string"},"description":"Where to send notifications for major alerts\n"},"notificationsMinors":{"type":"array","items":{"type":"string"},"description":"Where to send notifications for minor alerts\n"},"notificationsWarnings":{"type":"array","items":{"type":"string"},"description":"Where to send notifications for warning alerts\n"},"url":{"type":"string","description":"The URL of the team.\n"}},"required":["name","url"],"inputProperties":{"description":{"type":"string","description":"Description of the team.\n"},"members":{"type":"array","items":{"type":"string"},"description":"List of user IDs to include in the team.\n"},"name":{"type":"string","description":"Name of the team.\n"},"notificationsCriticals":{"type":"array","items":{"type":"string"},"description":"Where to send notifications for critical alerts\n"},"notificationsDefaults":{"type":"array","items":{"type":"string"},"description":"Where to send notifications for default alerts\n"},"notificationsInfos":{"type":"array","items":{"type":"string"},"description":"Where to send notifications for info alerts\n"},"notificationsMajors":{"type":"array","items":{"type":"string"},"description":"Where to send notifications for major alerts\n"},"notificationsMinors":{"type":"array","items":{"type":"string"},"description":"Where to send notifications for minor alerts\n"},"notificationsWarnings":{"type":"array","items":{"type":"string"},"description":"Where to send notifications for warning alerts\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering Team resources.\n","properties":{"description":{"type":"string","description":"Description of the team.\n"},"members":{"type":"array","items":{"type":"string"},"description":"List of user IDs to include in the team.\n"},"name":{"type":"string","description":"Name of the team.\n"},"notificationsCriticals":{"type":"array","items":{"type":"string"},"description":"Where to send notifications for critical alerts\n"},"notificationsDefaults":{"type":"array","items":{"type":"string"},"description":"Where to send notifications for default alerts\n"},"notificationsInfos":{"type":"array","items":{"type":"string"},"description":"Where to send notifications for info alerts\n"},"notificationsMajors":{"type":"array","items":{"type":"string"},"description":"Where to send notifications for major alerts\n"},"notificationsMinors":{"type":"array","items":{"type":"string"},"description":"Where to send notifications for minor alerts\n"},"notificationsWarnings":{"type":"array","items":{"type":"string"},"description":"Where to send notifications for warning alerts\n"},"url":{"type":"string","description":"The URL of the team.\n"}},"type":"object"}},"signalfx:index/textChart:TextChart":{"description":"This special type of chart doesn’t display any metric data. Rather, it lets you place a text note on the dashboard.\n\n## Example\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as signalfx from \"@pulumi/signalfx\";\n\nconst mynote0 = new signalfx.TextChart(\"mynote0\", {\n    name: \"Important Dashboard Note\",\n    description: \"Lorem ipsum dolor sit amet, laudem tibique iracundia at mea. Nam posse dolores ex, nec cu adhuc putent honestatis\",\n    markdown: `1. First ordered list item\n2. Another item\n  * Unordered sub-list.\n1. Actual numbers don't matter, just that it's a number\n  1. Ordered sub-list\n4. And another item.\n\n   You can have properly indented paragraphs within list items. Notice the blank line above, and the leading spaces (at least one, but we'll use three here to also align the raw Markdown).\n\n   To have a line break without a paragraph, you will need to use two trailing spaces.⋅⋅\n   Note that this line is separate, but within the same paragraph.⋅⋅\n   (This is contrary to the typical GFM line break behaviour, where trailing spaces are not required.)\n\n* Unordered list can use asterisks\n- Or minuses\n+ Or pluses\n`,\n});\n```\n```python\nimport pulumi\nimport pulumi_signalfx as signalfx\n\nmynote0 = signalfx.TextChart(\"mynote0\",\n    name=\"Important Dashboard Note\",\n    description=\"Lorem ipsum dolor sit amet, laudem tibique iracundia at mea. Nam posse dolores ex, nec cu adhuc putent honestatis\",\n    markdown=\"\"\"1. First ordered list item\n2. Another item\n  * Unordered sub-list.\n1. Actual numbers don't matter, just that it's a number\n  1. Ordered sub-list\n4. And another item.\n\n   You can have properly indented paragraphs within list items. Notice the blank line above, and the leading spaces (at least one, but we'll use three here to also align the raw Markdown).\n\n   To have a line break without a paragraph, you will need to use two trailing spaces.⋅⋅\n   Note that this line is separate, but within the same paragraph.⋅⋅\n   (This is contrary to the typical GFM line break behaviour, where trailing spaces are not required.)\n\n* Unordered list can use asterisks\n- Or minuses\n+ Or pluses\n\"\"\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing SignalFx = Pulumi.SignalFx;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var mynote0 = new SignalFx.TextChart(\"mynote0\", new()\n    {\n        Name = \"Important Dashboard Note\",\n        Description = \"Lorem ipsum dolor sit amet, laudem tibique iracundia at mea. Nam posse dolores ex, nec cu adhuc putent honestatis\",\n        Markdown = @\"1. First ordered list item\n2. Another item\n  * Unordered sub-list.\n1. Actual numbers don't matter, just that it's a number\n  1. Ordered sub-list\n4. And another item.\n\n   You can have properly indented paragraphs within list items. Notice the blank line above, and the leading spaces (at least one, but we'll use three here to also align the raw Markdown).\n\n   To have a line break without a paragraph, you will need to use two trailing spaces.⋅⋅\n   Note that this line is separate, but within the same paragraph.⋅⋅\n   (This is contrary to the typical GFM line break behaviour, where trailing spaces are not required.)\n\n* Unordered list can use asterisks\n- Or minuses\n+ Or pluses\n\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-signalfx/sdk/v7/go/signalfx\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := signalfx.NewTextChart(ctx, \"mynote0\", \u0026signalfx.TextChartArgs{\n\t\t\tName:        pulumi.String(\"Important Dashboard Note\"),\n\t\t\tDescription: pulumi.String(\"Lorem ipsum dolor sit amet, laudem tibique iracundia at mea. Nam posse dolores ex, nec cu adhuc putent honestatis\"),\n\t\t\tMarkdown: pulumi.String(`1. First ordered list item\n2. Another item\n  * Unordered sub-list.\n1. Actual numbers don't matter, just that it's a number\n  1. Ordered sub-list\n4. And another item.\n\n   You can have properly indented paragraphs within list items. Notice the blank line above, and the leading spaces (at least one, but we'll use three here to also align the raw Markdown).\n\n   To have a line break without a paragraph, you will need to use two trailing spaces.⋅⋅\n   Note that this line is separate, but within the same paragraph.⋅⋅\n   (This is contrary to the typical GFM line break behaviour, where trailing spaces are not required.)\n\n* Unordered list can use asterisks\n- Or minuses\n+ Or pluses\n`),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.signalfx.TextChart;\nimport com.pulumi.signalfx.TextChartArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var mynote0 = new TextChart(\"mynote0\", TextChartArgs.builder()\n            .name(\"Important Dashboard Note\")\n            .description(\"Lorem ipsum dolor sit amet, laudem tibique iracundia at mea. Nam posse dolores ex, nec cu adhuc putent honestatis\")\n            .markdown(\"\"\"\n1. First ordered list item\n2. Another item\n  * Unordered sub-list.\n1. Actual numbers don't matter, just that it's a number\n  1. Ordered sub-list\n4. And another item.\n\n   You can have properly indented paragraphs within list items. Notice the blank line above, and the leading spaces (at least one, but we'll use three here to also align the raw Markdown).\n\n   To have a line break without a paragraph, you will need to use two trailing spaces.⋅⋅\n   Note that this line is separate, but within the same paragraph.⋅⋅\n   (This is contrary to the typical GFM line break behaviour, where trailing spaces are not required.)\n\n* Unordered list can use asterisks\n- Or minuses\n+ Or pluses\n            \"\"\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  mynote0:\n    type: signalfx:TextChart\n    properties:\n      name: Important Dashboard Note\n      description: Lorem ipsum dolor sit amet, laudem tibique iracundia at mea. Nam posse dolores ex, nec cu adhuc putent honestatis\n      markdown: |\n        1. First ordered list item\n        2. Another item\n          * Unordered sub-list.\n        1. Actual numbers don't matter, just that it's a number\n          1. Ordered sub-list\n        4. And another item.\n\n           You can have properly indented paragraphs within list items. Notice the blank line above, and the leading spaces (at least one, but we'll use three here to also align the raw Markdown).\n\n           To have a line break without a paragraph, you will need to use two trailing spaces.⋅⋅\n           Note that this line is separate, but within the same paragraph.⋅⋅\n           (This is contrary to the typical GFM line break behaviour, where trailing spaces are not required.)\n\n        * Unordered list can use asterisks\n        - Or minuses\n        + Or pluses\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"description":{"type":"string","description":"Description of the text note.\n"},"markdown":{"type":"string","description":"Markdown text to display.\n"},"name":{"type":"string","description":"Name of the text note.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"Tags associated with the resource"},"url":{"type":"string","description":"The URL of the chart.\n"}},"required":["markdown","name","url"],"inputProperties":{"description":{"type":"string","description":"Description of the text note.\n"},"markdown":{"type":"string","description":"Markdown text to display.\n"},"name":{"type":"string","description":"Name of the text note.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"Tags associated with the resource"}},"requiredInputs":["markdown"],"stateInputs":{"description":"Input properties used for looking up and filtering TextChart resources.\n","properties":{"description":{"type":"string","description":"Description of the text note.\n"},"markdown":{"type":"string","description":"Markdown text to display.\n"},"name":{"type":"string","description":"Name of the text note.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"Tags associated with the resource"},"url":{"type":"string","description":"The URL of the chart.\n"}},"type":"object"}},"signalfx:index/timeChart:TimeChart":{"description":"Provides a Splunk Observability Cloud time chart resource. This can be used to create and manage the different types of time charts.\n\nTime charts display data points over a period of time.\n\n## Example\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as signalfx from \"@pulumi/signalfx\";\n\nconst mychart0 = new signalfx.TimeChart(\"mychart0\", {\n    name: \"CPU Total Idle\",\n    programText: \"data(\\\\\\\"cpu.total.idle\\\\\\\").publish(label=\\\\\\\"CPU Idle\\\\\\\")\\n\",\n    timeRange: 3600,\n    plotType: \"LineChart\",\n    showDataMarkers: true,\n    legendOptionsFields: [\n        {\n            property: \"collector\",\n            enabled: false,\n        },\n        {\n            property: \"hostname\",\n            enabled: false,\n        },\n    ],\n    vizOptions: [{\n        label: \"CPU Idle\",\n        axis: \"left\",\n        color: \"orange\",\n    }],\n    axisLeft: {\n        label: \"CPU Total Idle\",\n        lowWatermark: 1000,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_signalfx as signalfx\n\nmychart0 = signalfx.TimeChart(\"mychart0\",\n    name=\"CPU Total Idle\",\n    program_text=\"data(\\\\\\\"cpu.total.idle\\\\\\\").publish(label=\\\\\\\"CPU Idle\\\\\\\")\\n\",\n    time_range=3600,\n    plot_type=\"LineChart\",\n    show_data_markers=True,\n    legend_options_fields=[\n        {\n            \"property\": \"collector\",\n            \"enabled\": False,\n        },\n        {\n            \"property\": \"hostname\",\n            \"enabled\": False,\n        },\n    ],\n    viz_options=[{\n        \"label\": \"CPU Idle\",\n        \"axis\": \"left\",\n        \"color\": \"orange\",\n    }],\n    axis_left={\n        \"label\": \"CPU Total Idle\",\n        \"low_watermark\": 1000,\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing SignalFx = Pulumi.SignalFx;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var mychart0 = new SignalFx.TimeChart(\"mychart0\", new()\n    {\n        Name = \"CPU Total Idle\",\n        ProgramText = @\"data(\\\"\"cpu.total.idle\\\"\").publish(label=\\\"\"CPU Idle\\\"\")\n\",\n        TimeRange = 3600,\n        PlotType = \"LineChart\",\n        ShowDataMarkers = true,\n        LegendOptionsFields = new[]\n        {\n            new SignalFx.Inputs.TimeChartLegendOptionsFieldArgs\n            {\n                Property = \"collector\",\n                Enabled = false,\n            },\n            new SignalFx.Inputs.TimeChartLegendOptionsFieldArgs\n            {\n                Property = \"hostname\",\n                Enabled = false,\n            },\n        },\n        VizOptions = new[]\n        {\n            new SignalFx.Inputs.TimeChartVizOptionArgs\n            {\n                Label = \"CPU Idle\",\n                Axis = \"left\",\n                Color = \"orange\",\n            },\n        },\n        AxisLeft = new SignalFx.Inputs.TimeChartAxisLeftArgs\n        {\n            Label = \"CPU Total Idle\",\n            LowWatermark = 1000,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-signalfx/sdk/v7/go/signalfx\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := signalfx.NewTimeChart(ctx, \"mychart0\", \u0026signalfx.TimeChartArgs{\n\t\t\tName:            pulumi.String(\"CPU Total Idle\"),\n\t\t\tProgramText:     pulumi.String(\"data(\\\\\\\"cpu.total.idle\\\\\\\").publish(label=\\\\\\\"CPU Idle\\\\\\\")\\n\"),\n\t\t\tTimeRange:       pulumi.Int(3600),\n\t\t\tPlotType:        pulumi.String(\"LineChart\"),\n\t\t\tShowDataMarkers: pulumi.Bool(true),\n\t\t\tLegendOptionsFields: signalfx.TimeChartLegendOptionsFieldArray{\n\t\t\t\t\u0026signalfx.TimeChartLegendOptionsFieldArgs{\n\t\t\t\t\tProperty: pulumi.String(\"collector\"),\n\t\t\t\t\tEnabled:  pulumi.Bool(false),\n\t\t\t\t},\n\t\t\t\t\u0026signalfx.TimeChartLegendOptionsFieldArgs{\n\t\t\t\t\tProperty: pulumi.String(\"hostname\"),\n\t\t\t\t\tEnabled:  pulumi.Bool(false),\n\t\t\t\t},\n\t\t\t},\n\t\t\tVizOptions: signalfx.TimeChartVizOptionArray{\n\t\t\t\t\u0026signalfx.TimeChartVizOptionArgs{\n\t\t\t\t\tLabel: pulumi.String(\"CPU Idle\"),\n\t\t\t\t\tAxis:  pulumi.String(\"left\"),\n\t\t\t\t\tColor: pulumi.String(\"orange\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tAxisLeft: \u0026signalfx.TimeChartAxisLeftArgs{\n\t\t\t\tLabel:        pulumi.String(\"CPU Total Idle\"),\n\t\t\t\tLowWatermark: pulumi.Float64(1000),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.signalfx.TimeChart;\nimport com.pulumi.signalfx.TimeChartArgs;\nimport com.pulumi.signalfx.inputs.TimeChartLegendOptionsFieldArgs;\nimport com.pulumi.signalfx.inputs.TimeChartVizOptionArgs;\nimport com.pulumi.signalfx.inputs.TimeChartAxisLeftArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var mychart0 = new TimeChart(\"mychart0\", TimeChartArgs.builder()\n            .name(\"CPU Total Idle\")\n            .programText(\"\"\"\ndata(\\\"cpu.total.idle\\\").publish(label=\\\"CPU Idle\\\")\n            \"\"\")\n            .timeRange(3600)\n            .plotType(\"LineChart\")\n            .showDataMarkers(true)\n            .legendOptionsFields(            \n                TimeChartLegendOptionsFieldArgs.builder()\n                    .property(\"collector\")\n                    .enabled(false)\n                    .build(),\n                TimeChartLegendOptionsFieldArgs.builder()\n                    .property(\"hostname\")\n                    .enabled(false)\n                    .build())\n            .vizOptions(TimeChartVizOptionArgs.builder()\n                .label(\"CPU Idle\")\n                .axis(\"left\")\n                .color(\"orange\")\n                .build())\n            .axisLeft(TimeChartAxisLeftArgs.builder()\n                .label(\"CPU Total Idle\")\n                .lowWatermark(1000.0)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  mychart0:\n    type: signalfx:TimeChart\n    properties:\n      name: CPU Total Idle\n      programText: |\n        data(\\\"cpu.total.idle\\\").publish(label=\\\"CPU Idle\\\")\n      timeRange: 3600\n      plotType: LineChart\n      showDataMarkers: true\n      legendOptionsFields:\n        - property: collector\n          enabled: false\n        - property: hostname\n          enabled: false\n      vizOptions:\n        - label: CPU Idle\n          axis: left\n          color: orange\n      axisLeft:\n        label: CPU Total Idle\n        lowWatermark: 1000\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"axesIncludeZero":{"type":"boolean","description":"Force the chart to display zero on the y-axes, even if none of the data is near zero.\n"},"axesPrecision":{"type":"integer","description":"Specifies the digits Splunk Observability Cloud displays for values plotted on the chart. Defaults to \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e.\n"},"axisLeft":{"$ref":"#/types/signalfx:index/TimeChartAxisLeft:TimeChartAxisLeft","description":"Set of axis options.\n"},"axisRight":{"$ref":"#/types/signalfx:index/TimeChartAxisRight:TimeChartAxisRight","description":"Set of axis options.\n"},"colorBy":{"type":"string","description":"Must be `\"Dimension\"` or `\"Metric\"`. `\"Dimension\"` by default.\n"},"description":{"type":"string","description":"Description of the chart.\n"},"disableSampling":{"type":"boolean","description":"If \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, samples a subset of the output MTS, which improves UI performance. \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e by default\n"},"endTime":{"type":"integer","description":"Seconds since epoch. Used for visualization. Conflicts with \u003cspan pulumi-lang-nodejs=\"`timeRange`\" pulumi-lang-dotnet=\"`TimeRange`\" pulumi-lang-go=\"`timeRange`\" pulumi-lang-python=\"`time_range`\" pulumi-lang-yaml=\"`timeRange`\" pulumi-lang-java=\"`timeRange`\"\u003e`time_range`\u003c/span\u003e.\n"},"eventOptions":{"type":"array","items":{"$ref":"#/types/signalfx:index/TimeChartEventOption:TimeChartEventOption"},"description":"Event customization options, associated with a publish statement. You will need to use this to change settings for any `events(…)` statements you use.\n"},"histogramOptions":{"type":"array","items":{"$ref":"#/types/signalfx:index/TimeChartHistogramOption:TimeChartHistogramOption"},"description":"Only used when \u003cspan pulumi-lang-nodejs=\"`plotType`\" pulumi-lang-dotnet=\"`PlotType`\" pulumi-lang-go=\"`plotType`\" pulumi-lang-python=\"`plot_type`\" pulumi-lang-yaml=\"`plotType`\" pulumi-lang-java=\"`plotType`\"\u003e`plot_type`\u003c/span\u003e is `\"Histogram\"`. Histogram specific options.\n"},"legendFieldsToHides":{"type":"array","items":{"type":"string"},"description":"List of properties that should not be displayed in the chart legend (i.e. dimension names). All the properties are visible by default. Deprecated, please use \u003cspan pulumi-lang-nodejs=\"`legendOptionsFields`\" pulumi-lang-dotnet=\"`LegendOptionsFields`\" pulumi-lang-go=\"`legendOptionsFields`\" pulumi-lang-python=\"`legend_options_fields`\" pulumi-lang-yaml=\"`legendOptionsFields`\" pulumi-lang-java=\"`legendOptionsFields`\"\u003e`legend_options_fields`\u003c/span\u003e.\n","deprecationMessage":"Please use legend_options_fields"},"legendOptionsFields":{"type":"array","items":{"$ref":"#/types/signalfx:index/TimeChartLegendOptionsField:TimeChartLegendOptionsField"},"description":"List of property names and enabled flags that should be displayed in the data table for the chart, in the order provided. This option cannot be used with \u003cspan pulumi-lang-nodejs=\"`legendFieldsToHide`\" pulumi-lang-dotnet=\"`LegendFieldsToHide`\" pulumi-lang-go=\"`legendFieldsToHide`\" pulumi-lang-python=\"`legend_fields_to_hide`\" pulumi-lang-yaml=\"`legendFieldsToHide`\" pulumi-lang-java=\"`legendFieldsToHide`\"\u003e`legend_fields_to_hide`\u003c/span\u003e.\n"},"maxDelay":{"type":"integer","description":"How long (in seconds) to wait for late datapoints.\n"},"minimumResolution":{"type":"integer","description":"The minimum resolution (in seconds) to use for computing the underlying program.\n"},"name":{"type":"string","description":"Name of the chart.\n"},"onChartLegendDimension":{"type":"string","description":"Dimensions to show in the on-chart legend. On-chart legend is off unless a dimension is specified. Allowed: `\"metric\"`, `\u003cspan pulumi-lang-nodejs=\"\"plotLabel\"\" pulumi-lang-dotnet=\"\"PlotLabel\"\" pulumi-lang-go=\"\"plotLabel\"\" pulumi-lang-python=\"\"plot_label\"\" pulumi-lang-yaml=\"\"plotLabel\"\" pulumi-lang-java=\"\"plotLabel\"\"\u003e\"plot_label\"\u003c/span\u003e` and any dimension.\n"},"plotType":{"type":"string","description":"The default plot display style for the visualization. Must be `\"LineChart\"`, `\"AreaChart\"`, `\"ColumnChart\"`, or `\"Histogram\"`. Default: `\"LineChart\"`.\n"},"programText":{"type":"string","description":"Signalflow program text for the chart. More info [in the Splunk Observability Cloud docs](https://dev.splunk.com/observability/docs/signalflow/).\n"},"showDataMarkers":{"type":"boolean","description":"Show markers (circles) for each datapoint used to draw line or area charts. \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e by default.\n"},"showEventLines":{"type":"boolean","description":"Whether vertical highlight lines should be drawn in the visualizations at times when events occurred. \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e by default.\n"},"stacked":{"type":"boolean","description":"Whether area and bar charts in the visualization should be stacked. \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e by default.\n"},"startTime":{"type":"integer","description":"Seconds since epoch. Used for visualization. Conflicts with \u003cspan pulumi-lang-nodejs=\"`timeRange`\" pulumi-lang-dotnet=\"`TimeRange`\" pulumi-lang-go=\"`timeRange`\" pulumi-lang-python=\"`time_range`\" pulumi-lang-yaml=\"`timeRange`\" pulumi-lang-java=\"`timeRange`\"\u003e`time_range`\u003c/span\u003e.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"Tags associated with the chart","deprecationMessage":"signalfx_time_chart.tags is being removed in the next release"},"timeRange":{"type":"integer","description":"How many seconds ago from which to display data. For example, the last hour would be \u003cspan pulumi-lang-nodejs=\"`3600`\" pulumi-lang-dotnet=\"`3600`\" pulumi-lang-go=\"`3600`\" pulumi-lang-python=\"`3600`\" pulumi-lang-yaml=\"`3600`\" pulumi-lang-java=\"`3600`\"\u003e`3600`\u003c/span\u003e, etc. Conflicts with \u003cspan pulumi-lang-nodejs=\"`startTime`\" pulumi-lang-dotnet=\"`StartTime`\" pulumi-lang-go=\"`startTime`\" pulumi-lang-python=\"`start_time`\" pulumi-lang-yaml=\"`startTime`\" pulumi-lang-java=\"`startTime`\"\u003e`start_time`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`endTime`\" pulumi-lang-dotnet=\"`EndTime`\" pulumi-lang-go=\"`endTime`\" pulumi-lang-python=\"`end_time`\" pulumi-lang-yaml=\"`endTime`\" pulumi-lang-java=\"`endTime`\"\u003e`end_time`\u003c/span\u003e.\n"},"timezone":{"type":"string","description":"Time zone that SignalFlow uses as the basis of calendar window transformation methods. For example, if you set \"timezone\": \"Europe/Paris\" and then use the transformation sum(cycle=\"week\", cycle_start=\"Monday\") in your chart's SignalFlow program, the calendar window starts on Monday, Paris time. See the [full list of timezones for more](https://dev.splunk.com/observability/docs/signalflow/). `\"UTC\"` by default.\n"},"unitPrefix":{"type":"string","description":"Must be `\"Metric\"` or `\"Binary`\". `\"Metric\"` by default.\n"},"url":{"type":"string","description":"The URL of the chart.\n"},"vizOptions":{"type":"array","items":{"$ref":"#/types/signalfx:index/TimeChartVizOption:TimeChartVizOption"},"description":"Plot-level customization options, associated with a publish statement.\n"}},"required":["name","programText","url"],"inputProperties":{"axesIncludeZero":{"type":"boolean","description":"Force the chart to display zero on the y-axes, even if none of the data is near zero.\n"},"axesPrecision":{"type":"integer","description":"Specifies the digits Splunk Observability Cloud displays for values plotted on the chart. Defaults to \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e.\n"},"axisLeft":{"$ref":"#/types/signalfx:index/TimeChartAxisLeft:TimeChartAxisLeft","description":"Set of axis options.\n"},"axisRight":{"$ref":"#/types/signalfx:index/TimeChartAxisRight:TimeChartAxisRight","description":"Set of axis options.\n"},"colorBy":{"type":"string","description":"Must be `\"Dimension\"` or `\"Metric\"`. `\"Dimension\"` by default.\n"},"description":{"type":"string","description":"Description of the chart.\n"},"disableSampling":{"type":"boolean","description":"If \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, samples a subset of the output MTS, which improves UI performance. \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e by default\n"},"endTime":{"type":"integer","description":"Seconds since epoch. Used for visualization. Conflicts with \u003cspan pulumi-lang-nodejs=\"`timeRange`\" pulumi-lang-dotnet=\"`TimeRange`\" pulumi-lang-go=\"`timeRange`\" pulumi-lang-python=\"`time_range`\" pulumi-lang-yaml=\"`timeRange`\" pulumi-lang-java=\"`timeRange`\"\u003e`time_range`\u003c/span\u003e.\n"},"eventOptions":{"type":"array","items":{"$ref":"#/types/signalfx:index/TimeChartEventOption:TimeChartEventOption"},"description":"Event customization options, associated with a publish statement. You will need to use this to change settings for any `events(…)` statements you use.\n"},"histogramOptions":{"type":"array","items":{"$ref":"#/types/signalfx:index/TimeChartHistogramOption:TimeChartHistogramOption"},"description":"Only used when \u003cspan pulumi-lang-nodejs=\"`plotType`\" pulumi-lang-dotnet=\"`PlotType`\" pulumi-lang-go=\"`plotType`\" pulumi-lang-python=\"`plot_type`\" pulumi-lang-yaml=\"`plotType`\" pulumi-lang-java=\"`plotType`\"\u003e`plot_type`\u003c/span\u003e is `\"Histogram\"`. Histogram specific options.\n"},"legendFieldsToHides":{"type":"array","items":{"type":"string"},"description":"List of properties that should not be displayed in the chart legend (i.e. dimension names). All the properties are visible by default. Deprecated, please use \u003cspan pulumi-lang-nodejs=\"`legendOptionsFields`\" pulumi-lang-dotnet=\"`LegendOptionsFields`\" pulumi-lang-go=\"`legendOptionsFields`\" pulumi-lang-python=\"`legend_options_fields`\" pulumi-lang-yaml=\"`legendOptionsFields`\" pulumi-lang-java=\"`legendOptionsFields`\"\u003e`legend_options_fields`\u003c/span\u003e.\n","deprecationMessage":"Please use legend_options_fields"},"legendOptionsFields":{"type":"array","items":{"$ref":"#/types/signalfx:index/TimeChartLegendOptionsField:TimeChartLegendOptionsField"},"description":"List of property names and enabled flags that should be displayed in the data table for the chart, in the order provided. This option cannot be used with \u003cspan pulumi-lang-nodejs=\"`legendFieldsToHide`\" pulumi-lang-dotnet=\"`LegendFieldsToHide`\" pulumi-lang-go=\"`legendFieldsToHide`\" pulumi-lang-python=\"`legend_fields_to_hide`\" pulumi-lang-yaml=\"`legendFieldsToHide`\" pulumi-lang-java=\"`legendFieldsToHide`\"\u003e`legend_fields_to_hide`\u003c/span\u003e.\n"},"maxDelay":{"type":"integer","description":"How long (in seconds) to wait for late datapoints.\n"},"minimumResolution":{"type":"integer","description":"The minimum resolution (in seconds) to use for computing the underlying program.\n"},"name":{"type":"string","description":"Name of the chart.\n"},"onChartLegendDimension":{"type":"string","description":"Dimensions to show in the on-chart legend. On-chart legend is off unless a dimension is specified. Allowed: `\"metric\"`, `\u003cspan pulumi-lang-nodejs=\"\"plotLabel\"\" pulumi-lang-dotnet=\"\"PlotLabel\"\" pulumi-lang-go=\"\"plotLabel\"\" pulumi-lang-python=\"\"plot_label\"\" pulumi-lang-yaml=\"\"plotLabel\"\" pulumi-lang-java=\"\"plotLabel\"\"\u003e\"plot_label\"\u003c/span\u003e` and any dimension.\n"},"plotType":{"type":"string","description":"The default plot display style for the visualization. Must be `\"LineChart\"`, `\"AreaChart\"`, `\"ColumnChart\"`, or `\"Histogram\"`. Default: `\"LineChart\"`.\n"},"programText":{"type":"string","description":"Signalflow program text for the chart. More info [in the Splunk Observability Cloud docs](https://dev.splunk.com/observability/docs/signalflow/).\n"},"showDataMarkers":{"type":"boolean","description":"Show markers (circles) for each datapoint used to draw line or area charts. \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e by default.\n"},"showEventLines":{"type":"boolean","description":"Whether vertical highlight lines should be drawn in the visualizations at times when events occurred. \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e by default.\n"},"stacked":{"type":"boolean","description":"Whether area and bar charts in the visualization should be stacked. \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e by default.\n"},"startTime":{"type":"integer","description":"Seconds since epoch. Used for visualization. Conflicts with \u003cspan pulumi-lang-nodejs=\"`timeRange`\" pulumi-lang-dotnet=\"`TimeRange`\" pulumi-lang-go=\"`timeRange`\" pulumi-lang-python=\"`time_range`\" pulumi-lang-yaml=\"`timeRange`\" pulumi-lang-java=\"`timeRange`\"\u003e`time_range`\u003c/span\u003e.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"Tags associated with the chart","deprecationMessage":"signalfx_time_chart.tags is being removed in the next release"},"timeRange":{"type":"integer","description":"How many seconds ago from which to display data. For example, the last hour would be \u003cspan pulumi-lang-nodejs=\"`3600`\" pulumi-lang-dotnet=\"`3600`\" pulumi-lang-go=\"`3600`\" pulumi-lang-python=\"`3600`\" pulumi-lang-yaml=\"`3600`\" pulumi-lang-java=\"`3600`\"\u003e`3600`\u003c/span\u003e, etc. Conflicts with \u003cspan pulumi-lang-nodejs=\"`startTime`\" pulumi-lang-dotnet=\"`StartTime`\" pulumi-lang-go=\"`startTime`\" pulumi-lang-python=\"`start_time`\" pulumi-lang-yaml=\"`startTime`\" pulumi-lang-java=\"`startTime`\"\u003e`start_time`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`endTime`\" pulumi-lang-dotnet=\"`EndTime`\" pulumi-lang-go=\"`endTime`\" pulumi-lang-python=\"`end_time`\" pulumi-lang-yaml=\"`endTime`\" pulumi-lang-java=\"`endTime`\"\u003e`end_time`\u003c/span\u003e.\n"},"timezone":{"type":"string","description":"Time zone that SignalFlow uses as the basis of calendar window transformation methods. For example, if you set \"timezone\": \"Europe/Paris\" and then use the transformation sum(cycle=\"week\", cycle_start=\"Monday\") in your chart's SignalFlow program, the calendar window starts on Monday, Paris time. See the [full list of timezones for more](https://dev.splunk.com/observability/docs/signalflow/). `\"UTC\"` by default.\n"},"unitPrefix":{"type":"string","description":"Must be `\"Metric\"` or `\"Binary`\". `\"Metric\"` by default.\n"},"vizOptions":{"type":"array","items":{"$ref":"#/types/signalfx:index/TimeChartVizOption:TimeChartVizOption"},"description":"Plot-level customization options, associated with a publish statement.\n"}},"requiredInputs":["programText"],"stateInputs":{"description":"Input properties used for looking up and filtering TimeChart resources.\n","properties":{"axesIncludeZero":{"type":"boolean","description":"Force the chart to display zero on the y-axes, even if none of the data is near zero.\n"},"axesPrecision":{"type":"integer","description":"Specifies the digits Splunk Observability Cloud displays for values plotted on the chart. Defaults to \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e.\n"},"axisLeft":{"$ref":"#/types/signalfx:index/TimeChartAxisLeft:TimeChartAxisLeft","description":"Set of axis options.\n"},"axisRight":{"$ref":"#/types/signalfx:index/TimeChartAxisRight:TimeChartAxisRight","description":"Set of axis options.\n"},"colorBy":{"type":"string","description":"Must be `\"Dimension\"` or `\"Metric\"`. `\"Dimension\"` by default.\n"},"description":{"type":"string","description":"Description of the chart.\n"},"disableSampling":{"type":"boolean","description":"If \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, samples a subset of the output MTS, which improves UI performance. \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e by default\n"},"endTime":{"type":"integer","description":"Seconds since epoch. Used for visualization. Conflicts with \u003cspan pulumi-lang-nodejs=\"`timeRange`\" pulumi-lang-dotnet=\"`TimeRange`\" pulumi-lang-go=\"`timeRange`\" pulumi-lang-python=\"`time_range`\" pulumi-lang-yaml=\"`timeRange`\" pulumi-lang-java=\"`timeRange`\"\u003e`time_range`\u003c/span\u003e.\n"},"eventOptions":{"type":"array","items":{"$ref":"#/types/signalfx:index/TimeChartEventOption:TimeChartEventOption"},"description":"Event customization options, associated with a publish statement. You will need to use this to change settings for any `events(…)` statements you use.\n"},"histogramOptions":{"type":"array","items":{"$ref":"#/types/signalfx:index/TimeChartHistogramOption:TimeChartHistogramOption"},"description":"Only used when \u003cspan pulumi-lang-nodejs=\"`plotType`\" pulumi-lang-dotnet=\"`PlotType`\" pulumi-lang-go=\"`plotType`\" pulumi-lang-python=\"`plot_type`\" pulumi-lang-yaml=\"`plotType`\" pulumi-lang-java=\"`plotType`\"\u003e`plot_type`\u003c/span\u003e is `\"Histogram\"`. Histogram specific options.\n"},"legendFieldsToHides":{"type":"array","items":{"type":"string"},"description":"List of properties that should not be displayed in the chart legend (i.e. dimension names). All the properties are visible by default. Deprecated, please use \u003cspan pulumi-lang-nodejs=\"`legendOptionsFields`\" pulumi-lang-dotnet=\"`LegendOptionsFields`\" pulumi-lang-go=\"`legendOptionsFields`\" pulumi-lang-python=\"`legend_options_fields`\" pulumi-lang-yaml=\"`legendOptionsFields`\" pulumi-lang-java=\"`legendOptionsFields`\"\u003e`legend_options_fields`\u003c/span\u003e.\n","deprecationMessage":"Please use legend_options_fields"},"legendOptionsFields":{"type":"array","items":{"$ref":"#/types/signalfx:index/TimeChartLegendOptionsField:TimeChartLegendOptionsField"},"description":"List of property names and enabled flags that should be displayed in the data table for the chart, in the order provided. This option cannot be used with \u003cspan pulumi-lang-nodejs=\"`legendFieldsToHide`\" pulumi-lang-dotnet=\"`LegendFieldsToHide`\" pulumi-lang-go=\"`legendFieldsToHide`\" pulumi-lang-python=\"`legend_fields_to_hide`\" pulumi-lang-yaml=\"`legendFieldsToHide`\" pulumi-lang-java=\"`legendFieldsToHide`\"\u003e`legend_fields_to_hide`\u003c/span\u003e.\n"},"maxDelay":{"type":"integer","description":"How long (in seconds) to wait for late datapoints.\n"},"minimumResolution":{"type":"integer","description":"The minimum resolution (in seconds) to use for computing the underlying program.\n"},"name":{"type":"string","description":"Name of the chart.\n"},"onChartLegendDimension":{"type":"string","description":"Dimensions to show in the on-chart legend. On-chart legend is off unless a dimension is specified. Allowed: `\"metric\"`, `\u003cspan pulumi-lang-nodejs=\"\"plotLabel\"\" pulumi-lang-dotnet=\"\"PlotLabel\"\" pulumi-lang-go=\"\"plotLabel\"\" pulumi-lang-python=\"\"plot_label\"\" pulumi-lang-yaml=\"\"plotLabel\"\" pulumi-lang-java=\"\"plotLabel\"\"\u003e\"plot_label\"\u003c/span\u003e` and any dimension.\n"},"plotType":{"type":"string","description":"The default plot display style for the visualization. Must be `\"LineChart\"`, `\"AreaChart\"`, `\"ColumnChart\"`, or `\"Histogram\"`. Default: `\"LineChart\"`.\n"},"programText":{"type":"string","description":"Signalflow program text for the chart. More info [in the Splunk Observability Cloud docs](https://dev.splunk.com/observability/docs/signalflow/).\n"},"showDataMarkers":{"type":"boolean","description":"Show markers (circles) for each datapoint used to draw line or area charts. \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e by default.\n"},"showEventLines":{"type":"boolean","description":"Whether vertical highlight lines should be drawn in the visualizations at times when events occurred. \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e by default.\n"},"stacked":{"type":"boolean","description":"Whether area and bar charts in the visualization should be stacked. \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e by default.\n"},"startTime":{"type":"integer","description":"Seconds since epoch. Used for visualization. Conflicts with \u003cspan pulumi-lang-nodejs=\"`timeRange`\" pulumi-lang-dotnet=\"`TimeRange`\" pulumi-lang-go=\"`timeRange`\" pulumi-lang-python=\"`time_range`\" pulumi-lang-yaml=\"`timeRange`\" pulumi-lang-java=\"`timeRange`\"\u003e`time_range`\u003c/span\u003e.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"Tags associated with the chart","deprecationMessage":"signalfx_time_chart.tags is being removed in the next release"},"timeRange":{"type":"integer","description":"How many seconds ago from which to display data. For example, the last hour would be \u003cspan pulumi-lang-nodejs=\"`3600`\" pulumi-lang-dotnet=\"`3600`\" pulumi-lang-go=\"`3600`\" pulumi-lang-python=\"`3600`\" pulumi-lang-yaml=\"`3600`\" pulumi-lang-java=\"`3600`\"\u003e`3600`\u003c/span\u003e, etc. Conflicts with \u003cspan pulumi-lang-nodejs=\"`startTime`\" pulumi-lang-dotnet=\"`StartTime`\" pulumi-lang-go=\"`startTime`\" pulumi-lang-python=\"`start_time`\" pulumi-lang-yaml=\"`startTime`\" pulumi-lang-java=\"`startTime`\"\u003e`start_time`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`endTime`\" pulumi-lang-dotnet=\"`EndTime`\" pulumi-lang-go=\"`endTime`\" pulumi-lang-python=\"`end_time`\" pulumi-lang-yaml=\"`endTime`\" pulumi-lang-java=\"`endTime`\"\u003e`end_time`\u003c/span\u003e.\n"},"timezone":{"type":"string","description":"Time zone that SignalFlow uses as the basis of calendar window transformation methods. For example, if you set \"timezone\": \"Europe/Paris\" and then use the transformation sum(cycle=\"week\", cycle_start=\"Monday\") in your chart's SignalFlow program, the calendar window starts on Monday, Paris time. See the [full list of timezones for more](https://dev.splunk.com/observability/docs/signalflow/). `\"UTC\"` by default.\n"},"unitPrefix":{"type":"string","description":"Must be `\"Metric\"` or `\"Binary`\". `\"Metric\"` by default.\n"},"url":{"type":"string","description":"The URL of the chart.\n"},"vizOptions":{"type":"array","items":{"$ref":"#/types/signalfx:index/TimeChartVizOption:TimeChartVizOption"},"description":"Plot-level customization options, associated with a publish statement.\n"}},"type":"object"}},"signalfx:index/webhookIntegration:WebhookIntegration":{"description":"Splunk Observability Cloud webhook integration.\n\n\u003e **NOTE** When managing integrations, use a session token of an administrator to authenticate the Splunk Observability Cloud provider. See [Operations that require a session token for an administrator](https://dev.splunk.com/observability/docs/administration/authtokens#Operations-that-require-a-session-token-for-an-administrator). Otherwise you'll receive a 4xx error.\n\n## Example\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as signalfx from \"@pulumi/signalfx\";\n\nconst webhookMyteam = new signalfx.WebhookIntegration(\"webhook_myteam\", {\n    name: \"Webhook - My Team\",\n    enabled: true,\n    url: \"https://www.example.com\",\n    sharedSecret: \"abc1234\",\n    method: \"POST\",\n    payloadTemplate: `{\n  \\\\\"incidentId\\\\\": \\\\\"{{{incidentId}}}\\\\\"\n}\n`,\n    headers: [{\n        headerKey: \"some_header\",\n        headerValue: \"value_for_that_header\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_signalfx as signalfx\n\nwebhook_myteam = signalfx.WebhookIntegration(\"webhook_myteam\",\n    name=\"Webhook - My Team\",\n    enabled=True,\n    url=\"https://www.example.com\",\n    shared_secret=\"abc1234\",\n    method=\"POST\",\n    payload_template=\"\"\"{\n  \\\"incidentId\\\": \\\"{{{incidentId}}}\\\"\n}\n\"\"\",\n    headers=[{\n        \"header_key\": \"some_header\",\n        \"header_value\": \"value_for_that_header\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing SignalFx = Pulumi.SignalFx;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var webhookMyteam = new SignalFx.WebhookIntegration(\"webhook_myteam\", new()\n    {\n        Name = \"Webhook - My Team\",\n        Enabled = true,\n        Url = \"https://www.example.com\",\n        SharedSecret = \"abc1234\",\n        Method = \"POST\",\n        PayloadTemplate = @\"{\n  \\\"\"incidentId\\\"\": \\\"\"{{{incidentId}}}\\\"\"\n}\n\",\n        Headers = new[]\n        {\n            new SignalFx.Inputs.WebhookIntegrationHeaderArgs\n            {\n                HeaderKey = \"some_header\",\n                HeaderValue = \"value_for_that_header\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-signalfx/sdk/v7/go/signalfx\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := signalfx.NewWebhookIntegration(ctx, \"webhook_myteam\", \u0026signalfx.WebhookIntegrationArgs{\n\t\t\tName:            pulumi.String(\"Webhook - My Team\"),\n\t\t\tEnabled:         pulumi.Bool(true),\n\t\t\tUrl:             pulumi.String(\"https://www.example.com\"),\n\t\t\tSharedSecret:    pulumi.String(\"abc1234\"),\n\t\t\tMethod:          pulumi.String(\"POST\"),\n\t\t\tPayloadTemplate: pulumi.String(\"{\\n  \\\\\\\"incidentId\\\\\\\": \\\\\\\"{{{incidentId}}}\\\\\\\"\\n}\\n\"),\n\t\t\tHeaders: signalfx.WebhookIntegrationHeaderArray{\n\t\t\t\t\u0026signalfx.WebhookIntegrationHeaderArgs{\n\t\t\t\t\tHeaderKey:   pulumi.String(\"some_header\"),\n\t\t\t\t\tHeaderValue: pulumi.String(\"value_for_that_header\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.signalfx.WebhookIntegration;\nimport com.pulumi.signalfx.WebhookIntegrationArgs;\nimport com.pulumi.signalfx.inputs.WebhookIntegrationHeaderArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var webhookMyteam = new WebhookIntegration(\"webhookMyteam\", WebhookIntegrationArgs.builder()\n            .name(\"Webhook - My Team\")\n            .enabled(true)\n            .url(\"https://www.example.com\")\n            .sharedSecret(\"abc1234\")\n            .method(\"POST\")\n            .payloadTemplate(\"\"\"\n{\n  \\\"incidentId\\\": \\\"{{{incidentId}}}\\\"\n}\n            \"\"\")\n            .headers(WebhookIntegrationHeaderArgs.builder()\n                .headerKey(\"some_header\")\n                .headerValue(\"value_for_that_header\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  webhookMyteam:\n    type: signalfx:WebhookIntegration\n    name: webhook_myteam\n    properties:\n      name: Webhook - My Team\n      enabled: true\n      url: https://www.example.com\n      sharedSecret: abc1234\n      method: POST\n      payloadTemplate: |\n        {\n          \\\"incidentId\\\": \\\"{{{incidentId}}}\\\"\n        }\n      headers:\n        - headerKey: some_header\n          headerValue: value_for_that_header\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"enabled":{"type":"boolean","description":"Whether the integration is enabled.\n"},"headers":{"type":"array","items":{"$ref":"#/types/signalfx:index/WebhookIntegrationHeader:WebhookIntegrationHeader"},"description":"A header to send with the request\n","secret":true},"method":{"type":"string","description":"HTTP method used for the webhook request, such as 'GET', 'POST' and 'PUT'\n"},"name":{"type":"string","description":"Name of the integration.\n"},"payloadTemplate":{"type":"string","description":"Template for the payload to be sent with the webhook request in JSON format\n"},"sharedSecret":{"type":"string","secret":true},"url":{"type":"string","description":"The URL to request\n"}},"required":["enabled","name"],"inputProperties":{"enabled":{"type":"boolean","description":"Whether the integration is enabled.\n"},"headers":{"type":"array","items":{"$ref":"#/types/signalfx:index/WebhookIntegrationHeader:WebhookIntegrationHeader"},"description":"A header to send with the request\n","secret":true},"method":{"type":"string","description":"HTTP method used for the webhook request, such as 'GET', 'POST' and 'PUT'\n"},"name":{"type":"string","description":"Name of the integration.\n"},"payloadTemplate":{"type":"string","description":"Template for the payload to be sent with the webhook request in JSON format\n"},"sharedSecret":{"type":"string","secret":true},"url":{"type":"string","description":"The URL to request\n"}},"requiredInputs":["enabled"],"stateInputs":{"description":"Input properties used for looking up and filtering WebhookIntegration resources.\n","properties":{"enabled":{"type":"boolean","description":"Whether the integration is enabled.\n"},"headers":{"type":"array","items":{"$ref":"#/types/signalfx:index/WebhookIntegrationHeader:WebhookIntegrationHeader"},"description":"A header to send with the request\n","secret":true},"method":{"type":"string","description":"HTTP method used for the webhook request, such as 'GET', 'POST' and 'PUT'\n"},"name":{"type":"string","description":"Name of the integration.\n"},"payloadTemplate":{"type":"string","description":"Template for the payload to be sent with the webhook request in JSON format\n"},"sharedSecret":{"type":"string","secret":true},"url":{"type":"string","description":"The URL to request\n"}},"type":"object"}},"signalfx:jira/integration:Integration":{"description":"Splunk Observability Cloud Jira integrations. For help with this integration see [Integration with Jira](https://docs.splunk.com/observability/en/admin/notif-services/jira.html).\n\n\u003e **NOTE** When managing integrations, use a session token of an administrator to authenticate the Splunk Observability Cloud provider. See [Operations that require a session token for an administrator](https://dev.splunk.com/observability/docs/administration/authtokens#Operations-that-require-a-session-token-for-an-administrator). Otherwise you'll receive a 4xx error.\n\n## Example\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as signalfx from \"@pulumi/signalfx\";\n\nconst jiraMyteamXX = new signalfx.jira.Integration(\"jira_myteamXX\", {\n    name: \"JiraFoo\",\n    enabled: false,\n    authMethod: \"UsernameAndPassword\",\n    username: \"yoosername\",\n    password: \"paasword\",\n    assigneeName: \"testytesterson\",\n    assigneeDisplayName: \"Testy Testerson\",\n    baseUrl: \"https://www.example.com\",\n    issueType: \"Story\",\n    projectKey: \"TEST\",\n});\n```\n```python\nimport pulumi\nimport pulumi_signalfx as signalfx\n\njira_myteam_xx = signalfx.jira.Integration(\"jira_myteamXX\",\n    name=\"JiraFoo\",\n    enabled=False,\n    auth_method=\"UsernameAndPassword\",\n    username=\"yoosername\",\n    password=\"paasword\",\n    assignee_name=\"testytesterson\",\n    assignee_display_name=\"Testy Testerson\",\n    base_url=\"https://www.example.com\",\n    issue_type=\"Story\",\n    project_key=\"TEST\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing SignalFx = Pulumi.SignalFx;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var jiraMyteamXX = new SignalFx.Jira.Integration(\"jira_myteamXX\", new()\n    {\n        Name = \"JiraFoo\",\n        Enabled = false,\n        AuthMethod = \"UsernameAndPassword\",\n        Username = \"yoosername\",\n        Password = \"paasword\",\n        AssigneeName = \"testytesterson\",\n        AssigneeDisplayName = \"Testy Testerson\",\n        BaseUrl = \"https://www.example.com\",\n        IssueType = \"Story\",\n        ProjectKey = \"TEST\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-signalfx/sdk/v7/go/signalfx/jira\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := jira.NewIntegration(ctx, \"jira_myteamXX\", \u0026jira.IntegrationArgs{\n\t\t\tName:                pulumi.String(\"JiraFoo\"),\n\t\t\tEnabled:             pulumi.Bool(false),\n\t\t\tAuthMethod:          pulumi.String(\"UsernameAndPassword\"),\n\t\t\tUsername:            pulumi.String(\"yoosername\"),\n\t\t\tPassword:            pulumi.String(\"paasword\"),\n\t\t\tAssigneeName:        pulumi.String(\"testytesterson\"),\n\t\t\tAssigneeDisplayName: pulumi.String(\"Testy Testerson\"),\n\t\t\tBaseUrl:             pulumi.String(\"https://www.example.com\"),\n\t\t\tIssueType:           pulumi.String(\"Story\"),\n\t\t\tProjectKey:          pulumi.String(\"TEST\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.signalfx.jira.Integration;\nimport com.pulumi.signalfx.jira.IntegrationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var jiraMyteamXX = new Integration(\"jiraMyteamXX\", IntegrationArgs.builder()\n            .name(\"JiraFoo\")\n            .enabled(false)\n            .authMethod(\"UsernameAndPassword\")\n            .username(\"yoosername\")\n            .password(\"paasword\")\n            .assigneeName(\"testytesterson\")\n            .assigneeDisplayName(\"Testy Testerson\")\n            .baseUrl(\"https://www.example.com\")\n            .issueType(\"Story\")\n            .projectKey(\"TEST\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  jiraMyteamXX:\n    type: signalfx:jira:Integration\n    name: jira_myteamXX\n    properties:\n      name: JiraFoo\n      enabled: false\n      authMethod: UsernameAndPassword\n      username: yoosername\n      password: paasword\n      assigneeName: testytesterson\n      assigneeDisplayName: Testy Testerson\n      baseUrl: https://www.example.com\n      issueType: Story\n      projectKey: TEST\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"apiToken":{"type":"string","description":"The API token for the user email\n","secret":true},"assigneeDisplayName":{"type":"string","description":"Jira display name for the assignee.\n"},"assigneeName":{"type":"string","description":"Jira user name for the assignee.\n"},"authMethod":{"type":"string","description":"Authentication method used when creating the Jira integration. One of `EmailAndToken` (using \u003cspan pulumi-lang-nodejs=\"`userEmail`\" pulumi-lang-dotnet=\"`UserEmail`\" pulumi-lang-go=\"`userEmail`\" pulumi-lang-python=\"`user_email`\" pulumi-lang-yaml=\"`userEmail`\" pulumi-lang-java=\"`userEmail`\"\u003e`user_email`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`apiToken`\" pulumi-lang-dotnet=\"`ApiToken`\" pulumi-lang-go=\"`apiToken`\" pulumi-lang-python=\"`api_token`\" pulumi-lang-yaml=\"`apiToken`\" pulumi-lang-java=\"`apiToken`\"\u003e`api_token`\u003c/span\u003e) or `UsernameAndPassword` (using \u003cspan pulumi-lang-nodejs=\"`username`\" pulumi-lang-dotnet=\"`Username`\" pulumi-lang-go=\"`username`\" pulumi-lang-python=\"`username`\" pulumi-lang-yaml=\"`username`\" pulumi-lang-java=\"`username`\"\u003e`username`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e).\n"},"baseUrl":{"type":"string","description":"Base URL of the Jira instance that's integrated with SignalFx.\n"},"enabled":{"type":"boolean","description":"Whether the integration is enabled.\n"},"issueType":{"type":"string","description":"Issue type (for example, Story) for tickets that Jira creates for detector notifications. Splunk Observability Cloud validates issue types, so you must specify a type that's valid for the Jira project specified in `projectKey`.\n"},"name":{"type":"string","description":"Name of the integration.\n"},"password":{"type":"string","description":"Password used to authenticate the Jira integration.\n","secret":true},"projectKey":{"type":"string","description":"Jira key of an existing project. When Jira creates a new ticket for a detector notification, the ticket is assigned to this project.\n"},"userEmail":{"type":"string","description":"Email address used to authenticate the Jira integration.\n"},"username":{"type":"string","description":"User name used to authenticate the Jira integration.\n"}},"required":["assigneeName","authMethod","baseUrl","enabled","issueType","name","projectKey"],"inputProperties":{"apiToken":{"type":"string","description":"The API token for the user email\n","secret":true},"assigneeDisplayName":{"type":"string","description":"Jira display name for the assignee.\n"},"assigneeName":{"type":"string","description":"Jira user name for the assignee.\n"},"authMethod":{"type":"string","description":"Authentication method used when creating the Jira integration. One of `EmailAndToken` (using \u003cspan pulumi-lang-nodejs=\"`userEmail`\" pulumi-lang-dotnet=\"`UserEmail`\" pulumi-lang-go=\"`userEmail`\" pulumi-lang-python=\"`user_email`\" pulumi-lang-yaml=\"`userEmail`\" pulumi-lang-java=\"`userEmail`\"\u003e`user_email`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`apiToken`\" pulumi-lang-dotnet=\"`ApiToken`\" pulumi-lang-go=\"`apiToken`\" pulumi-lang-python=\"`api_token`\" pulumi-lang-yaml=\"`apiToken`\" pulumi-lang-java=\"`apiToken`\"\u003e`api_token`\u003c/span\u003e) or `UsernameAndPassword` (using \u003cspan pulumi-lang-nodejs=\"`username`\" pulumi-lang-dotnet=\"`Username`\" pulumi-lang-go=\"`username`\" pulumi-lang-python=\"`username`\" pulumi-lang-yaml=\"`username`\" pulumi-lang-java=\"`username`\"\u003e`username`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e).\n"},"baseUrl":{"type":"string","description":"Base URL of the Jira instance that's integrated with SignalFx.\n"},"enabled":{"type":"boolean","description":"Whether the integration is enabled.\n"},"issueType":{"type":"string","description":"Issue type (for example, Story) for tickets that Jira creates for detector notifications. Splunk Observability Cloud validates issue types, so you must specify a type that's valid for the Jira project specified in `projectKey`.\n"},"name":{"type":"string","description":"Name of the integration.\n"},"password":{"type":"string","description":"Password used to authenticate the Jira integration.\n","secret":true},"projectKey":{"type":"string","description":"Jira key of an existing project. When Jira creates a new ticket for a detector notification, the ticket is assigned to this project.\n"},"userEmail":{"type":"string","description":"Email address used to authenticate the Jira integration.\n"},"username":{"type":"string","description":"User name used to authenticate the Jira integration.\n"}},"requiredInputs":["assigneeName","authMethod","baseUrl","enabled","issueType","projectKey"],"stateInputs":{"description":"Input properties used for looking up and filtering Integration resources.\n","properties":{"apiToken":{"type":"string","description":"The API token for the user email\n","secret":true},"assigneeDisplayName":{"type":"string","description":"Jira display name for the assignee.\n"},"assigneeName":{"type":"string","description":"Jira user name for the assignee.\n"},"authMethod":{"type":"string","description":"Authentication method used when creating the Jira integration. One of `EmailAndToken` (using \u003cspan pulumi-lang-nodejs=\"`userEmail`\" pulumi-lang-dotnet=\"`UserEmail`\" pulumi-lang-go=\"`userEmail`\" pulumi-lang-python=\"`user_email`\" pulumi-lang-yaml=\"`userEmail`\" pulumi-lang-java=\"`userEmail`\"\u003e`user_email`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`apiToken`\" pulumi-lang-dotnet=\"`ApiToken`\" pulumi-lang-go=\"`apiToken`\" pulumi-lang-python=\"`api_token`\" pulumi-lang-yaml=\"`apiToken`\" pulumi-lang-java=\"`apiToken`\"\u003e`api_token`\u003c/span\u003e) or `UsernameAndPassword` (using \u003cspan pulumi-lang-nodejs=\"`username`\" pulumi-lang-dotnet=\"`Username`\" pulumi-lang-go=\"`username`\" pulumi-lang-python=\"`username`\" pulumi-lang-yaml=\"`username`\" pulumi-lang-java=\"`username`\"\u003e`username`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e).\n"},"baseUrl":{"type":"string","description":"Base URL of the Jira instance that's integrated with SignalFx.\n"},"enabled":{"type":"boolean","description":"Whether the integration is enabled.\n"},"issueType":{"type":"string","description":"Issue type (for example, Story) for tickets that Jira creates for detector notifications. Splunk Observability Cloud validates issue types, so you must specify a type that's valid for the Jira project specified in `projectKey`.\n"},"name":{"type":"string","description":"Name of the integration.\n"},"password":{"type":"string","description":"Password used to authenticate the Jira integration.\n","secret":true},"projectKey":{"type":"string","description":"Jira key of an existing project. When Jira creates a new ticket for a detector notification, the ticket is assigned to this project.\n"},"userEmail":{"type":"string","description":"Email address used to authenticate the Jira integration.\n"},"username":{"type":"string","description":"User name used to authenticate the Jira integration.\n"}},"type":"object"}},"signalfx:log/timeline:Timeline":{"description":"You can add logs data to your Observability Cloud dashboards without turning your logs into metrics first.\n\nA log timeline chart displays timeline visualization in a dashboard and shows you in detail what is happening and why.\n\n## Example\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as signalfx from \"@pulumi/signalfx\";\n\nconst myLogTimeline = new signalfx.log.Timeline(\"my_log_timeline\", {\n    name: \"Sample Log Timeline\",\n    description: \"Lorem ipsum dolor sit amet, laudem tibique iracundia at mea. Nam posse dolores ex, nec cu adhuc putent honestatis\",\n    programText: \"logs(filter=field('message') == 'Transaction processed' and field('service.name') == 'paymentservice').publish()\\n\",\n    timeRange: 900,\n});\n```\n```python\nimport pulumi\nimport pulumi_signalfx as signalfx\n\nmy_log_timeline = signalfx.log.Timeline(\"my_log_timeline\",\n    name=\"Sample Log Timeline\",\n    description=\"Lorem ipsum dolor sit amet, laudem tibique iracundia at mea. Nam posse dolores ex, nec cu adhuc putent honestatis\",\n    program_text=\"logs(filter=field('message') == 'Transaction processed' and field('service.name') == 'paymentservice').publish()\\n\",\n    time_range=900)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing SignalFx = Pulumi.SignalFx;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var myLogTimeline = new SignalFx.Log.Timeline(\"my_log_timeline\", new()\n    {\n        Name = \"Sample Log Timeline\",\n        Description = \"Lorem ipsum dolor sit amet, laudem tibique iracundia at mea. Nam posse dolores ex, nec cu adhuc putent honestatis\",\n        ProgramText = @\"logs(filter=field('message') == 'Transaction processed' and field('service.name') == 'paymentservice').publish()\n\",\n        TimeRange = 900,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-signalfx/sdk/v7/go/signalfx/log\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := log.NewTimeline(ctx, \"my_log_timeline\", \u0026log.TimelineArgs{\n\t\t\tName:        pulumi.String(\"Sample Log Timeline\"),\n\t\t\tDescription: pulumi.String(\"Lorem ipsum dolor sit amet, laudem tibique iracundia at mea. Nam posse dolores ex, nec cu adhuc putent honestatis\"),\n\t\t\tProgramText: pulumi.String(\"logs(filter=field('message') == 'Transaction processed' and field('service.name') == 'paymentservice').publish()\\n\"),\n\t\t\tTimeRange:   pulumi.Int(900),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.signalfx.log.Timeline;\nimport com.pulumi.signalfx.log.TimelineArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var myLogTimeline = new Timeline(\"myLogTimeline\", TimelineArgs.builder()\n            .name(\"Sample Log Timeline\")\n            .description(\"Lorem ipsum dolor sit amet, laudem tibique iracundia at mea. Nam posse dolores ex, nec cu adhuc putent honestatis\")\n            .programText(\"\"\"\nlogs(filter=field('message') == 'Transaction processed' and field('service.name') == 'paymentservice').publish()\n            \"\"\")\n            .timeRange(900)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  myLogTimeline:\n    type: signalfx:log:Timeline\n    name: my_log_timeline\n    properties:\n      name: Sample Log Timeline\n      description: Lorem ipsum dolor sit amet, laudem tibique iracundia at mea. Nam posse dolores ex, nec cu adhuc putent honestatis\n      programText: |\n        logs(filter=field('message') == 'Transaction processed' and field('service.name') == 'paymentservice').publish()\n      timeRange: 900\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"defaultConnection":{"type":"string","description":"The connection that the log timeline uses to fetch data. This could be Splunk Enterprise, Splunk Enterprise Cloud or Observability Cloud.\n"},"description":{"type":"string","description":"Description of the log timeline.\n"},"endTime":{"type":"integer","description":"Seconds since epoch. Used for visualization. Conflicts with \u003cspan pulumi-lang-nodejs=\"`timeRange`\" pulumi-lang-dotnet=\"`TimeRange`\" pulumi-lang-go=\"`timeRange`\" pulumi-lang-python=\"`time_range`\" pulumi-lang-yaml=\"`timeRange`\" pulumi-lang-java=\"`timeRange`\"\u003e`time_range`\u003c/span\u003e.\n"},"name":{"type":"string","description":"Name of the log timeline.\n"},"programText":{"type":"string","description":"Signalflow program text for the log timeline. More info at https://dev.splunk.com/observability/docs/.\n"},"startTime":{"type":"integer","description":"Seconds since epoch. Used for visualization. Conflicts with \u003cspan pulumi-lang-nodejs=\"`timeRange`\" pulumi-lang-dotnet=\"`TimeRange`\" pulumi-lang-go=\"`timeRange`\" pulumi-lang-python=\"`time_range`\" pulumi-lang-yaml=\"`timeRange`\" pulumi-lang-java=\"`timeRange`\"\u003e`time_range`\u003c/span\u003e.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"Tags associated with the resource"},"timeRange":{"type":"integer","description":"From when to display data. Splunk Observability Cloud time syntax (e.g. `\"-5m\"`, `\"-1h\"`). Conflicts with \u003cspan pulumi-lang-nodejs=\"`startTime`\" pulumi-lang-dotnet=\"`StartTime`\" pulumi-lang-go=\"`startTime`\" pulumi-lang-python=\"`start_time`\" pulumi-lang-yaml=\"`startTime`\" pulumi-lang-java=\"`startTime`\"\u003e`start_time`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`endTime`\" pulumi-lang-dotnet=\"`EndTime`\" pulumi-lang-go=\"`endTime`\" pulumi-lang-python=\"`end_time`\" pulumi-lang-yaml=\"`endTime`\" pulumi-lang-java=\"`endTime`\"\u003e`end_time`\u003c/span\u003e.\n"},"url":{"type":"string","description":"The URL of the log timeline.\n"}},"required":["name","programText","url"],"inputProperties":{"defaultConnection":{"type":"string","description":"The connection that the log timeline uses to fetch data. This could be Splunk Enterprise, Splunk Enterprise Cloud or Observability Cloud.\n"},"description":{"type":"string","description":"Description of the log timeline.\n"},"endTime":{"type":"integer","description":"Seconds since epoch. Used for visualization. Conflicts with \u003cspan pulumi-lang-nodejs=\"`timeRange`\" pulumi-lang-dotnet=\"`TimeRange`\" pulumi-lang-go=\"`timeRange`\" pulumi-lang-python=\"`time_range`\" pulumi-lang-yaml=\"`timeRange`\" pulumi-lang-java=\"`timeRange`\"\u003e`time_range`\u003c/span\u003e.\n"},"name":{"type":"string","description":"Name of the log timeline.\n"},"programText":{"type":"string","description":"Signalflow program text for the log timeline. More info at https://dev.splunk.com/observability/docs/.\n"},"startTime":{"type":"integer","description":"Seconds since epoch. Used for visualization. Conflicts with \u003cspan pulumi-lang-nodejs=\"`timeRange`\" pulumi-lang-dotnet=\"`TimeRange`\" pulumi-lang-go=\"`timeRange`\" pulumi-lang-python=\"`time_range`\" pulumi-lang-yaml=\"`timeRange`\" pulumi-lang-java=\"`timeRange`\"\u003e`time_range`\u003c/span\u003e.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"Tags associated with the resource"},"timeRange":{"type":"integer","description":"From when to display data. Splunk Observability Cloud time syntax (e.g. `\"-5m\"`, `\"-1h\"`). Conflicts with \u003cspan pulumi-lang-nodejs=\"`startTime`\" pulumi-lang-dotnet=\"`StartTime`\" pulumi-lang-go=\"`startTime`\" pulumi-lang-python=\"`start_time`\" pulumi-lang-yaml=\"`startTime`\" pulumi-lang-java=\"`startTime`\"\u003e`start_time`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`endTime`\" pulumi-lang-dotnet=\"`EndTime`\" pulumi-lang-go=\"`endTime`\" pulumi-lang-python=\"`end_time`\" pulumi-lang-yaml=\"`endTime`\" pulumi-lang-java=\"`endTime`\"\u003e`end_time`\u003c/span\u003e.\n"}},"requiredInputs":["programText"],"stateInputs":{"description":"Input properties used for looking up and filtering Timeline resources.\n","properties":{"defaultConnection":{"type":"string","description":"The connection that the log timeline uses to fetch data. This could be Splunk Enterprise, Splunk Enterprise Cloud or Observability Cloud.\n"},"description":{"type":"string","description":"Description of the log timeline.\n"},"endTime":{"type":"integer","description":"Seconds since epoch. Used for visualization. Conflicts with \u003cspan pulumi-lang-nodejs=\"`timeRange`\" pulumi-lang-dotnet=\"`TimeRange`\" pulumi-lang-go=\"`timeRange`\" pulumi-lang-python=\"`time_range`\" pulumi-lang-yaml=\"`timeRange`\" pulumi-lang-java=\"`timeRange`\"\u003e`time_range`\u003c/span\u003e.\n"},"name":{"type":"string","description":"Name of the log timeline.\n"},"programText":{"type":"string","description":"Signalflow program text for the log timeline. More info at https://dev.splunk.com/observability/docs/.\n"},"startTime":{"type":"integer","description":"Seconds since epoch. Used for visualization. Conflicts with \u003cspan pulumi-lang-nodejs=\"`timeRange`\" pulumi-lang-dotnet=\"`TimeRange`\" pulumi-lang-go=\"`timeRange`\" pulumi-lang-python=\"`time_range`\" pulumi-lang-yaml=\"`timeRange`\" pulumi-lang-java=\"`timeRange`\"\u003e`time_range`\u003c/span\u003e.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"Tags associated with the resource"},"timeRange":{"type":"integer","description":"From when to display data. Splunk Observability Cloud time syntax (e.g. `\"-5m\"`, `\"-1h\"`). Conflicts with \u003cspan pulumi-lang-nodejs=\"`startTime`\" pulumi-lang-dotnet=\"`StartTime`\" pulumi-lang-go=\"`startTime`\" pulumi-lang-python=\"`start_time`\" pulumi-lang-yaml=\"`startTime`\" pulumi-lang-java=\"`startTime`\"\u003e`start_time`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`endTime`\" pulumi-lang-dotnet=\"`EndTime`\" pulumi-lang-go=\"`endTime`\" pulumi-lang-python=\"`end_time`\" pulumi-lang-yaml=\"`endTime`\" pulumi-lang-java=\"`endTime`\"\u003e`end_time`\u003c/span\u003e.\n"},"url":{"type":"string","description":"The URL of the log timeline.\n"}},"type":"object"}},"signalfx:log/view:View":{"description":"You can add logs data to your Observability Cloud dashboards without turning your logs into metrics first.\n\nA log view displays log lines in a table form in a dashboard and shows you in detail what is happening and why.\n\n## Example\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as signalfx from \"@pulumi/signalfx\";\n\nconst myLogView = new signalfx.log.View(\"my_log_view\", {\n    name: \"Sample Log View\",\n    description: \"Lorem ipsum dolor sit amet, laudem tibique iracundia at mea. Nam posse dolores ex, nec cu adhuc putent honestatis\",\n    programText: \"logs(filter=field('message') == 'Transaction processed' and field('service.name') == 'paymentservice').publish()\\n\",\n    timeRange: 900,\n    sortOptions: [{\n        descending: false,\n        field: \"severity\",\n    }],\n    columns: [\n        {\n            name: \"severity\",\n        },\n        {\n            name: \"time\",\n        },\n        {\n            name: \"amount.currency_code\",\n        },\n        {\n            name: \"amount.nanos\",\n        },\n        {\n            name: \"amount.units\",\n        },\n        {\n            name: \"message\",\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_signalfx as signalfx\n\nmy_log_view = signalfx.log.View(\"my_log_view\",\n    name=\"Sample Log View\",\n    description=\"Lorem ipsum dolor sit amet, laudem tibique iracundia at mea. Nam posse dolores ex, nec cu adhuc putent honestatis\",\n    program_text=\"logs(filter=field('message') == 'Transaction processed' and field('service.name') == 'paymentservice').publish()\\n\",\n    time_range=900,\n    sort_options=[{\n        \"descending\": False,\n        \"field\": \"severity\",\n    }],\n    columns=[\n        {\n            \"name\": \"severity\",\n        },\n        {\n            \"name\": \"time\",\n        },\n        {\n            \"name\": \"amount.currency_code\",\n        },\n        {\n            \"name\": \"amount.nanos\",\n        },\n        {\n            \"name\": \"amount.units\",\n        },\n        {\n            \"name\": \"message\",\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing SignalFx = Pulumi.SignalFx;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var myLogView = new SignalFx.Log.View(\"my_log_view\", new()\n    {\n        Name = \"Sample Log View\",\n        Description = \"Lorem ipsum dolor sit amet, laudem tibique iracundia at mea. Nam posse dolores ex, nec cu adhuc putent honestatis\",\n        ProgramText = @\"logs(filter=field('message') == 'Transaction processed' and field('service.name') == 'paymentservice').publish()\n\",\n        TimeRange = 900,\n        SortOptions = new[]\n        {\n            new SignalFx.Log.Inputs.ViewSortOptionArgs\n            {\n                Descending = false,\n                Field = \"severity\",\n            },\n        },\n        Columns = new[]\n        {\n            new SignalFx.Log.Inputs.ViewColumnArgs\n            {\n                Name = \"severity\",\n            },\n            new SignalFx.Log.Inputs.ViewColumnArgs\n            {\n                Name = \"time\",\n            },\n            new SignalFx.Log.Inputs.ViewColumnArgs\n            {\n                Name = \"amount.currency_code\",\n            },\n            new SignalFx.Log.Inputs.ViewColumnArgs\n            {\n                Name = \"amount.nanos\",\n            },\n            new SignalFx.Log.Inputs.ViewColumnArgs\n            {\n                Name = \"amount.units\",\n            },\n            new SignalFx.Log.Inputs.ViewColumnArgs\n            {\n                Name = \"message\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-signalfx/sdk/v7/go/signalfx/log\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := log.NewView(ctx, \"my_log_view\", \u0026log.ViewArgs{\n\t\t\tName:        pulumi.String(\"Sample Log View\"),\n\t\t\tDescription: pulumi.String(\"Lorem ipsum dolor sit amet, laudem tibique iracundia at mea. Nam posse dolores ex, nec cu adhuc putent honestatis\"),\n\t\t\tProgramText: pulumi.String(\"logs(filter=field('message') == 'Transaction processed' and field('service.name') == 'paymentservice').publish()\\n\"),\n\t\t\tTimeRange:   pulumi.Int(900),\n\t\t\tSortOptions: log.ViewSortOptionArray{\n\t\t\t\t\u0026log.ViewSortOptionArgs{\n\t\t\t\t\tDescending: pulumi.Bool(false),\n\t\t\t\t\tField:      pulumi.String(\"severity\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tColumns: log.ViewColumnArray{\n\t\t\t\t\u0026log.ViewColumnArgs{\n\t\t\t\t\tName: pulumi.String(\"severity\"),\n\t\t\t\t},\n\t\t\t\t\u0026log.ViewColumnArgs{\n\t\t\t\t\tName: pulumi.String(\"time\"),\n\t\t\t\t},\n\t\t\t\t\u0026log.ViewColumnArgs{\n\t\t\t\t\tName: pulumi.String(\"amount.currency_code\"),\n\t\t\t\t},\n\t\t\t\t\u0026log.ViewColumnArgs{\n\t\t\t\t\tName: pulumi.String(\"amount.nanos\"),\n\t\t\t\t},\n\t\t\t\t\u0026log.ViewColumnArgs{\n\t\t\t\t\tName: pulumi.String(\"amount.units\"),\n\t\t\t\t},\n\t\t\t\t\u0026log.ViewColumnArgs{\n\t\t\t\t\tName: pulumi.String(\"message\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.signalfx.log.View;\nimport com.pulumi.signalfx.log.ViewArgs;\nimport com.pulumi.signalfx.log.inputs.ViewSortOptionArgs;\nimport com.pulumi.signalfx.log.inputs.ViewColumnArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var myLogView = new View(\"myLogView\", ViewArgs.builder()\n            .name(\"Sample Log View\")\n            .description(\"Lorem ipsum dolor sit amet, laudem tibique iracundia at mea. Nam posse dolores ex, nec cu adhuc putent honestatis\")\n            .programText(\"\"\"\nlogs(filter=field('message') == 'Transaction processed' and field('service.name') == 'paymentservice').publish()\n            \"\"\")\n            .timeRange(900)\n            .sortOptions(ViewSortOptionArgs.builder()\n                .descending(false)\n                .field(\"severity\")\n                .build())\n            .columns(            \n                ViewColumnArgs.builder()\n                    .name(\"severity\")\n                    .build(),\n                ViewColumnArgs.builder()\n                    .name(\"time\")\n                    .build(),\n                ViewColumnArgs.builder()\n                    .name(\"amount.currency_code\")\n                    .build(),\n                ViewColumnArgs.builder()\n                    .name(\"amount.nanos\")\n                    .build(),\n                ViewColumnArgs.builder()\n                    .name(\"amount.units\")\n                    .build(),\n                ViewColumnArgs.builder()\n                    .name(\"message\")\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  myLogView:\n    type: signalfx:log:View\n    name: my_log_view\n    properties:\n      name: Sample Log View\n      description: Lorem ipsum dolor sit amet, laudem tibique iracundia at mea. Nam posse dolores ex, nec cu adhuc putent honestatis\n      programText: |\n        logs(filter=field('message') == 'Transaction processed' and field('service.name') == 'paymentservice').publish()\n      timeRange: 900\n      sortOptions:\n        - descending: false\n          field: severity\n      columns:\n        - name: severity\n        - name: time\n        - name: amount.currency_code\n        - name: amount.nanos\n        - name: amount.units\n        - name: message\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"columns":{"type":"array","items":{"$ref":"#/types/signalfx:log/ViewColumn:ViewColumn"},"description":"The column headers to show on the log view.\n"},"defaultConnection":{"type":"string","description":"The connection that the log view uses to fetch data. This could be Splunk Enterprise, Splunk Enterprise Cloud or Observability Cloud.\n"},"description":{"type":"string","description":"Description of the log view.\n"},"endTime":{"type":"integer","description":"Seconds since epoch. Used for visualization. Conflicts with \u003cspan pulumi-lang-nodejs=\"`timeRange`\" pulumi-lang-dotnet=\"`TimeRange`\" pulumi-lang-go=\"`timeRange`\" pulumi-lang-python=\"`time_range`\" pulumi-lang-yaml=\"`timeRange`\" pulumi-lang-java=\"`timeRange`\"\u003e`time_range`\u003c/span\u003e.\n"},"name":{"type":"string","description":"Name of the log view.\n"},"programText":{"type":"string","description":"Signalflow program text for the log view. More info at [Signalflow Overview](https://dev.splunk.com/observability/docs/signalflow/).\n"},"sortOptions":{"type":"array","items":{"$ref":"#/types/signalfx:log/ViewSortOption:ViewSortOption"},"description":"The sorting options configuration to specify if the log view table needs to be sorted in a particular field.\n"},"startTime":{"type":"integer","description":"Seconds since epoch. Used for visualization. Conflicts with \u003cspan pulumi-lang-nodejs=\"`timeRange`\" pulumi-lang-dotnet=\"`TimeRange`\" pulumi-lang-go=\"`timeRange`\" pulumi-lang-python=\"`time_range`\" pulumi-lang-yaml=\"`timeRange`\" pulumi-lang-java=\"`timeRange`\"\u003e`time_range`\u003c/span\u003e.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"Tags associated with the resource"},"timeRange":{"type":"integer","description":"From when to display data. Splunk Observability Cloud time syntax (e.g. `\"-5m\"`, `\"-1h\"`). Conflicts with \u003cspan pulumi-lang-nodejs=\"`startTime`\" pulumi-lang-dotnet=\"`StartTime`\" pulumi-lang-go=\"`startTime`\" pulumi-lang-python=\"`start_time`\" pulumi-lang-yaml=\"`startTime`\" pulumi-lang-java=\"`startTime`\"\u003e`start_time`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`endTime`\" pulumi-lang-dotnet=\"`EndTime`\" pulumi-lang-go=\"`endTime`\" pulumi-lang-python=\"`end_time`\" pulumi-lang-yaml=\"`endTime`\" pulumi-lang-java=\"`endTime`\"\u003e`end_time`\u003c/span\u003e.\n"},"url":{"type":"string","description":"The URL of the log view.\n"}},"required":["name","programText","url"],"inputProperties":{"columns":{"type":"array","items":{"$ref":"#/types/signalfx:log/ViewColumn:ViewColumn"},"description":"The column headers to show on the log view.\n"},"defaultConnection":{"type":"string","description":"The connection that the log view uses to fetch data. This could be Splunk Enterprise, Splunk Enterprise Cloud or Observability Cloud.\n"},"description":{"type":"string","description":"Description of the log view.\n"},"endTime":{"type":"integer","description":"Seconds since epoch. Used for visualization. Conflicts with \u003cspan pulumi-lang-nodejs=\"`timeRange`\" pulumi-lang-dotnet=\"`TimeRange`\" pulumi-lang-go=\"`timeRange`\" pulumi-lang-python=\"`time_range`\" pulumi-lang-yaml=\"`timeRange`\" pulumi-lang-java=\"`timeRange`\"\u003e`time_range`\u003c/span\u003e.\n"},"name":{"type":"string","description":"Name of the log view.\n"},"programText":{"type":"string","description":"Signalflow program text for the log view. More info at [Signalflow Overview](https://dev.splunk.com/observability/docs/signalflow/).\n"},"sortOptions":{"type":"array","items":{"$ref":"#/types/signalfx:log/ViewSortOption:ViewSortOption"},"description":"The sorting options configuration to specify if the log view table needs to be sorted in a particular field.\n"},"startTime":{"type":"integer","description":"Seconds since epoch. Used for visualization. Conflicts with \u003cspan pulumi-lang-nodejs=\"`timeRange`\" pulumi-lang-dotnet=\"`TimeRange`\" pulumi-lang-go=\"`timeRange`\" pulumi-lang-python=\"`time_range`\" pulumi-lang-yaml=\"`timeRange`\" pulumi-lang-java=\"`timeRange`\"\u003e`time_range`\u003c/span\u003e.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"Tags associated with the resource"},"timeRange":{"type":"integer","description":"From when to display data. Splunk Observability Cloud time syntax (e.g. `\"-5m\"`, `\"-1h\"`). Conflicts with \u003cspan pulumi-lang-nodejs=\"`startTime`\" pulumi-lang-dotnet=\"`StartTime`\" pulumi-lang-go=\"`startTime`\" pulumi-lang-python=\"`start_time`\" pulumi-lang-yaml=\"`startTime`\" pulumi-lang-java=\"`startTime`\"\u003e`start_time`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`endTime`\" pulumi-lang-dotnet=\"`EndTime`\" pulumi-lang-go=\"`endTime`\" pulumi-lang-python=\"`end_time`\" pulumi-lang-yaml=\"`endTime`\" pulumi-lang-java=\"`endTime`\"\u003e`end_time`\u003c/span\u003e.\n"}},"requiredInputs":["programText"],"stateInputs":{"description":"Input properties used for looking up and filtering View resources.\n","properties":{"columns":{"type":"array","items":{"$ref":"#/types/signalfx:log/ViewColumn:ViewColumn"},"description":"The column headers to show on the log view.\n"},"defaultConnection":{"type":"string","description":"The connection that the log view uses to fetch data. This could be Splunk Enterprise, Splunk Enterprise Cloud or Observability Cloud.\n"},"description":{"type":"string","description":"Description of the log view.\n"},"endTime":{"type":"integer","description":"Seconds since epoch. Used for visualization. Conflicts with \u003cspan pulumi-lang-nodejs=\"`timeRange`\" pulumi-lang-dotnet=\"`TimeRange`\" pulumi-lang-go=\"`timeRange`\" pulumi-lang-python=\"`time_range`\" pulumi-lang-yaml=\"`timeRange`\" pulumi-lang-java=\"`timeRange`\"\u003e`time_range`\u003c/span\u003e.\n"},"name":{"type":"string","description":"Name of the log view.\n"},"programText":{"type":"string","description":"Signalflow program text for the log view. More info at [Signalflow Overview](https://dev.splunk.com/observability/docs/signalflow/).\n"},"sortOptions":{"type":"array","items":{"$ref":"#/types/signalfx:log/ViewSortOption:ViewSortOption"},"description":"The sorting options configuration to specify if the log view table needs to be sorted in a particular field.\n"},"startTime":{"type":"integer","description":"Seconds since epoch. Used for visualization. Conflicts with \u003cspan pulumi-lang-nodejs=\"`timeRange`\" pulumi-lang-dotnet=\"`TimeRange`\" pulumi-lang-go=\"`timeRange`\" pulumi-lang-python=\"`time_range`\" pulumi-lang-yaml=\"`timeRange`\" pulumi-lang-java=\"`timeRange`\"\u003e`time_range`\u003c/span\u003e.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"Tags associated with the resource"},"timeRange":{"type":"integer","description":"From when to display data. Splunk Observability Cloud time syntax (e.g. `\"-5m\"`, `\"-1h\"`). Conflicts with \u003cspan pulumi-lang-nodejs=\"`startTime`\" pulumi-lang-dotnet=\"`StartTime`\" pulumi-lang-go=\"`startTime`\" pulumi-lang-python=\"`start_time`\" pulumi-lang-yaml=\"`startTime`\" pulumi-lang-java=\"`startTime`\"\u003e`start_time`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`endTime`\" pulumi-lang-dotnet=\"`EndTime`\" pulumi-lang-go=\"`endTime`\" pulumi-lang-python=\"`end_time`\" pulumi-lang-yaml=\"`endTime`\" pulumi-lang-java=\"`endTime`\"\u003e`end_time`\u003c/span\u003e.\n"},"url":{"type":"string","description":"The URL of the log view.\n"}},"type":"object"},"aliases":[{"type":"signalfx:logs/view:View"}]},"signalfx:opsgenie/integration:Integration":{"description":"Splunk Observability Cloud Opsgenie integration.\n\n\u003e **NOTE** When managing integrations, use a session token of an administrator to authenticate the Splunk Observability Cloud provider. See [Operations that require a session token for an administrator](https://dev.splunk.com/observability/docs/administration/authtokens#Operations-that-require-a-session-token-for-an-administrator). Otherwise you'll receive a 4xx error.\n\n## Example\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as signalfx from \"@pulumi/signalfx\";\n\nconst opgenieMyteam = new signalfx.opsgenie.Integration(\"opgenie_myteam\", {\n    name: \"Opsgenie - My Team\",\n    enabled: true,\n    apiKey: \"my-key\",\n    apiUrl: \"https://api.opsgenie.com\",\n});\n```\n```python\nimport pulumi\nimport pulumi_signalfx as signalfx\n\nopgenie_myteam = signalfx.opsgenie.Integration(\"opgenie_myteam\",\n    name=\"Opsgenie - My Team\",\n    enabled=True,\n    api_key=\"my-key\",\n    api_url=\"https://api.opsgenie.com\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing SignalFx = Pulumi.SignalFx;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var opgenieMyteam = new SignalFx.Opsgenie.Integration(\"opgenie_myteam\", new()\n    {\n        Name = \"Opsgenie - My Team\",\n        Enabled = true,\n        ApiKey = \"my-key\",\n        ApiUrl = \"https://api.opsgenie.com\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-signalfx/sdk/v7/go/signalfx/opsgenie\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opsgenie.NewIntegration(ctx, \"opgenie_myteam\", \u0026opsgenie.IntegrationArgs{\n\t\t\tName:    pulumi.String(\"Opsgenie - My Team\"),\n\t\t\tEnabled: pulumi.Bool(true),\n\t\t\tApiKey:  pulumi.String(\"my-key\"),\n\t\t\tApiUrl:  pulumi.String(\"https://api.opsgenie.com\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.signalfx.opsgenie.Integration;\nimport com.pulumi.signalfx.opsgenie.IntegrationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var opgenieMyteam = new Integration(\"opgenieMyteam\", IntegrationArgs.builder()\n            .name(\"Opsgenie - My Team\")\n            .enabled(true)\n            .apiKey(\"my-key\")\n            .apiUrl(\"https://api.opsgenie.com\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  opgenieMyteam:\n    type: signalfx:opsgenie:Integration\n    name: opgenie_myteam\n    properties:\n      name: Opsgenie - My Team\n      enabled: true\n      apiKey: my-key\n      apiUrl: https://api.opsgenie.com\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"apiKey":{"type":"string","description":"The API key\n","secret":true},"apiUrl":{"type":"string","description":"Opsgenie API URL. Will default to `https://api.opsgenie.com`. You might also want `https://api.eu.opsgenie.com`.\n"},"enabled":{"type":"boolean","description":"Whether the integration is enabled.\n"},"name":{"type":"string","description":"Name of the integration.\n"}},"required":["apiKey","enabled","name"],"inputProperties":{"apiKey":{"type":"string","description":"The API key\n","secret":true},"apiUrl":{"type":"string","description":"Opsgenie API URL. Will default to `https://api.opsgenie.com`. You might also want `https://api.eu.opsgenie.com`.\n"},"enabled":{"type":"boolean","description":"Whether the integration is enabled.\n"},"name":{"type":"string","description":"Name of the integration.\n"}},"requiredInputs":["apiKey","enabled"],"stateInputs":{"description":"Input properties used for looking up and filtering Integration resources.\n","properties":{"apiKey":{"type":"string","description":"The API key\n","secret":true},"apiUrl":{"type":"string","description":"Opsgenie API URL. Will default to `https://api.opsgenie.com`. You might also want `https://api.eu.opsgenie.com`.\n"},"enabled":{"type":"boolean","description":"Whether the integration is enabled.\n"},"name":{"type":"string","description":"Name of the integration.\n"}},"type":"object"}},"signalfx:pagerduty/integration:Integration":{"description":"Splunk Observability Cloud PagerDuty integrations.\n\n\u003e **NOTE** When managing integrations, use a session token of an administrator to authenticate the Splunk Observability Cloud provider. See [Operations that require a session token for an administrator](https://dev.splunk.com/observability/docs/administration/authtokens#Operations-that-require-a-session-token-for-an-administrator). Otherwise you'll receive a 4xx error.\n\n## Example\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as signalfx from \"@pulumi/signalfx\";\n\nconst pagerdutyMyteam = new signalfx.pagerduty.Integration(\"pagerduty_myteam\", {\n    name: \"PD - My Team\",\n    enabled: true,\n    apiKey: \"1234567890\",\n});\n```\n```python\nimport pulumi\nimport pulumi_signalfx as signalfx\n\npagerduty_myteam = signalfx.pagerduty.Integration(\"pagerduty_myteam\",\n    name=\"PD - My Team\",\n    enabled=True,\n    api_key=\"1234567890\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing SignalFx = Pulumi.SignalFx;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var pagerdutyMyteam = new SignalFx.PagerDuty.Integration(\"pagerduty_myteam\", new()\n    {\n        Name = \"PD - My Team\",\n        Enabled = true,\n        ApiKey = \"1234567890\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-signalfx/sdk/v7/go/signalfx/pagerduty\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := pagerduty.NewIntegration(ctx, \"pagerduty_myteam\", \u0026pagerduty.IntegrationArgs{\n\t\t\tName:    pulumi.String(\"PD - My Team\"),\n\t\t\tEnabled: pulumi.Bool(true),\n\t\t\tApiKey:  pulumi.String(\"1234567890\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.signalfx.pagerduty.Integration;\nimport com.pulumi.signalfx.pagerduty.IntegrationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var pagerdutyMyteam = new Integration(\"pagerdutyMyteam\", IntegrationArgs.builder()\n            .name(\"PD - My Team\")\n            .enabled(true)\n            .apiKey(\"1234567890\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  pagerdutyMyteam:\n    type: signalfx:pagerduty:Integration\n    name: pagerduty_myteam\n    properties:\n      name: PD - My Team\n      enabled: true\n      apiKey: '1234567890'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"apiKey":{"type":"string","description":"PagerDuty API key.\n","secret":true},"enabled":{"type":"boolean","description":"Whether the integration is enabled.\n"},"name":{"type":"string","description":"Name of the integration.\n"}},"required":["enabled","name"],"inputProperties":{"apiKey":{"type":"string","description":"PagerDuty API key.\n","secret":true},"enabled":{"type":"boolean","description":"Whether the integration is enabled.\n"},"name":{"type":"string","description":"Name of the integration.\n"}},"requiredInputs":["enabled"],"stateInputs":{"description":"Input properties used for looking up and filtering Integration resources.\n","properties":{"apiKey":{"type":"string","description":"PagerDuty API key.\n","secret":true},"enabled":{"type":"boolean","description":"Whether the integration is enabled.\n"},"name":{"type":"string","description":"Name of the integration.\n"}},"type":"object"}},"signalfx:servicenow/integration:Integration":{"description":"ServiceNow integrations. For help with this integration see [Integration with ServiceNow](https://docs.splunk.com/observability/en/admin/notif-services/servicenow.html).\n\n\u003e **NOTE** When managing integrations, use a session token of an administrator to authenticate the Observability Cloud provider. See [Operations that require a session token for an administrator](https://dev.splunk.com/observability/docs/administration/authtokens#Operations-that-require-a-session-token-for-an-administrator). Otherwise you'll receive a 4xx error.\n\n## Example\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as signalfx from \"@pulumi/signalfx\";\n\nconst serviceNowMyteam = new signalfx.servicenow.Integration(\"service_now_myteam\", {\n    name: \"ServiceNow - My Team\",\n    enabled: false,\n    username: \"thisis_me\",\n    password: \"youd0ntsee1t\",\n    instanceName: \"myinst.service-now.com\",\n    issueType: \"Incident\",\n    alertTriggeredPayloadTemplate: \"{\\\"short_description\\\": \\\"{{{messageTitle}}} (customized)\\\"}\",\n    alertResolvedPayloadTemplate: \"{\\\"close_notes\\\": \\\"{{{messageTitle}}} (customized close msg)\\\"}\",\n});\n```\n```python\nimport pulumi\nimport pulumi_signalfx as signalfx\n\nservice_now_myteam = signalfx.servicenow.Integration(\"service_now_myteam\",\n    name=\"ServiceNow - My Team\",\n    enabled=False,\n    username=\"thisis_me\",\n    password=\"youd0ntsee1t\",\n    instance_name=\"myinst.service-now.com\",\n    issue_type=\"Incident\",\n    alert_triggered_payload_template=\"{\\\"short_description\\\": \\\"{{{messageTitle}}} (customized)\\\"}\",\n    alert_resolved_payload_template=\"{\\\"close_notes\\\": \\\"{{{messageTitle}}} (customized close msg)\\\"}\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing SignalFx = Pulumi.SignalFx;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var serviceNowMyteam = new SignalFx.ServiceNow.Integration(\"service_now_myteam\", new()\n    {\n        Name = \"ServiceNow - My Team\",\n        Enabled = false,\n        Username = \"thisis_me\",\n        Password = \"youd0ntsee1t\",\n        InstanceName = \"myinst.service-now.com\",\n        IssueType = \"Incident\",\n        AlertTriggeredPayloadTemplate = \"{\\\"short_description\\\": \\\"{{{messageTitle}}} (customized)\\\"}\",\n        AlertResolvedPayloadTemplate = \"{\\\"close_notes\\\": \\\"{{{messageTitle}}} (customized close msg)\\\"}\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-signalfx/sdk/v7/go/signalfx/servicenow\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := servicenow.NewIntegration(ctx, \"service_now_myteam\", \u0026servicenow.IntegrationArgs{\n\t\t\tName:                          pulumi.String(\"ServiceNow - My Team\"),\n\t\t\tEnabled:                       pulumi.Bool(false),\n\t\t\tUsername:                      pulumi.String(\"thisis_me\"),\n\t\t\tPassword:                      pulumi.String(\"youd0ntsee1t\"),\n\t\t\tInstanceName:                  pulumi.String(\"myinst.service-now.com\"),\n\t\t\tIssueType:                     pulumi.String(\"Incident\"),\n\t\t\tAlertTriggeredPayloadTemplate: pulumi.String(\"{\\\"short_description\\\": \\\"{{{messageTitle}}} (customized)\\\"}\"),\n\t\t\tAlertResolvedPayloadTemplate:  pulumi.String(\"{\\\"close_notes\\\": \\\"{{{messageTitle}}} (customized close msg)\\\"}\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.signalfx.servicenow.Integration;\nimport com.pulumi.signalfx.servicenow.IntegrationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var serviceNowMyteam = new Integration(\"serviceNowMyteam\", IntegrationArgs.builder()\n            .name(\"ServiceNow - My Team\")\n            .enabled(false)\n            .username(\"thisis_me\")\n            .password(\"youd0ntsee1t\")\n            .instanceName(\"myinst.service-now.com\")\n            .issueType(\"Incident\")\n            .alertTriggeredPayloadTemplate(\"{\\\"short_description\\\": \\\"{{{messageTitle}}} (customized)\\\"}\")\n            .alertResolvedPayloadTemplate(\"{\\\"close_notes\\\": \\\"{{{messageTitle}}} (customized close msg)\\\"}\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  serviceNowMyteam:\n    type: signalfx:servicenow:Integration\n    name: service_now_myteam\n    properties:\n      name: ServiceNow - My Team\n      enabled: false\n      username: thisis_me\n      password: youd0ntsee1t\n      instanceName: myinst.service-now.com\n      issueType: Incident\n      alertTriggeredPayloadTemplate: '{\"short_description\": \"{{{messageTitle}}} (customized)\"}'\n      alertResolvedPayloadTemplate: '{\"close_notes\": \"{{{messageTitle}}} (customized close msg)\"}'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"alertResolvedPayloadTemplate":{"type":"string","description":"A template that Observability Cloud uses to create the ServiceNow PUT JSON payloads when an alert is cleared in ServiceNow. Use this optional field to send the values of Observability Cloud alert properties to specific fields in ServiceNow. See [API reference](https://dev.splunk.com/observability/reference/api/integrations/latest) for details.\n"},"alertTriggeredPayloadTemplate":{"type":"string","description":"A template that Observability Cloud uses to create the ServiceNow POST JSON payloads when an alert sends a notification to ServiceNow. Use this optional field to send the values of Observability Cloud alert properties to specific fields in ServiceNow. See [API reference](https://dev.splunk.com/observability/reference/api/integrations/latest) for details.\n"},"enabled":{"type":"boolean","description":"Whether the integration is enabled.\n"},"instanceName":{"type":"string","description":"Name of the ServiceNow instance, for example `myinst.service-now.com`.\n"},"issueType":{"type":"string","description":"The type of issue in standard ITIL terminology. The allowed values are `Incident` and `Problem`.\n"},"name":{"type":"string","description":"Name of the integration.\n"},"password":{"type":"string","description":"Password used to authenticate the ServiceNow integration.\n","secret":true},"username":{"type":"string","description":"User name used to authenticate the ServiceNow integration.\n"}},"required":["enabled","instanceName","issueType","name","password","username"],"inputProperties":{"alertResolvedPayloadTemplate":{"type":"string","description":"A template that Observability Cloud uses to create the ServiceNow PUT JSON payloads when an alert is cleared in ServiceNow. Use this optional field to send the values of Observability Cloud alert properties to specific fields in ServiceNow. See [API reference](https://dev.splunk.com/observability/reference/api/integrations/latest) for details.\n"},"alertTriggeredPayloadTemplate":{"type":"string","description":"A template that Observability Cloud uses to create the ServiceNow POST JSON payloads when an alert sends a notification to ServiceNow. Use this optional field to send the values of Observability Cloud alert properties to specific fields in ServiceNow. See [API reference](https://dev.splunk.com/observability/reference/api/integrations/latest) for details.\n"},"enabled":{"type":"boolean","description":"Whether the integration is enabled.\n"},"instanceName":{"type":"string","description":"Name of the ServiceNow instance, for example `myinst.service-now.com`.\n"},"issueType":{"type":"string","description":"The type of issue in standard ITIL terminology. The allowed values are `Incident` and `Problem`.\n"},"name":{"type":"string","description":"Name of the integration.\n"},"password":{"type":"string","description":"Password used to authenticate the ServiceNow integration.\n","secret":true},"username":{"type":"string","description":"User name used to authenticate the ServiceNow integration.\n"}},"requiredInputs":["enabled","instanceName","issueType","password","username"],"stateInputs":{"description":"Input properties used for looking up and filtering Integration resources.\n","properties":{"alertResolvedPayloadTemplate":{"type":"string","description":"A template that Observability Cloud uses to create the ServiceNow PUT JSON payloads when an alert is cleared in ServiceNow. Use this optional field to send the values of Observability Cloud alert properties to specific fields in ServiceNow. See [API reference](https://dev.splunk.com/observability/reference/api/integrations/latest) for details.\n"},"alertTriggeredPayloadTemplate":{"type":"string","description":"A template that Observability Cloud uses to create the ServiceNow POST JSON payloads when an alert sends a notification to ServiceNow. Use this optional field to send the values of Observability Cloud alert properties to specific fields in ServiceNow. See [API reference](https://dev.splunk.com/observability/reference/api/integrations/latest) for details.\n"},"enabled":{"type":"boolean","description":"Whether the integration is enabled.\n"},"instanceName":{"type":"string","description":"Name of the ServiceNow instance, for example `myinst.service-now.com`.\n"},"issueType":{"type":"string","description":"The type of issue in standard ITIL terminology. The allowed values are `Incident` and `Problem`.\n"},"name":{"type":"string","description":"Name of the integration.\n"},"password":{"type":"string","description":"Password used to authenticate the ServiceNow integration.\n","secret":true},"username":{"type":"string","description":"User name used to authenticate the ServiceNow integration.\n"}},"type":"object"}},"signalfx:slack/integration:Integration":{"description":"Slack integration.\n\n\u003e **NOTE** When managing integrations, use a session token of an administrator to authenticate the Splunk Observability Cloud provider. See [Operations that require a session token for an administrator](https://dev.splunk.com/observability/docs/administration/authtokens#Operations-that-require-a-session-token-for-an-administrator). Otherwise you'll receive a 4xx error.\n\n## Example\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as signalfx from \"@pulumi/signalfx\";\n\nconst slackMyteam = new signalfx.slack.Integration(\"slack_myteam\", {\n    name: \"Slack - My Team\",\n    enabled: true,\n    webhookUrl: \"http://example.com\",\n});\n```\n```python\nimport pulumi\nimport pulumi_signalfx as signalfx\n\nslack_myteam = signalfx.slack.Integration(\"slack_myteam\",\n    name=\"Slack - My Team\",\n    enabled=True,\n    webhook_url=\"http://example.com\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing SignalFx = Pulumi.SignalFx;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var slackMyteam = new SignalFx.Slack.Integration(\"slack_myteam\", new()\n    {\n        Name = \"Slack - My Team\",\n        Enabled = true,\n        WebhookUrl = \"http://example.com\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-signalfx/sdk/v7/go/signalfx/slack\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := slack.NewIntegration(ctx, \"slack_myteam\", \u0026slack.IntegrationArgs{\n\t\t\tName:       pulumi.String(\"Slack - My Team\"),\n\t\t\tEnabled:    pulumi.Bool(true),\n\t\t\tWebhookUrl: pulumi.String(\"http://example.com\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.signalfx.slack.Integration;\nimport com.pulumi.signalfx.slack.IntegrationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var slackMyteam = new Integration(\"slackMyteam\", IntegrationArgs.builder()\n            .name(\"Slack - My Team\")\n            .enabled(true)\n            .webhookUrl(\"http://example.com\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  slackMyteam:\n    type: signalfx:slack:Integration\n    name: slack_myteam\n    properties:\n      name: Slack - My Team\n      enabled: true\n      webhookUrl: http://example.com\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"enabled":{"type":"boolean","description":"Whether the integration is enabled.\n"},"name":{"type":"string","description":"Name of the integration.\n"},"webhookUrl":{"type":"string","description":"Slack incoming webhook URL.\n","secret":true}},"required":["enabled","name","webhookUrl"],"inputProperties":{"enabled":{"type":"boolean","description":"Whether the integration is enabled.\n"},"name":{"type":"string","description":"Name of the integration.\n"},"webhookUrl":{"type":"string","description":"Slack incoming webhook URL.\n","secret":true}},"requiredInputs":["enabled","webhookUrl"],"stateInputs":{"description":"Input properties used for looking up and filtering Integration resources.\n","properties":{"enabled":{"type":"boolean","description":"Whether the integration is enabled.\n"},"name":{"type":"string","description":"Name of the integration.\n"},"webhookUrl":{"type":"string","description":"Slack incoming webhook URL.\n","secret":true}},"type":"object"}},"signalfx:victorops/integration:Integration":{"description":"Splunk On-Call integrations.\n\n\u003e **NOTE** When managing integrations, use a session token of an administrator to authenticate the Splunk Observability Cloud provider. See [Operations that require a session token for an administrator](https://dev.splunk.com/observability/docs/administration/authtokens#Operations-that-require-a-session-token-for-an-administrator). Otherwise you'll receive a 4xx error.\n\n## Example\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as signalfx from \"@pulumi/signalfx\";\n\nconst vioctorOpsMyteam = new signalfx.victorops.Integration(\"vioctor_ops_myteam\", {\n    name: \"Splunk On-Call - My Team\",\n    enabled: true,\n    postUrl: \"https://alert.victorops.com/integrations/generic/1234/alert/$key/$routing_key\",\n});\n```\n```python\nimport pulumi\nimport pulumi_signalfx as signalfx\n\nvioctor_ops_myteam = signalfx.victorops.Integration(\"vioctor_ops_myteam\",\n    name=\"Splunk On-Call - My Team\",\n    enabled=True,\n    post_url=\"https://alert.victorops.com/integrations/generic/1234/alert/$key/$routing_key\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing SignalFx = Pulumi.SignalFx;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var vioctorOpsMyteam = new SignalFx.VictorOps.Integration(\"vioctor_ops_myteam\", new()\n    {\n        Name = \"Splunk On-Call - My Team\",\n        Enabled = true,\n        PostUrl = \"https://alert.victorops.com/integrations/generic/1234/alert/$key/$routing_key\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-signalfx/sdk/v7/go/signalfx/victorops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := victorops.NewIntegration(ctx, \"vioctor_ops_myteam\", \u0026victorops.IntegrationArgs{\n\t\t\tName:    pulumi.String(\"Splunk On-Call - My Team\"),\n\t\t\tEnabled: pulumi.Bool(true),\n\t\t\tPostUrl: pulumi.String(\"https://alert.victorops.com/integrations/generic/1234/alert/$key/$routing_key\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.signalfx.victorops.Integration;\nimport com.pulumi.signalfx.victorops.IntegrationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var vioctorOpsMyteam = new Integration(\"vioctorOpsMyteam\", IntegrationArgs.builder()\n            .name(\"Splunk On-Call - My Team\")\n            .enabled(true)\n            .postUrl(\"https://alert.victorops.com/integrations/generic/1234/alert/$key/$routing_key\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  vioctorOpsMyteam:\n    type: signalfx:victorops:Integration\n    name: vioctor_ops_myteam\n    properties:\n      name: Splunk On-Call - My Team\n      enabled: true\n      postUrl: https://alert.victorops.com/integrations/generic/1234/alert/$key/$routing_key\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"enabled":{"type":"boolean","description":"Whether the integration is enabled.\n"},"name":{"type":"string","description":"Name of the integration.\n"},"postUrl":{"type":"string","description":"Splunk On-Call REST API URL.\n"}},"required":["enabled","name"],"inputProperties":{"enabled":{"type":"boolean","description":"Whether the integration is enabled.\n"},"name":{"type":"string","description":"Name of the integration.\n"},"postUrl":{"type":"string","description":"Splunk On-Call REST API URL.\n"}},"requiredInputs":["enabled"],"stateInputs":{"description":"Input properties used for looking up and filtering Integration resources.\n","properties":{"enabled":{"type":"boolean","description":"Whether the integration is enabled.\n"},"name":{"type":"string","description":"Name of the integration.\n"},"postUrl":{"type":"string","description":"Splunk On-Call REST API URL.\n"}},"type":"object"}}},"functions":{"pulumi:providers:signalfx/terraformConfig":{"description":"This function returns a Terraform config object with terraform-namecased keys,to be used with the Terraform Module Provider.","inputs":{"properties":{"__self__":{"type":"ref","$ref":"#/provider"}},"type":"pulumi:providers:signalfx/terraformConfig","required":["__self__"]},"outputs":{"properties":{"result":{"additionalProperties":{"$ref":"pulumi.json#/Any"},"type":"object"}},"required":["result"],"type":"object"}},"signalfx:index/getDimensionValues:getDimensionValues":{"description":"This data sources allows for obtaining a list of dimension values by on query provided.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as signalfx from \"@pulumi/signalfx\";\nimport * as std from \"@pulumi/std\";\n\nconst mydashboardgroup0 = new signalfx.DashboardGroup(\"mydashboardgroup0\", {\n    name: \"My team dashboard group\",\n    description: \"Cool dashboard group\",\n});\nconst hosts = signalfx.getDimensionValues({\n    query: \"key:host\",\n});\nconst hostCharts: signalfx.TimeChart[] = [];\nfor (const range = {value: 0}; range.value \u003c std.index.toset({\n    input: hosts.values,\n}).result; range.value++) {\n    hostCharts.push(new signalfx.TimeChart(`host_charts-${range.value}`, {\n        name: `CPU Total Idle ${range.value}`,\n        plotType: \"ColumnChart\",\n        axesIncludeZero: true,\n        colorBy: \"Metric\",\n        programText: `A = data(\\\"cpu.idle\\\", filter('host', '${range.key}').publish(label=\\\"CPU\\\")\n`,\n    }));\n}\nconst mydashboard1 = new signalfx.Dashboard(\"mydashboard1\", {\n    name: \"My Dashboard\",\n    dashboardGroup: mydashboardgroup0.id,\n    timeRange: \"-30m\",\n    grids: [{\n        chartIds: std.index.toset({\n            input: hostCharts.map(v =\u003e (v.id)),\n        }).result,\n        width: 3,\n        height: 1,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_signalfx as signalfx\nimport pulumi_std as std\n\nmydashboardgroup0 = signalfx.DashboardGroup(\"mydashboardgroup0\",\n    name=\"My team dashboard group\",\n    description=\"Cool dashboard group\")\nhosts = signalfx.get_dimension_values(query=\"key:host\")\nhost_charts = []\nfor range in [{\"value\": i} for i in range(0, std.index.toset(input=hosts.values).result)]:\n    host_charts.append(signalfx.TimeChart(f\"host_charts-{range['value']}\",\n        name=f\"CPU Total Idle {range['value']}\",\n        plot_type=\"ColumnChart\",\n        axes_include_zero=True,\n        color_by=\"Metric\",\n        program_text=f\"A = data(\\\\\\\"cpu.idle\\\\\\\", filter('host', '{range['key']}').publish(label=\\\\\\\"CPU\\\\\\\")\\n\"))\nmydashboard1 = signalfx.Dashboard(\"mydashboard1\",\n    name=\"My Dashboard\",\n    dashboard_group=mydashboardgroup0.id,\n    time_range=\"-30m\",\n    grids=[{\n        \"chart_ids\": std.index.toset(input=[v.id for v in host_charts])[\"result\"],\n        \"width\": 3,\n        \"height\": 1,\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing SignalFx = Pulumi.SignalFx;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var mydashboardgroup0 = new SignalFx.DashboardGroup(\"mydashboardgroup0\", new()\n    {\n        Name = \"My team dashboard group\",\n        Description = \"Cool dashboard group\",\n    });\n\n    var hosts = SignalFx.GetDimensionValues.Invoke(new()\n    {\n        Query = \"key:host\",\n    });\n\n    var hostCharts = new List\u003cSignalFx.TimeChart\u003e();\n    for (var rangeIndex = 0; rangeIndex \u003c Std.Index.Toset.Invoke(new()\n    {\n        Input = hosts.Apply(getDimensionValuesResult =\u003e getDimensionValuesResult.Values),\n    }).Result; rangeIndex++)\n    {\n        var range = new { Value = rangeIndex };\n        hostCharts.Add(new SignalFx.TimeChart($\"host_charts-{range.Value}\", new()\n        {\n            Name = $\"CPU Total Idle {range.Value}\",\n            PlotType = \"ColumnChart\",\n            AxesIncludeZero = true,\n            ColorBy = \"Metric\",\n            ProgramText = @$\"A = data(\\\"\"cpu.idle\\\"\", filter('host', '{range.Key}').publish(label=\\\"\"CPU\\\"\")\n\",\n        }));\n    }\n    var mydashboard1 = new SignalFx.Dashboard(\"mydashboard1\", new()\n    {\n        Name = \"My Dashboard\",\n        DashboardGroup = mydashboardgroup0.Id,\n        TimeRange = \"-30m\",\n        Grids = new[]\n        {\n            new SignalFx.Inputs.DashboardGridArgs\n            {\n                ChartIds = Std.Index.Toset.Invoke(new()\n                {\n                    Input = hostCharts.Select(v =\u003e \n                    {\n                        return v.Id;\n                    }).ToList(),\n                }).Result,\n                Width = 3,\n                Height = 1,\n            },\n        },\n    });\n\n});\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getDimensionValues.\n","properties":{"limit":{"type":"integer","description":"This allows you to define how many dimensions are returned as the values output.\n"},"orderBy":{"type":"string"},"query":{"type":"string","description":"Acepts a query string that allows for defining a key value deintion, wild card matching on values, or where the dimension value exists. Refer to https://dev.splunk.com/observability/reference/api/metrics_metadata/latest#endpoint-retrieve-dimensions-query for more details\n"}},"type":"object","required":["query"]},"outputs":{"description":"A collection of values returned by getDimensionValues.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"limit":{"description":"This allows you to define how many dimensions are returned as the values output.\n","type":"integer"},"orderBy":{"type":"string"},"query":{"description":"Acepts a query string that allows for defining a key value deintion, wild card matching on values, or where the dimension value exists. Refer to https://dev.splunk.com/observability/reference/api/metrics_metadata/latest#endpoint-retrieve-dimensions-query for more details\n","type":"string"},"values":{"description":"List of all the match dimension values that the provided query, ordered by\u003cspan pulumi-lang-nodejs=\" orderBy \" pulumi-lang-dotnet=\" OrderBy \" pulumi-lang-go=\" orderBy \" pulumi-lang-python=\" order_by \" pulumi-lang-yaml=\" orderBy \" pulumi-lang-java=\" orderBy \"\u003e order_by \u003c/span\u003efield\n","items":{"type":"string"},"type":"array"}},"required":["query","values","id"],"type":"object"}},"signalfx:index/organizationMembers:OrganizationMembers":{"description":"Allows for members to be queried and used as part of other resources. Requires the supplied token to have Admin priviledges.\n","inputs":{"description":"A collection of arguments for invoking OrganizationMembers.\n","properties":{"emails":{"type":"array","items":{"type":"string"}}},"type":"object","required":["emails"]},"outputs":{"description":"A collection of values returned by OrganizationMembers.\n","properties":{"emails":{"items":{"type":"string"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"users":{"items":{"type":"string"},"type":"array"}},"required":["emails","users","id"],"type":"object"}},"signalfx:pagerduty/getIntegration:getIntegration":{"description":"Use this data source to fetch the PagerDuty integration details.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as signalfx from \"@pulumi/signalfx\";\n\nconst pdIntegration = signalfx.pagerduty.getIntegration({\n    name: \"PD-Integration\",\n});\n```\n```python\nimport pulumi\nimport pulumi_signalfx as signalfx\n\npd_integration = signalfx.pagerduty.get_integration(name=\"PD-Integration\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing SignalFx = Pulumi.SignalFx;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var pdIntegration = SignalFx.PagerDuty.GetIntegration.Invoke(new()\n    {\n        Name = \"PD-Integration\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-signalfx/sdk/v7/go/signalfx/pagerduty\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := pagerduty.LookupIntegration(ctx, \u0026pagerduty.LookupIntegrationArgs{\n\t\t\tName: \"PD-Integration\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.signalfx.pagerduty.PagerdutyFunctions;\nimport com.pulumi.signalfx.pagerduty.inputs.GetIntegrationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var pdIntegration = PagerdutyFunctions.getIntegration(GetIntegrationArgs.builder()\n            .name(\"PD-Integration\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  pdIntegration:\n    fn::invoke:\n      function: signalfx:pagerduty:getIntegration\n      arguments:\n        name: PD-Integration\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getIntegration.\n","properties":{"name":{"type":"string","description":"This is the configured name of the PagerDuty integration.\n"}},"type":"object","required":["name"]},"outputs":{"description":"A collection of values returned by getIntegration.\n","properties":{"enabled":{"description":"Whether the integration is currently enabled.\n","type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"name":{"description":"This is the configured name of the PagerDuty integration.\n","type":"string"}},"required":["enabled","name","id"],"type":"object"}}}}