{
  "name": "logdna",
  "version": "1.17.2",
  "description": "A Pulumi provider dynamically bridged from logdna.",
  "attribution": "This Pulumi package is based on the [`logdna` Terraform Provider](https://github.com/logdna/terraform-provider-logdna).",
  "repository": "https://github.com/logdna/terraform-provider-logdna",
  "publisher": "logdna",
  "meta": {
    "moduleFormat": "(.*)(?:/[^/]*)"
  },
  "language": {
    "csharp": {
      "compatibility": "tfbridge20",
      "liftSingleValueMethodReturns": true,
      "respectSchemaVersion": true
    },
    "go": {
      "generateExtraInputTypes": true,
      "importBasePath": "github.com/pulumi/pulumi-terraform-provider/sdks/go/logdna/logdna",
      "liftSingleValueMethodReturns": true,
      "respectSchemaVersion": true,
      "rootPackageName": "logdna"
    },
    "java": {
      "basePackage": "",
      "buildFiles": "",
      "gradleNexusPublishPluginVersion": "",
      "gradleTest": ""
    },
    "nodejs": {
      "compatibility": "tfbridge20",
      "disableUnionOutputTypes": true,
      "liftSingleValueMethodReturns": true,
      "packageDescription": "A Pulumi provider dynamically bridged from logdna.",
      "readme": "> This provider is a derived work of the [Terraform Provider](https://github.com/logdna/terraform-provider-logdna)\n> distributed under [MPL 2.0](https://www.mozilla.org/en-US/MPL/2.0/). If you encounter a bug or missing feature,\n> please consult the source [`terraform-provider-logdna` repo](https://github.com/logdna/terraform-provider-logdna/issues).",
      "respectSchemaVersion": true
    },
    "python": {
      "compatibility": "tfbridge20",
      "pyproject": {
        "enabled": true
      },
      "readme": "> This provider is a derived work of the [Terraform Provider](https://github.com/logdna/terraform-provider-logdna)\n> distributed under [MPL 2.0](https://www.mozilla.org/en-US/MPL/2.0/). If you encounter a bug or missing feature,\n> please consult the source [`terraform-provider-logdna` repo](https://github.com/logdna/terraform-provider-logdna/issues).",
      "respectSchemaVersion": true
    }
  },
  "config": {
    "variables": {
      "cloudResourceName": {
        "type": "string"
      },
      "iamtoken": {
        "type": "string"
      },
      "servicekey": {
        "type": "string"
      },
      "url": {
        "type": "string"
      }
    }
  },
  "types": {
    "logdna:index/AlertEmailChannel:AlertEmailChannel": {
      "properties": {
        "emails": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "**_[]string (Required)_** An array of email addresses (strings) to notify in the Alert\n"
        },
        "immediate": {
          "type": "string",
          "description": "**_string_** _(Optional; Default: `\"false\"`)_ If set to `\"true\"`, an alert will be sent immediately after the `triggerlimit` is met. For absence alerts, this field must be `\"false\"`. For presence alerts, at least one of `immediate` or `terminal` must be `\"true\"`.\n"
        },
        "operator": {
          "type": "string",
          "description": "**_string_** _(Optional; Default: `presence`)_ Whether the Alert will trigger on the presence or absence of logs. Valid options are `presence` and `absence`.\n"
        },
        "terminal": {
          "type": "string",
          "description": "**_string_** _(Optional; Default: `\"true\"`)_ If set to `\"true\"`, an alert will be sent after both the `triggerlimit` and `triggerinterval` are met. For absence alerts, this field must be `\"true\"`. For presence alerts, at least one of `immediate` or `terminal` must be `\"true\"`.\n"
        },
        "timezone": {
          "type": "string",
          "description": "**_string_** _(Optional)_ Which time zone the log timestamps will be formatted in. Timezones are represented as [database time zones](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones).\n"
        },
        "triggerinterval": {
          "type": "string",
          "description": "**_string_** _(Optional; Defaults: `\"30\"` for presence; `\"15m\"` for absence)_ Interval which the Alert will be looking for presence or absence of log lines. For presence Alerts, valid options are: `30`, `1m`, `5m`, `15m`, `30m`, `1h`, `6h`, `12h`, `24h`, and `25h`. For absence Alerts, valid options are: `1m`, `5m`, `15m`, `30m`, `1h`, `6h`, `12h`, `24h`, and `25h`.\n"
        },
        "triggerlimit": {
          "type": "number",
          "description": "**_integer (Required)_** Number of lines before the Alert is triggered (e.g. setting a value of `10` for an `absence` Alert would alert you if `10` lines were not seen in the `triggerinterval`).\n"
        }
      },
      "type": "object",
      "required": [
        "emails",
        "terminal",
        "triggerlimit"
      ]
    },
    "logdna:index/AlertPagerdutyChannel:AlertPagerdutyChannel": {
      "properties": {
        "autoresolve": {
          "type": "boolean",
          "description": "**_boolean_** Set to true if you want the set a condition to resolve the incident that was raised by this alert.\n"
        },
        "autoresolveinterval": {
          "type": "string",
          "description": "**_string_** _(Required if autoresolve is set to true)_ Interval of time to aggregate and check # of matched lines against the auto resolve limit. For absence Alerts, valid options are: `30`, `1m`, `5m`, `15m`, `30m`, `1h`, `6h`, `12h`, `24h`, and `25h`. For presence Alerts, valid options are: `15m`, `30m`, `1h`, `6h`, `12h`, `24h`, and `25h`.\n"
        },
        "autoresolvelimit": {
          "type": "number",
          "description": "**_integer_** _(Required if autoresolve is set to true)_ Specify the number of log lines that match the view's filtering and search criteria. When the number of log lines is reached, this incident will be set to resolved in PagerDuty.\n"
        },
        "immediate": {
          "type": "string",
          "description": "**_string_** _(Optional; Default: `\"false\"`)_ If set to `\"true\"`, an alert will be sent immediately after the `triggerlimit` is met. For absence alerts, this field must be `\"false\"`. For presence alerts, at least one of `immediate` or `terminal` must be `\"true\"`.\n"
        },
        "key": {
          "type": "string",
          "description": "**_string (Required)_** The PagerDuty service key.\n"
        },
        "operator": {
          "type": "string",
          "description": "**_string_** _(Optional; Default: `presence`)_ Whether the Alert will trigger on the presence or absence of logs. Valid options are `presence` and `absence`.\n"
        },
        "terminal": {
          "type": "string",
          "description": "**_string_** _(Optional; Default: `\"true\"`)_ If set to `\"true\"`, an alert will be sent after both the `triggerlimit` and `triggerinterval` are met. For absence alerts, this field must be `\"true\"`. For presence alerts, at least one of `immediate` or `terminal` must be `\"true\"`.\n"
        },
        "triggerinterval": {
          "type": "string",
          "description": "**_string_** _(Optional; Defaults: `\"30\"` for presence; `\"15m\"` for absence)_ Interval which the Alert will be looking for presence or absence of log lines. For presence Alerts, valid options are: `30`, `1m`, `5m`, `15m`, `30m`, `1h`, `6h`, `12h`, `24h`, and `25h`. For absence Alerts, valid options are: `1m`, `5m`, `15m`, `30m`, `1h`, `6h`, `12h`, `24h`, and `25h`.\n"
        },
        "triggerlimit": {
          "type": "number",
          "description": "**_integer (Required)_** Number of lines before the Alert is triggered (e.g. setting a value of `10` for an `absence` Alert would alert you if `10` lines were not seen in the `triggerinterval`).\n"
        }
      },
      "type": "object",
      "required": [
        "key",
        "triggerlimit"
      ]
    },
    "logdna:index/AlertSlackChannel:AlertSlackChannel": {
      "properties": {
        "immediate": {
          "type": "string",
          "description": "**_string_** _(Optional; Default: `\"false\"`)_ If set to `\"true\"`, an alert will be sent immediately after the `triggerlimit` is met. For absence alerts, this field must be `\"false\"`. For presence alerts, at least one of `immediate` or `terminal` must be `\"true\"`.\n"
        },
        "operator": {
          "type": "string",
          "description": "**_string_** _(Optional; Default: `presence`)_ Whether the Alert will trigger on the presence or absence of logs. Valid options are `presence` and `absence`.\n"
        },
        "terminal": {
          "type": "string",
          "description": "**_string_** _(Optional; Default: `\"true\"`)_ If set to `\"true\"`, an alert will be sent after both the `triggerlimit` and `triggerinterval` are met. For absence alerts, this field must be `\"true\"`. For presence alerts, at least one of `immediate` or `terminal` must be `\"true\"`.\n"
        },
        "triggerinterval": {
          "type": "string",
          "description": "**_string_** _(Optional; Defaults: `\"30\"` for presence; `\"15m\"` for absence)_ Interval which the Alert will be looking for presence or absence of log lines. For presence Alerts, valid options are: `30`, `1m`, `5m`, `15m`, `30m`, `1h`, `6h`, `12h`, `24h`, and `25h`. For absence Alerts, valid options are: `1m`, `5m`, `15m`, `30m`, `1h`, `6h`, `12h`, `24h`, and `25h`.\n"
        },
        "triggerlimit": {
          "type": "number",
          "description": "**_integer (Required)_** Number of lines before the Alert is triggered (e.g. setting a value of `10` for an `absence` Alert would alert you if `10` lines were not seen in the `triggerinterval`).\n"
        },
        "url": {
          "type": "string",
          "description": "**_string (Required)_** The URL of the webhook for a given Slack application/integration (& channel).\n"
        }
      },
      "type": "object",
      "required": [
        "triggerlimit",
        "url"
      ]
    },
    "logdna:index/AlertWebhookChannel:AlertWebhookChannel": {
      "properties": {
        "bodytemplate": {
          "type": "string"
        },
        "headers": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "**_map<string, string>** _(Optional)_ Key-value pair for webhook request headers and header values. Example: `\"MyHeader\" = \"MyValue\"`\n"
        },
        "immediate": {
          "type": "string",
          "description": "**_string_** _(Optional; Default: `\"false\"`)_ If set to `\"true\"`, an alert will be sent immediately after the `triggerlimit` is met. For absence alerts, this field must be `\"false\"`. For presence alerts, at least one of `immediate` or `terminal` must be `\"true\"`.\n"
        },
        "method": {
          "type": "string",
          "description": "**_string_** _(Optional; Default: `post`)_ Method used for the webhook request. Valid options are: `post`, `put`, `patch`, `get`, `delete`.\n"
        },
        "operator": {
          "type": "string",
          "description": "**_string_** _(Optional; Default: `presence`)_ Whether the Alert will trigger on the presence or absence of logs. Valid options are `presence` and `absence`.\n"
        },
        "terminal": {
          "type": "string",
          "description": "**_string_** _(Optional; Default: `\"true\"`)_ If set to `\"true\"`, an alert will be sent after both the `triggerlimit` and `triggerinterval` are met. For absence alerts, this field must be `\"true\"`. For presence alerts, at least one of `immediate` or `terminal` must be `\"true\"`.\n"
        },
        "triggerinterval": {
          "type": "string",
          "description": "**_string_** _(Optional; Defaults: `\"30\"` for presence; `\"15m\"` for absence)_ Interval which the Alert will be looking for presence or absence of log lines. For presence Alerts, valid options are: `30`, `1m`, `5m`, `15m`, `30m`, `1h`, `6h`, `12h`, `24h`, and `25h`. For absence Alerts, valid options are: `1m`, `5m`, `15m`, `30m`, `1h`, `6h`, `12h`, `24h`, and `25h`.\n"
        },
        "triggerlimit": {
          "type": "number",
          "description": "**_integer (Required)_** Number of lines before the Alert is triggered (e.g. setting a value of `10` for an `absence` Alert would alert you if `10` lines were not seen in the `triggerinterval`).\n"
        },
        "url": {
          "type": "string",
          "description": "**_string (Required)_** The URL of the webhook.\n"
        }
      },
      "type": "object",
      "required": [
        "triggerinterval",
        "triggerlimit",
        "url"
      ]
    },
    "logdna:index/ArchiveAzblobConfig:ArchiveAzblobConfig": {
      "properties": {
        "accountkey": {
          "type": "string",
          "description": "**string _(Required)_** Azure Blob Storage account access key\n"
        },
        "accountname": {
          "type": "string",
          "description": "**string _(Required)_** Azure Blob Storage account name\n"
        }
      },
      "type": "object",
      "required": [
        "accountkey",
        "accountname"
      ]
    },
    "logdna:index/ArchiveDosConfig:ArchiveDosConfig": {
      "properties": {
        "accesskey": {
          "type": "string",
          "description": "**string _(Required)_** DigitalOcean Spaces API access key\n"
        },
        "endpoint": {
          "type": "string",
          "description": "**string _(Required)_** DigitalOcean Spaces (region) endpoint\n"
        },
        "secretkey": {
          "type": "string",
          "description": "**string _(Required)_** DigitalOcean Spaces API secret key\n"
        },
        "space": {
          "type": "string",
          "description": "**string _(Required)_** DigitalOcean Spaces storage \"bucket\" name\n"
        }
      },
      "type": "object",
      "required": [
        "accesskey",
        "endpoint",
        "secretkey",
        "space"
      ]
    },
    "logdna:index/ArchiveGcsConfig:ArchiveGcsConfig": {
      "properties": {
        "bucket": {
          "type": "string",
          "description": "**string _(Required)_** Google Cloud Storage bucket name\n"
        },
        "projectid": {
          "type": "string",
          "description": "**string _(Required)_** Google Cloud project identifier\n"
        }
      },
      "type": "object",
      "required": [
        "bucket",
        "projectid"
      ]
    },
    "logdna:index/ArchiveIbmConfig:ArchiveIbmConfig": {
      "properties": {
        "apikey": {
          "type": "string",
          "description": "**string _(Required)_** IBM COS API key\n"
        },
        "bucket": {
          "type": "string",
          "description": "**string _(Required)_** IBM COS storage bucket name\n"
        },
        "endpoint": {
          "type": "string",
          "description": "**string _(Required)_** IBM COS public (region) endpoint\n"
        },
        "resourceinstanceid": {
          "type": "string",
          "description": "**string _(Required)_** IBM COS instance identifier\n"
        }
      },
      "type": "object",
      "required": [
        "apikey",
        "bucket",
        "endpoint",
        "resourceinstanceid"
      ]
    },
    "logdna:index/ArchiveS3Config:ArchiveS3Config": {
      "properties": {
        "bucket": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "bucket"
      ]
    },
    "logdna:index/ArchiveSwiftConfig:ArchiveSwiftConfig": {
      "properties": {
        "authurl": {
          "type": "string",
          "description": "**string _(Required)_** OpenStack Swift authentication URL\n"
        },
        "expires": {
          "type": "number",
          "description": "**_integer (Optional)_** OpenStack Swift storage object days till expiry\n"
        },
        "password": {
          "type": "string",
          "description": "**string _(Required)_** OpenStack Swift user password\n"
        },
        "tenantname": {
          "type": "string",
          "description": "**string _(Required)_** OpenStack Swift tenant/project/account name\n\nNote that the provided settings must be valid. The connection to\nthe archiving integration will be validated before the configuration\ncan be saved.\n"
        },
        "username": {
          "type": "string",
          "description": "**string _(Required)_** OpenStack Swift user name\n"
        }
      },
      "type": "object",
      "required": [
        "authurl",
        "password",
        "tenantname",
        "username"
      ]
    },
    "logdna:index/IndexRateAlertChannel:IndexRateAlertChannel": {
      "properties": {
        "emails": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "**_[]string_** An array of email addresses (strings) to notify\n"
        },
        "pagerduties": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "**_[]string_** An array of pagerduty service integration keys (strings) to notify\n"
        },
        "slacks": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "**_[]string_** An array of slack hook urls (strings) to notify\n"
        }
      },
      "type": "object"
    },
    "logdna:index/IndexRateAlertWebhookChannel:IndexRateAlertWebhookChannel": {
      "properties": {
        "bodytemplate": {
          "type": "string"
        },
        "headers": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "method": {
          "type": "string"
        },
        "url": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "method",
        "url"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "headers",
            "method",
            "url"
          ]
        }
      }
    },
    "logdna:index/ViewEmailChannel:ViewEmailChannel": {
      "properties": {
        "emails": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "**[]string _(Required)_** An array of email addresses (strings) to notify in the Alert\n"
        },
        "immediate": {
          "type": "string",
          "description": "**_string_** _(Optional; Default: `\"false\"`)_ If set to `\"true\"`, an alert will be sent immediately after the `triggerlimit` is met. For absence alerts, this field must be `\"false\"`. For presence alerts, at least one of `immediate` or `terminal` must be `\"true\"`.\n"
        },
        "operator": {
          "type": "string",
          "description": "**_string_** _(Optional; Defaults: `\"30\"` for presence; `\"15m\"` for absence)_ Whether the Alert will trigger on the presence or absence of logs. Valid options are `presence` and `absence`.\n"
        },
        "terminal": {
          "type": "string",
          "description": "**_string_** _(Optional; Default: `\"true\"`)_ If set to `\"true\"`, an alert will be sent after both the `triggerlimit` and `triggerinterval` are met. For absence alerts, this field must be `\"true\"`. For presence alerts, at least one of `immediate` or `terminal` must be `\"true\"`.\n"
        },
        "timezone": {
          "type": "string",
          "description": "**string** _(Optional)_ Which time zone the log timestamps will be formatted in. Timezones are represented as [database time zones](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones).\n"
        },
        "triggerinterval": {
          "type": "string",
          "description": "**_string_** _(Optional; Defaults: `\"30\"` for presence; `\"15m\"` for absence)_ Interval which the Alert will be looking for presence or absence of log lines. For presence Alerts, valid options are: `30`, `1m`, `5m`, `15m`, `30m`, `1h`, `6h`, `12h`, `24h`, and `25h`. For absence Alerts, valid options are: `1m`, `5m`, `15m`, `30m`, `1h`, `6h`, `12h`, `24h`, and `25h`.\n"
        },
        "triggerlimit": {
          "type": "number",
          "description": "**_integer (Required)_** Number of lines before the Alert is triggered (e.g. setting a value of `10` for an `absence` Alert would alert you if `10` lines were not seen in the `triggerinterval`).\n"
        }
      },
      "type": "object",
      "required": [
        "emails",
        "triggerlimit"
      ]
    },
    "logdna:index/ViewPagerdutyChannel:ViewPagerdutyChannel": {
      "properties": {
        "autoresolve": {
          "type": "boolean",
          "description": "**_boolean_** Set to true if you want the set a condition to resolve the incident that was raised by this alert.\n"
        },
        "autoresolveinterval": {
          "type": "string",
          "description": "**_string_** _(Required if autoresolve is set to true)_ Interval of time to aggregate and check # of matched lines against the auto resolve limit. Valid values are: 30 seconds, 1 minute, 5 minutes, 15 minutes, 30 minutes, 1 hour, 6 hours, 12 hours, 24 hours.\n"
        },
        "autoresolvelimit": {
          "type": "number",
          "description": "**_integer_** _(Required if autoresolve is set to true)_ Specify the number of log lines that match the view's filtering and search criteria. When the number of log lines is reached, this incident will be set to resolved in PagerDuty.\n"
        },
        "immediate": {
          "type": "string",
          "description": "**_string_** _(Optional; Default: `\"false\"`)_ If set to `\"true\"`, an alert will be sent immediately after the `triggerlimit` is met. For absence alerts, this field must be `\"false\"`. For presence alerts, at least one of `immediate` or `terminal` must be `\"true\"`.\n"
        },
        "key": {
          "type": "string",
          "description": "**string _(Required)_** The service key used for PagerDuty.\n"
        },
        "operator": {
          "type": "string",
          "description": "**_string_** _(Optional; Default: `presence`)_ Whether the Alert will trigger on the presence or absence of logs. Valid options are `presence` and `absence`.\n"
        },
        "terminal": {
          "type": "string",
          "description": "**_string_** _(Optional; Default: `\"true\"`)_ If set to `\"true\"`, an alert will be sent after both the `triggerlimit` and `triggerinterval` are met. For absence alerts, this field must be `\"true\"`. For presence alerts, at least one of `immediate` or `terminal` must be `\"true\"`.\n"
        },
        "triggerinterval": {
          "type": "string",
          "description": "**_string_** _(Optional; Defaults: `\"30\"` for presence; `\"15m\"` for absence)_ Interval which the Alert will be looking for presence or absence of log lines. For presence Alerts, valid options are: `30`, `1m`, `5m`, `15m`, `30m`, `1h`, `6h`, `12h`, `24h`, and `25h`. For absence Alerts, valid options are: `1m`, `5m`, `15m`, `30m`, `1h`, `6h`, `12h`, `24h`, and `25h`.\n"
        },
        "triggerlimit": {
          "type": "number",
          "description": "**_integer (Required)_** Number of lines before the Alert is triggered (e.g. setting a value of `10` for an `absence` Alert would alert you if `10` lines were not seen in the `triggerinterval`).\n"
        }
      },
      "type": "object",
      "required": [
        "key",
        "triggerlimit"
      ]
    },
    "logdna:index/ViewSlackChannel:ViewSlackChannel": {
      "properties": {
        "immediate": {
          "type": "string",
          "description": "**_string_** _(Optional; Default: `\"false\"`)_ If set to `\"true\"`, an alert will be sent immediately after the `triggerlimit` is met. For absence alerts, this field must be `\"false\"`. For presence alerts, at least one of `immediate` or `terminal` must be `\"true\"`.\n"
        },
        "operator": {
          "type": "string",
          "description": "**_string_** _(Optional; Default: `presence`)_ Whether the Alert will trigger on the presence or absence of logs. Valid options are `presence` and `absence`.\n"
        },
        "terminal": {
          "type": "string",
          "description": "**_string_** _(Optional; Default: `\"true\"`)_ If set to `\"true\"`, an alert will be sent after both the `triggerlimit` and `triggerinterval` are met. For absence alerts, this field must be `\"true\"`. For presence alerts, at least one of `immediate` or `terminal` must be `\"true\"`.\n"
        },
        "triggerinterval": {
          "type": "string",
          "description": "**_string_** _(Optional; Defaults: `\"30\"` for presence; `\"15m\"` for absence)_ Interval which the Alert will be looking for presence or absence of log lines. For presence Alerts, valid options are: `30`, `1m`, `5m`, `15m`, `30m`, `1h`, `6h`, `12h`, `24h`, and `25h`. For absence Alerts, valid options are: `1m`, `5m`, `15m`, `30m`, `1h`, `6h`, `12h`, `24h`, and `25h`.\n"
        },
        "triggerlimit": {
          "type": "number",
          "description": "**_integer (Required)_** Number of lines before the Alert is triggered (e.g. setting a value of `10` for an `absence` Alert would alert you if `10` lines were not seen in the `triggerinterval`).\n"
        },
        "url": {
          "type": "string",
          "description": "**_string (Required)_** The URL of the webhook for a given Slack application/integration (& channel).\n"
        }
      },
      "type": "object",
      "required": [
        "triggerlimit",
        "url"
      ]
    },
    "logdna:index/ViewWebhookChannel:ViewWebhookChannel": {
      "properties": {
        "bodytemplate": {
          "type": "string"
        },
        "headers": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "**_map<string, string>** _(Optional)_ Key-value pair for webhook request headers and header values. Example: `\"MyHeader\" = \"MyValue\"`\n"
        },
        "immediate": {
          "type": "string",
          "description": "**_string_** _(Optional; Default: `\"false\"`)_ If set to `\"true\"`, an alert will be sent immediately after the `triggerlimit` is met. For absence alerts, this field must be `\"false\"`. For presence alerts, at least one of `immediate` or `terminal` must be `\"true\"`.\n"
        },
        "method": {
          "type": "string",
          "description": "**_string_** _(Optional; Default: `post`)_ Method used for the webhook request. Valid options are: `post`, `put`, `patch`, `get`, `delete`.\n"
        },
        "operator": {
          "type": "string",
          "description": "**_string_** _(Optional; Default: `presence`)_ Whether the Alert will trigger on the presence or absence of logs. Valid options are `presence` and `absence`.\n"
        },
        "terminal": {
          "type": "string",
          "description": "**_string_** _(Optional; Default: `\"true\"`)_ If set to `\"true\"`, an alert will be sent after both the `triggerlimit` and `triggerinterval` are met. For absence alerts, this field must be `\"true\"`. For presence alerts, at least one of `immediate` or `terminal` must be `\"true\"`.\n"
        },
        "triggerinterval": {
          "type": "string",
          "description": "**_string_** _(Optional; Defaults: `\"30\"` for presence; `\"15m\"` for absence)_ Interval which the Alert will be looking for presence or absence of log lines. For presence Alerts, valid options are: `30`, `1m`, `5m`, `15m`, `30m`, `1h`, `6h`, `12h`, `24h`, and `25h`. For absence Alerts, valid options are: `1m`, `5m`, `15m`, `30m`, `1h`, `6h`, `12h`, `24h`, and `25h`.\n"
        },
        "triggerlimit": {
          "type": "number",
          "description": "**_integer (Required)_** Number of lines before the Alert is triggered. (eg. Setting a value of `10` for an `absence` Alert would alert you if `10` lines were not seen in the `triggerinterval`)\n"
        },
        "url": {
          "type": "string",
          "description": "**_string (Required)_** The URL of the webhook.\n"
        }
      },
      "type": "object",
      "required": [
        "triggerlimit",
        "url"
      ]
    },
    "logdna:index/getAlertEmailChannel:getAlertEmailChannel": {
      "properties": {
        "emails": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "immediate": {
          "type": "string"
        },
        "operator": {
          "type": "string"
        },
        "terminal": {
          "type": "string"
        },
        "timezone": {
          "type": "string"
        },
        "triggerinterval": {
          "type": "string"
        },
        "triggerlimit": {
          "type": "number"
        }
      },
      "type": "object",
      "required": [
        "emails",
        "immediate",
        "operator",
        "terminal",
        "timezone",
        "triggerinterval",
        "triggerlimit"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "logdna:index/getAlertPagerdutyChannel:getAlertPagerdutyChannel": {
      "properties": {
        "autoresolve": {
          "type": "boolean"
        },
        "autoresolveinterval": {
          "type": "string"
        },
        "autoresolvelimit": {
          "type": "number"
        },
        "immediate": {
          "type": "string"
        },
        "key": {
          "type": "string"
        },
        "operator": {
          "type": "string"
        },
        "terminal": {
          "type": "string"
        },
        "triggerinterval": {
          "type": "string"
        },
        "triggerlimit": {
          "type": "number"
        }
      },
      "type": "object",
      "required": [
        "autoresolve",
        "autoresolveinterval",
        "autoresolvelimit",
        "immediate",
        "key",
        "operator",
        "terminal",
        "triggerinterval",
        "triggerlimit"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "logdna:index/getAlertSlackChannel:getAlertSlackChannel": {
      "properties": {
        "immediate": {
          "type": "string"
        },
        "operator": {
          "type": "string"
        },
        "terminal": {
          "type": "string"
        },
        "triggerinterval": {
          "type": "string"
        },
        "triggerlimit": {
          "type": "number"
        },
        "url": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "immediate",
        "operator",
        "terminal",
        "triggerinterval",
        "triggerlimit",
        "url"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "logdna:index/getAlertWebhookChannel:getAlertWebhookChannel": {
      "properties": {
        "bodytemplate": {
          "type": "string"
        },
        "headers": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "immediate": {
          "type": "string"
        },
        "method": {
          "type": "string"
        },
        "operator": {
          "type": "string"
        },
        "terminal": {
          "type": "string"
        },
        "triggerinterval": {
          "type": "string"
        },
        "triggerlimit": {
          "type": "number"
        },
        "url": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "bodytemplate",
        "headers",
        "immediate",
        "method",
        "operator",
        "terminal",
        "triggerinterval",
        "triggerlimit",
        "url"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    }
  },
  "provider": {
    "description": "The provider type for the logdna 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": {
      "cloudResourceName": {
        "type": "string"
      },
      "iamtoken": {
        "type": "string"
      },
      "servicekey": {
        "type": "string"
      },
      "url": {
        "type": "string"
      }
    },
    "type": "object",
    "inputProperties": {
      "cloudResourceName": {
        "type": "string"
      },
      "iamtoken": {
        "type": "string"
      },
      "servicekey": {
        "type": "string"
      },
      "url": {
        "type": "string"
      }
    }
  },
  "resources": {
    "logdna:index/alert:Alert": {
      "description": "## # Resource: `logdna.Alert`\n\nManages [LogDNA Preset Alerts](https://docs.logdna.com/docs/alerts). Preset Alerts are alerts that you can define separately from a specific View. Preset Alerts can be created standalone and then attached (or detached) to any View, as opposed to View-specific Alerts, which are created specifically for a certain View.\n\nTo get started, all you need to do is to specify a `name` and configuration for one of our currently supported alerts: email, webhook, or PagerDuty.\n\n## Example - Basic Preset Alert\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as logdna from \"@pulumi/logdna\";\n\nconst myAlert = new logdna.Alert(\"myAlert\", {emailChannels: [{\n    emails: [\"test@logdna.com\"],\n    immediate: \"false\",\n    operator: \"presence\",\n    terminal: \"true\",\n    timezone: \"Pacific/Samoa\",\n    triggerinterval: \"15m\",\n    triggerlimit: 15,\n}]});\n```\n```python\nimport pulumi\nimport pulumi_logdna as logdna\n\nmy_alert = logdna.Alert(\"myAlert\", email_channels=[{\n    \"emails\": [\"test@logdna.com\"],\n    \"immediate\": \"false\",\n    \"operator\": \"presence\",\n    \"terminal\": \"true\",\n    \"timezone\": \"Pacific/Samoa\",\n    \"triggerinterval\": \"15m\",\n    \"triggerlimit\": 15,\n}])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Logdna = Pulumi.Logdna;\n\nreturn await Deployment.RunAsync(() => \n{\n    var myAlert = new Logdna.Alert(\"myAlert\", new()\n    {\n        EmailChannels = new[]\n        {\n            new Logdna.Inputs.AlertEmailChannelArgs\n            {\n                Emails = new[]\n                {\n                    \"test@logdna.com\",\n                },\n                Immediate = \"false\",\n                Operator = \"presence\",\n                Terminal = \"true\",\n                Timezone = \"Pacific/Samoa\",\n                Triggerinterval = \"15m\",\n                Triggerlimit = 15,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/logdna/logdna\"\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 := logdna.NewAlert(ctx, \"myAlert\", &logdna.AlertArgs{\n\t\t\tEmailChannels: logdna.AlertEmailChannelArray{\n\t\t\t\t&logdna.AlertEmailChannelArgs{\n\t\t\t\t\tEmails: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"test@logdna.com\"),\n\t\t\t\t\t},\n\t\t\t\t\tImmediate:       pulumi.String(\"false\"),\n\t\t\t\t\tOperator:        pulumi.String(\"presence\"),\n\t\t\t\t\tTerminal:        pulumi.String(\"true\"),\n\t\t\t\t\tTimezone:        pulumi.String(\"Pacific/Samoa\"),\n\t\t\t\t\tTriggerinterval: pulumi.String(\"15m\"),\n\t\t\t\t\tTriggerlimit:    pulumi.Float64(15),\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.logdna.Alert;\nimport com.pulumi.logdna.AlertArgs;\nimport com.pulumi.logdna.inputs.AlertEmailChannelArgs;\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 myAlert = new Alert(\"myAlert\", AlertArgs.builder()\n            .emailChannels(AlertEmailChannelArgs.builder()\n                .emails(\"test@logdna.com\")\n                .immediate(\"false\")\n                .operator(\"presence\")\n                .terminal(\"true\")\n                .timezone(\"Pacific/Samoa\")\n                .triggerinterval(\"15m\")\n                .triggerlimit(15)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  myAlert:\n    type: logdna:Alert\n    properties:\n      emailChannels:\n        - emails:\n            - test@logdna.com\n          immediate: 'false'\n          operator: presence\n          terminal: 'true'\n          timezone: Pacific/Samoa\n          triggerinterval: 15m\n          triggerlimit: 15\n```\n<!--End PulumiCodeChooser -->\n\n## Example - Multi-channel Preset Alert\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as logdna from \"@pulumi/logdna\";\n\nconst myAlert = new logdna.Alert(\"myAlert\", {\n    emailChannels: [{\n        emails: [\"test@logdna.com\"],\n        immediate: \"false\",\n        operator: \"absence\",\n        terminal: \"true\",\n        timezone: \"Pacific/Samoa\",\n        triggerinterval: \"15m\",\n        triggerlimit: 15,\n    }],\n    pagerdutyChannels: [{\n        immediate: \"true\",\n        key: \"Your PagerDuty API key goes here\",\n        terminal: \"true\",\n        triggerinterval: \"15m\",\n        triggerlimit: 15,\n        autoresolve: true,\n        autoresolvelimit: 10,\n        autoresolveinterval: \"15m\",\n    }],\n    slackChannels: [{\n        immediate: \"false\",\n        operator: \"absence\",\n        terminal: \"true\",\n        triggerinterval: \"15m\",\n        triggerlimit: 15,\n        url: \"https://hooks.slack.com/services/identifier/secret\",\n    }],\n    webhookChannels: [{\n        bodytemplate: JSON.stringify({\n            message: \"Alerts from {{name}}\",\n        }),\n        headers: {\n            Authentication: \"auth_header_value\",\n            HeaderTwo: \"ValueTwo\",\n        },\n        immediate: \"false\",\n        method: \"post\",\n        terminal: \"true\",\n        triggerinterval: \"15m\",\n        triggerlimit: 15,\n        url: \"https://yourwebhook/endpoint\",\n    }],\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_logdna as logdna\n\nmy_alert = logdna.Alert(\"myAlert\",\n    email_channels=[{\n        \"emails\": [\"test@logdna.com\"],\n        \"immediate\": \"false\",\n        \"operator\": \"absence\",\n        \"terminal\": \"true\",\n        \"timezone\": \"Pacific/Samoa\",\n        \"triggerinterval\": \"15m\",\n        \"triggerlimit\": 15,\n    }],\n    pagerduty_channels=[{\n        \"immediate\": \"true\",\n        \"key\": \"Your PagerDuty API key goes here\",\n        \"terminal\": \"true\",\n        \"triggerinterval\": \"15m\",\n        \"triggerlimit\": 15,\n        \"autoresolve\": True,\n        \"autoresolvelimit\": 10,\n        \"autoresolveinterval\": \"15m\",\n    }],\n    slack_channels=[{\n        \"immediate\": \"false\",\n        \"operator\": \"absence\",\n        \"terminal\": \"true\",\n        \"triggerinterval\": \"15m\",\n        \"triggerlimit\": 15,\n        \"url\": \"https://hooks.slack.com/services/identifier/secret\",\n    }],\n    webhook_channels=[{\n        \"bodytemplate\": json.dumps({\n            \"message\": \"Alerts from {{name}}\",\n        }),\n        \"headers\": {\n            \"Authentication\": \"auth_header_value\",\n            \"HeaderTwo\": \"ValueTwo\",\n        },\n        \"immediate\": \"false\",\n        \"method\": \"post\",\n        \"terminal\": \"true\",\n        \"triggerinterval\": \"15m\",\n        \"triggerlimit\": 15,\n        \"url\": \"https://yourwebhook/endpoint\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing Logdna = Pulumi.Logdna;\n\nreturn await Deployment.RunAsync(() => \n{\n    var myAlert = new Logdna.Alert(\"myAlert\", new()\n    {\n        EmailChannels = new[]\n        {\n            new Logdna.Inputs.AlertEmailChannelArgs\n            {\n                Emails = new[]\n                {\n                    \"test@logdna.com\",\n                },\n                Immediate = \"false\",\n                Operator = \"absence\",\n                Terminal = \"true\",\n                Timezone = \"Pacific/Samoa\",\n                Triggerinterval = \"15m\",\n                Triggerlimit = 15,\n            },\n        },\n        PagerdutyChannels = new[]\n        {\n            new Logdna.Inputs.AlertPagerdutyChannelArgs\n            {\n                Immediate = \"true\",\n                Key = \"Your PagerDuty API key goes here\",\n                Terminal = \"true\",\n                Triggerinterval = \"15m\",\n                Triggerlimit = 15,\n                Autoresolve = true,\n                Autoresolvelimit = 10,\n                Autoresolveinterval = \"15m\",\n            },\n        },\n        SlackChannels = new[]\n        {\n            new Logdna.Inputs.AlertSlackChannelArgs\n            {\n                Immediate = \"false\",\n                Operator = \"absence\",\n                Terminal = \"true\",\n                Triggerinterval = \"15m\",\n                Triggerlimit = 15,\n                Url = \"https://hooks.slack.com/services/identifier/secret\",\n            },\n        },\n        WebhookChannels = new[]\n        {\n            new Logdna.Inputs.AlertWebhookChannelArgs\n            {\n                Bodytemplate = JsonSerializer.Serialize(new Dictionary<string, object?>\n                {\n                    [\"message\"] = \"Alerts from {{name}}\",\n                }),\n                Headers = \n                {\n                    { \"Authentication\", \"auth_header_value\" },\n                    { \"HeaderTwo\", \"ValueTwo\" },\n                },\n                Immediate = \"false\",\n                Method = \"post\",\n                Terminal = \"true\",\n                Triggerinterval = \"15m\",\n                Triggerlimit = 15,\n                Url = \"https://yourwebhook/endpoint\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/logdna/logdna\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\"message\": \"Alerts from {{name}}\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson0 := string(tmpJSON0)\n\t\t_, err = logdna.NewAlert(ctx, \"myAlert\", &logdna.AlertArgs{\n\t\t\tEmailChannels: logdna.AlertEmailChannelArray{\n\t\t\t\t&logdna.AlertEmailChannelArgs{\n\t\t\t\t\tEmails: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"test@logdna.com\"),\n\t\t\t\t\t},\n\t\t\t\t\tImmediate:       pulumi.String(\"false\"),\n\t\t\t\t\tOperator:        pulumi.String(\"absence\"),\n\t\t\t\t\tTerminal:        pulumi.String(\"true\"),\n\t\t\t\t\tTimezone:        pulumi.String(\"Pacific/Samoa\"),\n\t\t\t\t\tTriggerinterval: pulumi.String(\"15m\"),\n\t\t\t\t\tTriggerlimit:    pulumi.Float64(15),\n\t\t\t\t},\n\t\t\t},\n\t\t\tPagerdutyChannels: logdna.AlertPagerdutyChannelArray{\n\t\t\t\t&logdna.AlertPagerdutyChannelArgs{\n\t\t\t\t\tImmediate:           pulumi.String(\"true\"),\n\t\t\t\t\tKey:                 pulumi.String(\"Your PagerDuty API key goes here\"),\n\t\t\t\t\tTerminal:            pulumi.String(\"true\"),\n\t\t\t\t\tTriggerinterval:     pulumi.String(\"15m\"),\n\t\t\t\t\tTriggerlimit:        pulumi.Float64(15),\n\t\t\t\t\tAutoresolve:         pulumi.Bool(true),\n\t\t\t\t\tAutoresolvelimit:    pulumi.Float64(10),\n\t\t\t\t\tAutoresolveinterval: pulumi.String(\"15m\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tSlackChannels: logdna.AlertSlackChannelArray{\n\t\t\t\t&logdna.AlertSlackChannelArgs{\n\t\t\t\t\tImmediate:       pulumi.String(\"false\"),\n\t\t\t\t\tOperator:        pulumi.String(\"absence\"),\n\t\t\t\t\tTerminal:        pulumi.String(\"true\"),\n\t\t\t\t\tTriggerinterval: pulumi.String(\"15m\"),\n\t\t\t\t\tTriggerlimit:    pulumi.Float64(15),\n\t\t\t\t\tUrl:             pulumi.String(\"https://hooks.slack.com/services/identifier/secret\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tWebhookChannels: logdna.AlertWebhookChannelArray{\n\t\t\t\t&logdna.AlertWebhookChannelArgs{\n\t\t\t\t\tBodytemplate: pulumi.String(json0),\n\t\t\t\t\tHeaders: pulumi.StringMap{\n\t\t\t\t\t\t\"Authentication\": pulumi.String(\"auth_header_value\"),\n\t\t\t\t\t\t\"HeaderTwo\":      pulumi.String(\"ValueTwo\"),\n\t\t\t\t\t},\n\t\t\t\t\tImmediate:       pulumi.String(\"false\"),\n\t\t\t\t\tMethod:          pulumi.String(\"post\"),\n\t\t\t\t\tTerminal:        pulumi.String(\"true\"),\n\t\t\t\t\tTriggerinterval: pulumi.String(\"15m\"),\n\t\t\t\t\tTriggerlimit:    pulumi.Float64(15),\n\t\t\t\t\tUrl:             pulumi.String(\"https://yourwebhook/endpoint\"),\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.logdna.Alert;\nimport com.pulumi.logdna.AlertArgs;\nimport com.pulumi.logdna.inputs.AlertEmailChannelArgs;\nimport com.pulumi.logdna.inputs.AlertPagerdutyChannelArgs;\nimport com.pulumi.logdna.inputs.AlertSlackChannelArgs;\nimport com.pulumi.logdna.inputs.AlertWebhookChannelArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\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 myAlert = new Alert(\"myAlert\", AlertArgs.builder()\n            .emailChannels(AlertEmailChannelArgs.builder()\n                .emails(\"test@logdna.com\")\n                .immediate(\"false\")\n                .operator(\"absence\")\n                .terminal(\"true\")\n                .timezone(\"Pacific/Samoa\")\n                .triggerinterval(\"15m\")\n                .triggerlimit(15)\n                .build())\n            .pagerdutyChannels(AlertPagerdutyChannelArgs.builder()\n                .immediate(\"true\")\n                .key(\"Your PagerDuty API key goes here\")\n                .terminal(\"true\")\n                .triggerinterval(\"15m\")\n                .triggerlimit(15)\n                .autoresolve(true)\n                .autoresolvelimit(10)\n                .autoresolveinterval(\"15m\")\n                .build())\n            .slackChannels(AlertSlackChannelArgs.builder()\n                .immediate(\"false\")\n                .operator(\"absence\")\n                .terminal(\"true\")\n                .triggerinterval(\"15m\")\n                .triggerlimit(15)\n                .url(\"https://hooks.slack.com/services/identifier/secret\")\n                .build())\n            .webhookChannels(AlertWebhookChannelArgs.builder()\n                .bodytemplate(serializeJson(\n                    jsonObject(\n                        jsonProperty(\"message\", \"Alerts from {{name}}\")\n                    )))\n                .headers(Map.ofEntries(\n                    Map.entry(\"Authentication\", \"auth_header_value\"),\n                    Map.entry(\"HeaderTwo\", \"ValueTwo\")\n                ))\n                .immediate(\"false\")\n                .method(\"post\")\n                .terminal(\"true\")\n                .triggerinterval(\"15m\")\n                .triggerlimit(15)\n                .url(\"https://yourwebhook/endpoint\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  myAlert:\n    type: logdna:Alert\n    properties:\n      emailChannels:\n        - emails:\n            - test@logdna.com\n          immediate: 'false'\n          operator: absence\n          terminal: 'true'\n          timezone: Pacific/Samoa\n          triggerinterval: 15m\n          triggerlimit: 15\n      pagerdutyChannels:\n        - immediate: 'true'\n          key: Your PagerDuty API key goes here\n          terminal: 'true'\n          triggerinterval: 15m\n          triggerlimit: 15\n          autoresolve: true\n          autoresolvelimit: 10\n          autoresolveinterval: 15m\n      slackChannels:\n        - immediate: 'false'\n          operator: absence\n          terminal: 'true'\n          triggerinterval: 15m\n          triggerlimit: 15\n          url: https://hooks.slack.com/services/identifier/secret\n      webhookChannels:\n        - bodytemplate:\n            fn::toJSON:\n              message: Alerts from {{name}}\n          headers:\n            Authentication: auth_header_value\n            HeaderTwo: ValueTwo\n          immediate: 'false'\n          method: post\n          terminal: 'true'\n          triggerinterval: 15m\n          triggerlimit: 15\n          url: https://yourwebhook/endpoint\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nPreset Alerts can be imported by `presetid`, which can be found using the [List Preset Alerts API](https://docs.logdna.com/reference/list-alerts):\n\n1. Custom HTTP Headers - `servicekey: <SERVICE_KEY>` or `apikey: <SERVICE_KEY>`\n\ncurl --request GET \\\n\n     --url <API_URL>/v1/config/presetalert \\\n\n     --header 'Accept: application/json' \\\n\n     --header 'servicekey: <SERVICE_KEY>'\n\n2. Basic Auth - `Authorization: Basic <encodeInBase64(credentials)>`.<br />\n\nCredentials is a string composed of formatted as `<username>:<password>`, our usage here entails substituting `<SERVICE_KEY>` as the username and leaving the password blank. The colon separator should still included in the resulting string `<SERVICE_KEY>:`\n\ncurl --request GET \\\n\n     --url <API_URL>/v1/config/presetalert \\\n\n     --header 'Accept: application/json' \\\n\n     --header 'Authorization: Basic <BASE_64_ENCODED_CREDENTIALS>'\n\n```sh\n$ pulumi import logdna:index/alert:Alert your-alert-name <presetid>\n```\n\nNote that only the alert channels supported by this provider will be imported.\n\n",
      "properties": {
        "alertId": {
          "type": "string"
        },
        "emailChannels": {
          "type": "array",
          "items": {
            "$ref": "#/types/logdna:index%2FAlertEmailChannel:AlertEmailChannel"
          }
        },
        "name": {
          "type": "string",
          "description": "The name this Preset Alert will be given, type _string_\n"
        },
        "pagerdutyChannels": {
          "type": "array",
          "items": {
            "$ref": "#/types/logdna:index%2FAlertPagerdutyChannel:AlertPagerdutyChannel"
          }
        },
        "slackChannels": {
          "type": "array",
          "items": {
            "$ref": "#/types/logdna:index%2FAlertSlackChannel:AlertSlackChannel"
          }
        },
        "webhookChannels": {
          "type": "array",
          "items": {
            "$ref": "#/types/logdna:index%2FAlertWebhookChannel:AlertWebhookChannel"
          }
        }
      },
      "type": "object",
      "required": [
        "alertId",
        "name"
      ],
      "inputProperties": {
        "alertId": {
          "type": "string"
        },
        "emailChannels": {
          "type": "array",
          "items": {
            "$ref": "#/types/logdna:index%2FAlertEmailChannel:AlertEmailChannel"
          }
        },
        "name": {
          "type": "string",
          "description": "The name this Preset Alert will be given, type _string_\n"
        },
        "pagerdutyChannels": {
          "type": "array",
          "items": {
            "$ref": "#/types/logdna:index%2FAlertPagerdutyChannel:AlertPagerdutyChannel"
          }
        },
        "slackChannels": {
          "type": "array",
          "items": {
            "$ref": "#/types/logdna:index%2FAlertSlackChannel:AlertSlackChannel"
          }
        },
        "webhookChannels": {
          "type": "array",
          "items": {
            "$ref": "#/types/logdna:index%2FAlertWebhookChannel:AlertWebhookChannel"
          }
        }
      },
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Alert resources.\n",
        "properties": {
          "alertId": {
            "type": "string"
          },
          "emailChannels": {
            "type": "array",
            "items": {
              "$ref": "#/types/logdna:index%2FAlertEmailChannel:AlertEmailChannel"
            }
          },
          "name": {
            "type": "string",
            "description": "The name this Preset Alert will be given, type _string_\n"
          },
          "pagerdutyChannels": {
            "type": "array",
            "items": {
              "$ref": "#/types/logdna:index%2FAlertPagerdutyChannel:AlertPagerdutyChannel"
            }
          },
          "slackChannels": {
            "type": "array",
            "items": {
              "$ref": "#/types/logdna:index%2FAlertSlackChannel:AlertSlackChannel"
            }
          },
          "webhookChannels": {
            "type": "array",
            "items": {
              "$ref": "#/types/logdna:index%2FAlertWebhookChannel:AlertWebhookChannel"
            }
          }
        },
        "type": "object"
      }
    },
    "logdna:index/archive:Archive": {
      "description": "## # Resource: `logdna.Archive`\n\nManages [LogDNA Archiving](https://docs.logdna.com/docs/archiving) configuration for an account.\n\n## Example IBM COS Archive\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as logdna from \"@pulumi/logdna\";\n\nconst config = new logdna.Archive(\"config\", {\n    ibmConfig: {\n        apikey: \"key\",\n        bucket: \"example\",\n        endpoint: \"example.com\",\n        resourceinstanceid: \"id\",\n    },\n    integration: \"ibm\",\n});\n```\n```python\nimport pulumi\nimport pulumi_logdna as logdna\n\nconfig = logdna.Archive(\"config\",\n    ibm_config={\n        \"apikey\": \"key\",\n        \"bucket\": \"example\",\n        \"endpoint\": \"example.com\",\n        \"resourceinstanceid\": \"id\",\n    },\n    integration=\"ibm\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Logdna = Pulumi.Logdna;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Logdna.Archive(\"config\", new()\n    {\n        IbmConfig = new Logdna.Inputs.ArchiveIbmConfigArgs\n        {\n            Apikey = \"key\",\n            Bucket = \"example\",\n            Endpoint = \"example.com\",\n            Resourceinstanceid = \"id\",\n        },\n        Integration = \"ibm\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/logdna/logdna\"\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 := logdna.NewArchive(ctx, \"config\", &logdna.ArchiveArgs{\n\t\t\tIbmConfig: &logdna.ArchiveIbmConfigArgs{\n\t\t\t\tApikey:             pulumi.String(\"key\"),\n\t\t\t\tBucket:             pulumi.String(\"example\"),\n\t\t\t\tEndpoint:           pulumi.String(\"example.com\"),\n\t\t\t\tResourceinstanceid: pulumi.String(\"id\"),\n\t\t\t},\n\t\t\tIntegration: pulumi.String(\"ibm\"),\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.logdna.Archive;\nimport com.pulumi.logdna.ArchiveArgs;\nimport com.pulumi.logdna.inputs.ArchiveIbmConfigArgs;\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 config = new Archive(\"config\", ArchiveArgs.builder()\n            .ibmConfig(ArchiveIbmConfigArgs.builder()\n                .apikey(\"key\")\n                .bucket(\"example\")\n                .endpoint(\"example.com\")\n                .resourceinstanceid(\"id\")\n                .build())\n            .integration(\"ibm\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  config:\n    type: logdna:Archive\n    properties:\n      ibmConfig:\n        apikey: key\n        bucket: example\n        endpoint: example.com\n        resourceinstanceid: id\n      integration: ibm\n```\n<!--End PulumiCodeChooser -->\n\n## Example AWS S3 Archive\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as logdna from \"@pulumi/logdna\";\n\nconst config = new logdna.Archive(\"config\", {\n    integration: \"s3\",\n    s3Config: {\n        bucket: \"example\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_logdna as logdna\n\nconfig = logdna.Archive(\"config\",\n    integration=\"s3\",\n    s3_config={\n        \"bucket\": \"example\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Logdna = Pulumi.Logdna;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Logdna.Archive(\"config\", new()\n    {\n        Integration = \"s3\",\n        S3Config = new Logdna.Inputs.ArchiveS3ConfigArgs\n        {\n            Bucket = \"example\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/logdna/logdna\"\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 := logdna.NewArchive(ctx, \"config\", &logdna.ArchiveArgs{\n\t\t\tIntegration: pulumi.String(\"s3\"),\n\t\t\tS3Config: &logdna.ArchiveS3ConfigArgs{\n\t\t\t\tBucket: pulumi.String(\"example\"),\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.logdna.Archive;\nimport com.pulumi.logdna.ArchiveArgs;\nimport com.pulumi.logdna.inputs.ArchiveS3ConfigArgs;\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 config = new Archive(\"config\", ArchiveArgs.builder()\n            .integration(\"s3\")\n            .s3Config(ArchiveS3ConfigArgs.builder()\n                .bucket(\"example\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  config:\n    type: logdna:Archive\n    properties:\n      integration: s3\n      s3Config:\n        bucket: example\n```\n<!--End PulumiCodeChooser -->\n\n## Example Azure Blob Storage Archive\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as logdna from \"@pulumi/logdna\";\n\nconst config = new logdna.Archive(\"config\", {\n    azblobConfig: {\n        accountkey: \"example key\",\n        accountname: \"example name\",\n    },\n    integration: \"azblob\",\n});\n```\n```python\nimport pulumi\nimport pulumi_logdna as logdna\n\nconfig = logdna.Archive(\"config\",\n    azblob_config={\n        \"accountkey\": \"example key\",\n        \"accountname\": \"example name\",\n    },\n    integration=\"azblob\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Logdna = Pulumi.Logdna;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Logdna.Archive(\"config\", new()\n    {\n        AzblobConfig = new Logdna.Inputs.ArchiveAzblobConfigArgs\n        {\n            Accountkey = \"example key\",\n            Accountname = \"example name\",\n        },\n        Integration = \"azblob\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/logdna/logdna\"\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 := logdna.NewArchive(ctx, \"config\", &logdna.ArchiveArgs{\n\t\t\tAzblobConfig: &logdna.ArchiveAzblobConfigArgs{\n\t\t\t\tAccountkey:  pulumi.String(\"example key\"),\n\t\t\t\tAccountname: pulumi.String(\"example name\"),\n\t\t\t},\n\t\t\tIntegration: pulumi.String(\"azblob\"),\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.logdna.Archive;\nimport com.pulumi.logdna.ArchiveArgs;\nimport com.pulumi.logdna.inputs.ArchiveAzblobConfigArgs;\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 config = new Archive(\"config\", ArchiveArgs.builder()\n            .azblobConfig(ArchiveAzblobConfigArgs.builder()\n                .accountkey(\"example key\")\n                .accountname(\"example name\")\n                .build())\n            .integration(\"azblob\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  config:\n    type: logdna:Archive\n    properties:\n      azblobConfig:\n        accountkey: example key\n        accountname: example name\n      integration: azblob\n```\n<!--End PulumiCodeChooser -->\n\n## Example Google Cloud Services Archive\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as logdna from \"@pulumi/logdna\";\n\nconst config = new logdna.Archive(\"config\", {\n    gcsConfig: {\n        bucket: \"example\",\n        projectid: \"id\",\n    },\n    integration: \"gcs\",\n});\n```\n```python\nimport pulumi\nimport pulumi_logdna as logdna\n\nconfig = logdna.Archive(\"config\",\n    gcs_config={\n        \"bucket\": \"example\",\n        \"projectid\": \"id\",\n    },\n    integration=\"gcs\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Logdna = Pulumi.Logdna;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Logdna.Archive(\"config\", new()\n    {\n        GcsConfig = new Logdna.Inputs.ArchiveGcsConfigArgs\n        {\n            Bucket = \"example\",\n            Projectid = \"id\",\n        },\n        Integration = \"gcs\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/logdna/logdna\"\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 := logdna.NewArchive(ctx, \"config\", &logdna.ArchiveArgs{\n\t\t\tGcsConfig: &logdna.ArchiveGcsConfigArgs{\n\t\t\t\tBucket:    pulumi.String(\"example\"),\n\t\t\t\tProjectid: pulumi.String(\"id\"),\n\t\t\t},\n\t\t\tIntegration: pulumi.String(\"gcs\"),\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.logdna.Archive;\nimport com.pulumi.logdna.ArchiveArgs;\nimport com.pulumi.logdna.inputs.ArchiveGcsConfigArgs;\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 config = new Archive(\"config\", ArchiveArgs.builder()\n            .gcsConfig(ArchiveGcsConfigArgs.builder()\n                .bucket(\"example\")\n                .projectid(\"id\")\n                .build())\n            .integration(\"gcs\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  config:\n    type: logdna:Archive\n    properties:\n      gcsConfig:\n        bucket: example\n        projectid: id\n      integration: gcs\n```\n<!--End PulumiCodeChooser -->\n\n## Example Digital Ocean Archive\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as logdna from \"@pulumi/logdna\";\n\nconst config = new logdna.Archive(\"config\", {\n    dosConfig: {\n        accesskey: \"key\",\n        endpoint: \"example.com\",\n        secretkey: \"key\",\n        space: \"example\",\n    },\n    integration: \"dos\",\n});\n```\n```python\nimport pulumi\nimport pulumi_logdna as logdna\n\nconfig = logdna.Archive(\"config\",\n    dos_config={\n        \"accesskey\": \"key\",\n        \"endpoint\": \"example.com\",\n        \"secretkey\": \"key\",\n        \"space\": \"example\",\n    },\n    integration=\"dos\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Logdna = Pulumi.Logdna;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Logdna.Archive(\"config\", new()\n    {\n        DosConfig = new Logdna.Inputs.ArchiveDosConfigArgs\n        {\n            Accesskey = \"key\",\n            Endpoint = \"example.com\",\n            Secretkey = \"key\",\n            Space = \"example\",\n        },\n        Integration = \"dos\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/logdna/logdna\"\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 := logdna.NewArchive(ctx, \"config\", &logdna.ArchiveArgs{\n\t\t\tDosConfig: &logdna.ArchiveDosConfigArgs{\n\t\t\t\tAccesskey: pulumi.String(\"key\"),\n\t\t\t\tEndpoint:  pulumi.String(\"example.com\"),\n\t\t\t\tSecretkey: pulumi.String(\"key\"),\n\t\t\t\tSpace:     pulumi.String(\"example\"),\n\t\t\t},\n\t\t\tIntegration: pulumi.String(\"dos\"),\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.logdna.Archive;\nimport com.pulumi.logdna.ArchiveArgs;\nimport com.pulumi.logdna.inputs.ArchiveDosConfigArgs;\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 config = new Archive(\"config\", ArchiveArgs.builder()\n            .dosConfig(ArchiveDosConfigArgs.builder()\n                .accesskey(\"key\")\n                .endpoint(\"example.com\")\n                .secretkey(\"key\")\n                .space(\"example\")\n                .build())\n            .integration(\"dos\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  config:\n    type: logdna:Archive\n    properties:\n      dosConfig:\n        accesskey: key\n        endpoint: example.com\n        secretkey: key\n        space: example\n      integration: dos\n```\n<!--End PulumiCodeChooser -->\n\n## Example OpenStack Swift Archive\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as logdna from \"@pulumi/logdna\";\n\nconst config = new logdna.Archive(\"config\", {\n    integration: \"swift\",\n    swiftConfig: {\n        authurl: \"example.com\",\n        expires: 5,\n        password: \"password\",\n        tenantname: \"example\",\n        username: \"example user\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_logdna as logdna\n\nconfig = logdna.Archive(\"config\",\n    integration=\"swift\",\n    swift_config={\n        \"authurl\": \"example.com\",\n        \"expires\": 5,\n        \"password\": \"password\",\n        \"tenantname\": \"example\",\n        \"username\": \"example user\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Logdna = Pulumi.Logdna;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Logdna.Archive(\"config\", new()\n    {\n        Integration = \"swift\",\n        SwiftConfig = new Logdna.Inputs.ArchiveSwiftConfigArgs\n        {\n            Authurl = \"example.com\",\n            Expires = 5,\n            Password = \"password\",\n            Tenantname = \"example\",\n            Username = \"example user\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/logdna/logdna\"\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 := logdna.NewArchive(ctx, \"config\", &logdna.ArchiveArgs{\n\t\t\tIntegration: pulumi.String(\"swift\"),\n\t\t\tSwiftConfig: &logdna.ArchiveSwiftConfigArgs{\n\t\t\t\tAuthurl:    pulumi.String(\"example.com\"),\n\t\t\t\tExpires:    pulumi.Float64(5),\n\t\t\t\tPassword:   pulumi.String(\"password\"),\n\t\t\t\tTenantname: pulumi.String(\"example\"),\n\t\t\t\tUsername:   pulumi.String(\"example user\"),\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.logdna.Archive;\nimport com.pulumi.logdna.ArchiveArgs;\nimport com.pulumi.logdna.inputs.ArchiveSwiftConfigArgs;\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 config = new Archive(\"config\", ArchiveArgs.builder()\n            .integration(\"swift\")\n            .swiftConfig(ArchiveSwiftConfigArgs.builder()\n                .authurl(\"example.com\")\n                .expires(5)\n                .password(\"password\")\n                .tenantname(\"example\")\n                .username(\"example user\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  config:\n    type: logdna:Archive\n    properties:\n      integration: swift\n      swiftConfig:\n        authurl: example.com\n        expires: 5\n        password: password\n        tenantname: example\n        username: example user\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nImporting an existing configuration is supported:\n\n```sh\n$ pulumi import logdna:index/archive:Archive config archive\n```\n\n",
      "properties": {
        "archiveId": {
          "type": "string"
        },
        "azblobConfig": {
          "$ref": "#/types/logdna:index%2FArchiveAzblobConfig:ArchiveAzblobConfig"
        },
        "dosConfig": {
          "$ref": "#/types/logdna:index%2FArchiveDosConfig:ArchiveDosConfig"
        },
        "gcsConfig": {
          "$ref": "#/types/logdna:index%2FArchiveGcsConfig:ArchiveGcsConfig"
        },
        "ibmConfig": {
          "$ref": "#/types/logdna:index%2FArchiveIbmConfig:ArchiveIbmConfig"
        },
        "integration": {
          "type": "string",
          "description": "**string _(Required)_** Archiving integration. Valid values are `ibm`, `s3`, `azblob`, `gcs`, `dos`, `swift`\n"
        },
        "s3Config": {
          "$ref": "#/types/logdna:index%2FArchiveS3Config:ArchiveS3Config"
        },
        "swiftConfig": {
          "$ref": "#/types/logdna:index%2FArchiveSwiftConfig:ArchiveSwiftConfig"
        }
      },
      "type": "object",
      "required": [
        "archiveId",
        "integration"
      ],
      "inputProperties": {
        "archiveId": {
          "type": "string"
        },
        "azblobConfig": {
          "$ref": "#/types/logdna:index%2FArchiveAzblobConfig:ArchiveAzblobConfig"
        },
        "dosConfig": {
          "$ref": "#/types/logdna:index%2FArchiveDosConfig:ArchiveDosConfig"
        },
        "gcsConfig": {
          "$ref": "#/types/logdna:index%2FArchiveGcsConfig:ArchiveGcsConfig"
        },
        "ibmConfig": {
          "$ref": "#/types/logdna:index%2FArchiveIbmConfig:ArchiveIbmConfig"
        },
        "integration": {
          "type": "string",
          "description": "**string _(Required)_** Archiving integration. Valid values are `ibm`, `s3`, `azblob`, `gcs`, `dos`, `swift`\n"
        },
        "s3Config": {
          "$ref": "#/types/logdna:index%2FArchiveS3Config:ArchiveS3Config"
        },
        "swiftConfig": {
          "$ref": "#/types/logdna:index%2FArchiveSwiftConfig:ArchiveSwiftConfig"
        }
      },
      "requiredInputs": [
        "integration"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Archive resources.\n",
        "properties": {
          "archiveId": {
            "type": "string"
          },
          "azblobConfig": {
            "$ref": "#/types/logdna:index%2FArchiveAzblobConfig:ArchiveAzblobConfig"
          },
          "dosConfig": {
            "$ref": "#/types/logdna:index%2FArchiveDosConfig:ArchiveDosConfig"
          },
          "gcsConfig": {
            "$ref": "#/types/logdna:index%2FArchiveGcsConfig:ArchiveGcsConfig"
          },
          "ibmConfig": {
            "$ref": "#/types/logdna:index%2FArchiveIbmConfig:ArchiveIbmConfig"
          },
          "integration": {
            "type": "string",
            "description": "**string _(Required)_** Archiving integration. Valid values are `ibm`, `s3`, `azblob`, `gcs`, `dos`, `swift`\n"
          },
          "s3Config": {
            "$ref": "#/types/logdna:index%2FArchiveS3Config:ArchiveS3Config"
          },
          "swiftConfig": {
            "$ref": "#/types/logdna:index%2FArchiveSwiftConfig:ArchiveSwiftConfig"
          }
        },
        "type": "object"
      }
    },
    "logdna:index/category:Category": {
      "description": "## # Resource: `logdna.Category`\n\nManages [LogDNA Categories](https://docs.logdna.com/reference/getting-started-with-the-configuration-api). Categories are designed to organize views, boards and screens. Categories can be created standalone and then attached to any views, boards, or screens.\n\nTo get started, all you need to do is to specify one of supported `type`: views, boards, or screens and `name`.\n\n## Example - Basic Category\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as logdna from \"@pulumi/logdna\";\n\nconst myCategory = new logdna.Category(\"myCategory\", {type: \"views\"});\n```\n```python\nimport pulumi\nimport pulumi_logdna as logdna\n\nmy_category = logdna.Category(\"myCategory\", type=\"views\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Logdna = Pulumi.Logdna;\n\nreturn await Deployment.RunAsync(() => \n{\n    var myCategory = new Logdna.Category(\"myCategory\", new()\n    {\n        Type = \"views\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/logdna/logdna\"\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 := logdna.NewCategory(ctx, \"myCategory\", &logdna.CategoryArgs{\n\t\t\tType: pulumi.String(\"views\"),\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.logdna.Category;\nimport com.pulumi.logdna.CategoryArgs;\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 myCategory = new Category(\"myCategory\", CategoryArgs.builder()\n            .type(\"views\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  myCategory:\n    type: logdna:Category\n    properties:\n      type: views\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nCategories can be imported by `type` and `id`, which can be found using the [List Categories API](https://docs.logdna.com/reference/list-categories):\n\n1. Custom HTTP Headers - `servicekey: <SERVICE_KEY>` or `apikey: <SERVICE_KEY>`\n\ncurl --request GET \\\n\n     --url <API_URL>/v1/config/categories/<CATEGORY_TYPE> \\\n\n     --header 'Accept: application/json' \\\n\n     --header 'servicekey: <SERVICE_KEY>'\n\n2. Basic Auth - `Authorization: Basic <encodeInBase64(credentials)>`.<br />\n\nCredentials is a string composed of formatted as `<username>:<password>`, our usage here entails substituting `<SERVICE_KEY>` as the username and leaving the password blank. The colon separator should still included in the resulting string `<SERVICE_KEY>:`\n\ncurl --request GET \\\n\n     --url <API_URL>/v1/config/categories/<CATEGORY_TYPE> \\\n\n     --header 'Accept: application/json' \\\n\n     --header 'Authorization: Basic <BASE_64_ENCODED_CREDENTIALS>'\n\n```sh\n$ pulumi import logdna:index/category:Category your-category-name <type>:<id>\n```\n\n",
      "properties": {
        "categoryId": {
          "type": "string"
        },
        "name": {
          "type": "string",
          "description": "**string (Required)** The name this Category will be given\n"
        },
        "type": {
          "type": "string",
          "description": "**string (Required)** The type this Category belongs to, valid options are: `views`, `boards`, `screens`\n"
        }
      },
      "type": "object",
      "required": [
        "categoryId",
        "name"
      ],
      "inputProperties": {
        "categoryId": {
          "type": "string"
        },
        "name": {
          "type": "string",
          "description": "**string (Required)** The name this Category will be given\n"
        },
        "type": {
          "type": "string",
          "description": "**string (Required)** The type this Category belongs to, valid options are: `views`, `boards`, `screens`\n"
        }
      },
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Category resources.\n",
        "properties": {
          "categoryId": {
            "type": "string"
          },
          "name": {
            "type": "string",
            "description": "**string (Required)** The name this Category will be given\n"
          },
          "type": {
            "type": "string",
            "description": "**string (Required)** The type this Category belongs to, valid options are: `views`, `boards`, `screens`\n"
          }
        },
        "type": "object"
      }
    },
    "logdna:index/indexRateAlert:IndexRateAlert": {
      "description": "## # Resource: `logdna.IndexRateAlert`\n\nManages [LogDNA Index Rate Alert](https://docs.mezmo.com/docs/index-rate-alerts). Configuring alerts based on the index rate or retention and storage rate of your log data helps you track unusual behavior in your systems. For example, if there's a sudden spike in volume, Mezmo's Index Rate Alert feature tells you which applications or sources produced the data spike. It also shows any recently added sources. Index rate alerts can also help managers who are responsible for budgets to analyze and predict storage costs.\n\nTo get started, all you need to do is to specify a configuration and one of our currently supported alerts recipients: email, Slack, or PagerDuty.\n\nBe aware that only one index rate alert configuration is allowed per account\n\n## Example - Index Rate Alert\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as logdna from \"@pulumi/logdna\";\n\nconst config = new logdna.IndexRateAlert(\"config\", {\n    maxLines: 3,\n    maxZScore: 3,\n    thresholdAlert: \"separate\",\n    frequency: \"hourly\",\n    enabled: true,\n    channels: [{\n        emails: [\"test@test.com\"],\n        slacks: [\"https://slack_url/key\"],\n        pagerduties: [\"service_key\"],\n    }],\n    webhookChannels: [{\n        url: \"https:/testurl.com\",\n        method: \"POST\",\n        headers: {\n            header1: \"value1\",\n        },\n        bodytemplate: JSON.stringify({\n            something: \"something\",\n        }),\n    }],\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_logdna as logdna\n\nconfig = logdna.IndexRateAlert(\"config\",\n    max_lines=3,\n    max_z_score=3,\n    threshold_alert=\"separate\",\n    frequency=\"hourly\",\n    enabled=True,\n    channels=[{\n        \"emails\": [\"test@test.com\"],\n        \"slacks\": [\"https://slack_url/key\"],\n        \"pagerduties\": [\"service_key\"],\n    }],\n    webhook_channels=[{\n        \"url\": \"https:/testurl.com\",\n        \"method\": \"POST\",\n        \"headers\": {\n            \"header1\": \"value1\",\n        },\n        \"bodytemplate\": json.dumps({\n            \"something\": \"something\",\n        }),\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing Logdna = Pulumi.Logdna;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Logdna.IndexRateAlert(\"config\", new()\n    {\n        MaxLines = 3,\n        MaxZScore = 3,\n        ThresholdAlert = \"separate\",\n        Frequency = \"hourly\",\n        Enabled = true,\n        Channels = new[]\n        {\n            new Logdna.Inputs.IndexRateAlertChannelArgs\n            {\n                Emails = new[]\n                {\n                    \"test@test.com\",\n                },\n                Slacks = new[]\n                {\n                    \"https://slack_url/key\",\n                },\n                Pagerduties = new[]\n                {\n                    \"service_key\",\n                },\n            },\n        },\n        WebhookChannels = new[]\n        {\n            new Logdna.Inputs.IndexRateAlertWebhookChannelArgs\n            {\n                Url = \"https:/testurl.com\",\n                Method = \"POST\",\n                Headers = \n                {\n                    { \"header1\", \"value1\" },\n                },\n                Bodytemplate = JsonSerializer.Serialize(new Dictionary<string, object?>\n                {\n                    [\"something\"] = \"something\",\n                }),\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/logdna/logdna\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\"something\": \"something\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson0 := string(tmpJSON0)\n\t\t_, err = logdna.NewIndexRateAlert(ctx, \"config\", &logdna.IndexRateAlertArgs{\n\t\t\tMaxLines:       pulumi.Float64(3),\n\t\t\tMaxZScore:      pulumi.Float64(3),\n\t\t\tThresholdAlert: pulumi.String(\"separate\"),\n\t\t\tFrequency:      pulumi.String(\"hourly\"),\n\t\t\tEnabled:        pulumi.Bool(true),\n\t\t\tChannels: logdna.IndexRateAlertChannelArray{\n\t\t\t\t&logdna.IndexRateAlertChannelArgs{\n\t\t\t\t\tEmails: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"test@test.com\"),\n\t\t\t\t\t},\n\t\t\t\t\tSlacks: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"https://slack_url/key\"),\n\t\t\t\t\t},\n\t\t\t\t\tPagerduties: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"service_key\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tWebhookChannels: logdna.IndexRateAlertWebhookChannelArray{\n\t\t\t\t&logdna.IndexRateAlertWebhookChannelArgs{\n\t\t\t\t\tUrl:    pulumi.String(\"https:/testurl.com\"),\n\t\t\t\t\tMethod: pulumi.String(\"POST\"),\n\t\t\t\t\tHeaders: pulumi.StringMap{\n\t\t\t\t\t\t\"header1\": pulumi.String(\"value1\"),\n\t\t\t\t\t},\n\t\t\t\t\tBodytemplate: pulumi.String(json0),\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.logdna.IndexRateAlert;\nimport com.pulumi.logdna.IndexRateAlertArgs;\nimport com.pulumi.logdna.inputs.IndexRateAlertChannelArgs;\nimport com.pulumi.logdna.inputs.IndexRateAlertWebhookChannelArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\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 config = new IndexRateAlert(\"config\", IndexRateAlertArgs.builder()\n            .maxLines(3)\n            .maxZScore(3)\n            .thresholdAlert(\"separate\")\n            .frequency(\"hourly\")\n            .enabled(true)\n            .channels(IndexRateAlertChannelArgs.builder()\n                .emails(\"test@test.com\")\n                .slacks(\"https://slack_url/key\")\n                .pagerduties(\"service_key\")\n                .build())\n            .webhookChannels(IndexRateAlertWebhookChannelArgs.builder()\n                .url(\"https:/testurl.com\")\n                .method(\"POST\")\n                .headers(Map.of(\"header1\", \"value1\"))\n                .bodytemplate(serializeJson(\n                    jsonObject(\n                        jsonProperty(\"something\", \"something\")\n                    )))\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  config:\n    type: logdna:IndexRateAlert\n    properties:\n      maxLines: 3\n      maxZScore: 3\n      thresholdAlert: separate\n      frequency: hourly\n      enabled: true\n      channels:\n        - emails:\n            - test@test.com\n          slacks:\n            - https://slack_url/key\n          pagerduties:\n            - service_key\n      webhookChannels:\n        - url: https:/testurl.com\n          method: POST\n          headers:\n            header1: value1\n          bodytemplate:\n            fn::toJSON:\n              something: something\n```\n<!--End PulumiCodeChooser -->\n\n## Destroy\n\nThere is not a DELETE endpoint supported by the Index Rate Alert API. For this reason, removing the Index Rate Alert Config effectively disables it. (set enabled to false in DB)\n\n## Import\n\nIndex Rate Alert can be imported by static ID \"config\", which can be found using the [Get Index Rate Alert API](https://docs.mezmo.com/log-analysis-api/ref#get-index-rate-alert):\n\n1. Custom HTTP Headers - `servicekey: <SERVICE_KEY>` or `apikey: <SERVICE_KEY>`\n\ncurl --request GET \\\n\n     --url <API_URL>/v1/config/index-rate \\\n\n     --header 'Accept: application/json' \\\n\n     --header 'servicekey: <SERVICE_KEY>'\n\n2. Basic Auth - `Authorization: Basic <encodeInBase64(credentials)>`.<br />\n\nCredentials is a string formatted as `<username>:<password>`. Our usage here entails substituting `<SERVICE_KEY>` as the username and leaving the password blank. The colon separator should still be included in the resulting string `<SERVICE_KEY>:`\n\ncurl --request GET \\\n\n     --url <API_URL>/v1/config/index-rate \\\n\n     --header 'Accept: application/json' \\\n\n     --header 'Authorization: Basic <BASE_64_ENCODED_CREDENTIALS>'\n\n```sh\n$ pulumi import logdna:index/indexRateAlert:IndexRateAlert config config\n```\n\nNote that only the alert channels supported by this provider will be imported.\n\n",
      "properties": {
        "channels": {
          "type": "array",
          "items": {
            "$ref": "#/types/logdna:index%2FIndexRateAlertChannel:IndexRateAlertChannel"
          }
        },
        "enabled": {
          "type": "boolean",
          "description": "Enable an existing configuration, type _boolean_\n"
        },
        "frequency": {
          "type": "string",
          "description": "Notify recipients once per hour or once per day (starting from the first passing of the threshold) until the index rate declines back below the thresholds, ceasing all alerts., type _string_ [\"hourly\" | \"daily\"]\n"
        },
        "indexRateAlertId": {
          "type": "string"
        },
        "maxLines": {
          "type": "number",
          "description": "The number of lines required in order to set off the alert, type _number_\n"
        },
        "maxZScore": {
          "type": "number",
          "description": "The number of standard deviations above the 30-day average lines in order to set off the alert, type _number_\n"
        },
        "thresholdAlert": {
          "type": "string",
          "description": "Set if you want alerts to be triggered if one or both of the max lines and standard deviation have been triggered or individually, type _string_ [\"separate\" | \"both\"]\n"
        },
        "webhookChannels": {
          "type": "array",
          "items": {
            "$ref": "#/types/logdna:index%2FIndexRateAlertWebhookChannel:IndexRateAlertWebhookChannel"
          }
        }
      },
      "type": "object",
      "required": [
        "enabled",
        "frequency",
        "indexRateAlertId",
        "thresholdAlert"
      ],
      "inputProperties": {
        "channels": {
          "type": "array",
          "items": {
            "$ref": "#/types/logdna:index%2FIndexRateAlertChannel:IndexRateAlertChannel"
          }
        },
        "enabled": {
          "type": "boolean",
          "description": "Enable an existing configuration, type _boolean_\n"
        },
        "frequency": {
          "type": "string",
          "description": "Notify recipients once per hour or once per day (starting from the first passing of the threshold) until the index rate declines back below the thresholds, ceasing all alerts., type _string_ [\"hourly\" | \"daily\"]\n"
        },
        "indexRateAlertId": {
          "type": "string"
        },
        "maxLines": {
          "type": "number",
          "description": "The number of lines required in order to set off the alert, type _number_\n"
        },
        "maxZScore": {
          "type": "number",
          "description": "The number of standard deviations above the 30-day average lines in order to set off the alert, type _number_\n"
        },
        "thresholdAlert": {
          "type": "string",
          "description": "Set if you want alerts to be triggered if one or both of the max lines and standard deviation have been triggered or individually, type _string_ [\"separate\" | \"both\"]\n"
        },
        "webhookChannels": {
          "type": "array",
          "items": {
            "$ref": "#/types/logdna:index%2FIndexRateAlertWebhookChannel:IndexRateAlertWebhookChannel"
          }
        }
      },
      "requiredInputs": [
        "enabled",
        "frequency",
        "thresholdAlert"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering IndexRateAlert resources.\n",
        "properties": {
          "channels": {
            "type": "array",
            "items": {
              "$ref": "#/types/logdna:index%2FIndexRateAlertChannel:IndexRateAlertChannel"
            }
          },
          "enabled": {
            "type": "boolean",
            "description": "Enable an existing configuration, type _boolean_\n"
          },
          "frequency": {
            "type": "string",
            "description": "Notify recipients once per hour or once per day (starting from the first passing of the threshold) until the index rate declines back below the thresholds, ceasing all alerts., type _string_ [\"hourly\" | \"daily\"]\n"
          },
          "indexRateAlertId": {
            "type": "string"
          },
          "maxLines": {
            "type": "number",
            "description": "The number of lines required in order to set off the alert, type _number_\n"
          },
          "maxZScore": {
            "type": "number",
            "description": "The number of standard deviations above the 30-day average lines in order to set off the alert, type _number_\n"
          },
          "thresholdAlert": {
            "type": "string",
            "description": "Set if you want alerts to be triggered if one or both of the max lines and standard deviation have been triggered or individually, type _string_ [\"separate\" | \"both\"]\n"
          },
          "webhookChannels": {
            "type": "array",
            "items": {
              "$ref": "#/types/logdna:index%2FIndexRateAlertWebhookChannel:IndexRateAlertWebhookChannel"
            }
          }
        },
        "type": "object"
      }
    },
    "logdna:index/ingestionExclusion:IngestionExclusion": {
      "description": "## # Resource: `logdna.IngestionExclusion`\n\nThe resource allows you to filter out logs that you don't need to store, preventing lines from being ingested\nin our searchable database. You can define exclusion rules by application, hostname, and patterns within log\nlines.\n\n## Example\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as logdna from \"@pulumi/logdna\";\n\nconst http_success = new logdna.IngestionExclusion(\"http-success\", {\n    active: true,\n    apps: [\n        \"nginx\",\n        \"apache\",\n    ],\n    indexonly: false,\n    query: \"response:(>=200 <300)\",\n    title: \"HTTP 2XX\",\n});\nconst http_noise = new logdna.IngestionExclusion(\"http-noise\", {\n    active: true,\n    apps: [\n        \"nginx\",\n        \"apache\",\n    ],\n    indexonly: true,\n    query: \"robots.txt OR favicon.ico OR .well-known\",\n    title: \"Noisy HTTP Paths\",\n});\n```\n```python\nimport pulumi\nimport pulumi_logdna as logdna\n\nhttp_success = logdna.IngestionExclusion(\"http-success\",\n    active=True,\n    apps=[\n        \"nginx\",\n        \"apache\",\n    ],\n    indexonly=False,\n    query=\"response:(>=200 <300)\",\n    title=\"HTTP 2XX\")\nhttp_noise = logdna.IngestionExclusion(\"http-noise\",\n    active=True,\n    apps=[\n        \"nginx\",\n        \"apache\",\n    ],\n    indexonly=True,\n    query=\"robots.txt OR favicon.ico OR .well-known\",\n    title=\"Noisy HTTP Paths\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Logdna = Pulumi.Logdna;\n\nreturn await Deployment.RunAsync(() => \n{\n    var http_success = new Logdna.IngestionExclusion(\"http-success\", new()\n    {\n        Active = true,\n        Apps = new[]\n        {\n            \"nginx\",\n            \"apache\",\n        },\n        Indexonly = false,\n        Query = \"response:(>=200 <300)\",\n        Title = \"HTTP 2XX\",\n    });\n\n    var http_noise = new Logdna.IngestionExclusion(\"http-noise\", new()\n    {\n        Active = true,\n        Apps = new[]\n        {\n            \"nginx\",\n            \"apache\",\n        },\n        Indexonly = true,\n        Query = \"robots.txt OR favicon.ico OR .well-known\",\n        Title = \"Noisy HTTP Paths\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/logdna/logdna\"\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 := logdna.NewIngestionExclusion(ctx, \"http-success\", &logdna.IngestionExclusionArgs{\n\t\t\tActive: pulumi.Bool(true),\n\t\t\tApps: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"nginx\"),\n\t\t\t\tpulumi.String(\"apache\"),\n\t\t\t},\n\t\t\tIndexonly: pulumi.Bool(false),\n\t\t\tQuery:     pulumi.String(\"response:(>=200 <300)\"),\n\t\t\tTitle:     pulumi.String(\"HTTP 2XX\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = logdna.NewIngestionExclusion(ctx, \"http-noise\", &logdna.IngestionExclusionArgs{\n\t\t\tActive: pulumi.Bool(true),\n\t\t\tApps: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"nginx\"),\n\t\t\t\tpulumi.String(\"apache\"),\n\t\t\t},\n\t\t\tIndexonly: pulumi.Bool(true),\n\t\t\tQuery:     pulumi.String(\"robots.txt OR favicon.ico OR .well-known\"),\n\t\t\tTitle:     pulumi.String(\"Noisy HTTP Paths\"),\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.logdna.IngestionExclusion;\nimport com.pulumi.logdna.IngestionExclusionArgs;\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 http_success = new IngestionExclusion(\"http-success\", IngestionExclusionArgs.builder()\n            .active(true)\n            .apps(            \n                \"nginx\",\n                \"apache\")\n            .indexonly(false)\n            .query(\"response:(>=200 <300)\")\n            .title(\"HTTP 2XX\")\n            .build());\n\n        var http_noise = new IngestionExclusion(\"http-noise\", IngestionExclusionArgs.builder()\n            .active(true)\n            .apps(            \n                \"nginx\",\n                \"apache\")\n            .indexonly(true)\n            .query(\"robots.txt OR favicon.ico OR .well-known\")\n            .title(\"Noisy HTTP Paths\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  http-success:\n    type: logdna:IngestionExclusion\n    properties:\n      active: true\n      apps:\n        - nginx\n        - apache\n      indexonly: false\n      query: response:(>=200 <300)\n      title: HTTP 2XX\n  http-noise:\n    type: logdna:IngestionExclusion\n    properties:\n      active: true\n      apps:\n        - nginx\n        - apache\n      indexonly: true\n      query: robots.txt OR favicon.ico OR .well-known\n      title: Noisy HTTP Paths\n```\n<!--End PulumiCodeChooser -->\n",
      "properties": {
        "active": {
          "type": "boolean"
        },
        "apps": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "hosts": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "indexonly": {
          "type": "boolean"
        },
        "query": {
          "type": "string"
        },
        "title": {
          "type": "string"
        }
      },
      "type": "object",
      "inputProperties": {
        "active": {
          "type": "boolean"
        },
        "apps": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "hosts": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "indexonly": {
          "type": "boolean"
        },
        "query": {
          "type": "string"
        },
        "title": {
          "type": "string"
        }
      },
      "stateInputs": {
        "description": "Input properties used for looking up and filtering IngestionExclusion resources.\n",
        "properties": {
          "active": {
            "type": "boolean"
          },
          "apps": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "hosts": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "indexonly": {
            "type": "boolean"
          },
          "query": {
            "type": "string"
          },
          "title": {
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "logdna:index/key:Key": {
      "description": "\n\n## Import\n\nA key can be imported using the `id`, e.g.,\n\n```sh\n$ pulumi import logdna:index/key:Key my_key <id>\n```\n\n",
      "properties": {
        "created": {
          "type": "number",
          "description": "**int** The date the key was created in Unix time milliseconds.\n"
        },
        "key": {
          "type": "string",
          "description": "**string** The actual key value.\n",
          "secret": true
        },
        "name": {
          "type": "string",
          "description": "**string** _(Optional)_ A non-unique name for the key. If not supplied, a default one is generated.\n"
        },
        "type": {
          "type": "string",
          "description": "**string** _(Required)_ The type of key to be used. Can be one of either `service` or `ingestion`.\n"
        }
      },
      "type": "object",
      "required": [
        "created",
        "key",
        "name",
        "type"
      ],
      "inputProperties": {
        "name": {
          "type": "string",
          "description": "**string** _(Optional)_ A non-unique name for the key. If not supplied, a default one is generated.\n"
        },
        "type": {
          "type": "string",
          "description": "**string** _(Required)_ The type of key to be used. Can be one of either `service` or `ingestion`.\n"
        }
      },
      "requiredInputs": [
        "type"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Key resources.\n",
        "properties": {
          "created": {
            "type": "number",
            "description": "**int** The date the key was created in Unix time milliseconds.\n"
          },
          "key": {
            "type": "string",
            "description": "**string** The actual key value.\n",
            "secret": true
          },
          "name": {
            "type": "string",
            "description": "**string** _(Optional)_ A non-unique name for the key. If not supplied, a default one is generated.\n"
          },
          "type": {
            "type": "string",
            "description": "**string** _(Required)_ The type of key to be used. Can be one of either `service` or `ingestion`.\n"
          }
        },
        "type": "object"
      }
    },
    "logdna:index/member:Member": {
      "description": "## # Resource: `logdna.Member`\n\nThis resource allows you to manage the team members of an organization.\n\n## Example\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as logdna from \"@pulumi/logdna\";\n\nconst adminUser = new logdna.Member(\"adminUser\", {\n    email: \"user@domain.jp.co\",\n    role: \"admin\",\n});\n```\n```python\nimport pulumi\nimport pulumi_logdna as logdna\n\nadmin_user = logdna.Member(\"adminUser\",\n    email=\"user@domain.jp.co\",\n    role=\"admin\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Logdna = Pulumi.Logdna;\n\nreturn await Deployment.RunAsync(() => \n{\n    var adminUser = new Logdna.Member(\"adminUser\", new()\n    {\n        Email = \"user@domain.jp.co\",\n        Role = \"admin\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/logdna/logdna\"\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 := logdna.NewMember(ctx, \"adminUser\", &logdna.MemberArgs{\n\t\t\tEmail: pulumi.String(\"user@domain.jp.co\"),\n\t\t\tRole:  pulumi.String(\"admin\"),\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.logdna.Member;\nimport com.pulumi.logdna.MemberArgs;\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 adminUser = new Member(\"adminUser\", MemberArgs.builder()\n            .email(\"user@domain.jp.co\")\n            .role(\"admin\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  adminUser:\n    type: logdna:Member\n    properties:\n      email: user@domain.jp.co\n      role: admin\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nA member can be imported using their `email`, e.g.,\n\n```sh\n$ pulumi import logdna:index/member:Member user1 <email>\n```\n\n",
      "properties": {
        "email": {
          "type": "string",
          "description": "**string** _(Required)_ The email of the user. If a user with that email does not exist, they will be invited to join Mezmo.\n"
        },
        "groups": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "**string[]** _(Optional)_ The id of the groups the user belongs to. Defaults to an empty list.\n"
        },
        "memberId": {
          "type": "string"
        },
        "role": {
          "type": "string",
          "description": "**string** _(Required)_ The role of this user. Can be one of `admin`, `member`, and `readonly`. `owner` roles can only be changed through the UI.\n"
        }
      },
      "type": "object",
      "required": [
        "email",
        "memberId",
        "role"
      ],
      "inputProperties": {
        "email": {
          "type": "string",
          "description": "**string** _(Required)_ The email of the user. If a user with that email does not exist, they will be invited to join Mezmo.\n"
        },
        "groups": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "**string[]** _(Optional)_ The id of the groups the user belongs to. Defaults to an empty list.\n"
        },
        "memberId": {
          "type": "string"
        },
        "role": {
          "type": "string",
          "description": "**string** _(Required)_ The role of this user. Can be one of `admin`, `member`, and `readonly`. `owner` roles can only be changed through the UI.\n"
        }
      },
      "requiredInputs": [
        "email",
        "role"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Member resources.\n",
        "properties": {
          "email": {
            "type": "string",
            "description": "**string** _(Required)_ The email of the user. If a user with that email does not exist, they will be invited to join Mezmo.\n"
          },
          "groups": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "**string[]** _(Optional)_ The id of the groups the user belongs to. Defaults to an empty list.\n"
          },
          "memberId": {
            "type": "string"
          },
          "role": {
            "type": "string",
            "description": "**string** _(Required)_ The role of this user. Can be one of `admin`, `member`, and `readonly`. `owner` roles can only be changed through the UI.\n"
          }
        },
        "type": "object"
      }
    },
    "logdna:index/streamConfig:StreamConfig": {
      "description": "## # Resource: `logdna.StreamConfig`\n\n> **IBM Log Analysis and Cloud Activity Tracker users only**\n\nManages [LogDNA Streaming](https://ibm.github.io/cloud-enterprise-examples/log-streaming/content-overview/) configuration for an account.\n\n## Example\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as logdna from \"@pulumi/logdna\";\n\nconst config = new logdna.StreamConfig(\"config\", {\n    user: _var.stream_user,\n    password: _var.stream_password,\n    topic: \"example\",\n    brokers: [\n        \"broker-1.example.org:9093\",\n        \"broker-2.example.org:9093\",\n        \"broker-3.example.org:9093\",\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_logdna as logdna\n\nconfig = logdna.StreamConfig(\"config\",\n    user=var[\"stream_user\"],\n    password=var[\"stream_password\"],\n    topic=\"example\",\n    brokers=[\n        \"broker-1.example.org:9093\",\n        \"broker-2.example.org:9093\",\n        \"broker-3.example.org:9093\",\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Logdna = Pulumi.Logdna;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Logdna.StreamConfig(\"config\", new()\n    {\n        User = @var.Stream_user,\n        Password = @var.Stream_password,\n        Topic = \"example\",\n        Brokers = new[]\n        {\n            \"broker-1.example.org:9093\",\n            \"broker-2.example.org:9093\",\n            \"broker-3.example.org:9093\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/logdna/logdna\"\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 := logdna.NewStreamConfig(ctx, \"config\", &logdna.StreamConfigArgs{\n\t\t\tUser:     pulumi.Any(_var.Stream_user),\n\t\t\tPassword: pulumi.Any(_var.Stream_password),\n\t\t\tTopic:    pulumi.String(\"example\"),\n\t\t\tBrokers: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"broker-1.example.org:9093\"),\n\t\t\t\tpulumi.String(\"broker-2.example.org:9093\"),\n\t\t\t\tpulumi.String(\"broker-3.example.org:9093\"),\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.logdna.StreamConfig;\nimport com.pulumi.logdna.StreamConfigArgs;\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 config = new StreamConfig(\"config\", StreamConfigArgs.builder()\n            .user(var_.stream_user())\n            .password(var_.stream_password())\n            .topic(\"example\")\n            .brokers(            \n                \"broker-1.example.org:9093\",\n                \"broker-2.example.org:9093\",\n                \"broker-3.example.org:9093\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  config:\n    type: logdna:StreamConfig\n    properties:\n      user: ${var.stream_user}\n      password: ${var.stream_password}\n      topic: example\n      brokers:\n        - broker-1.example.org:9093\n        - broker-2.example.org:9093\n        - broker-3.example.org:9093\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nImporting an existing configuration is supported:\n\n```sh\n$ pulumi import logdna:index/streamConfig:StreamConfig config stream\n```\n\n",
      "properties": {
        "brokers": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "**[]string** _(Required)_ List of of broker URLs.\n"
        },
        "password": {
          "type": "string",
          "description": "**string** _(Required)_ The SASL password for the connection.\n\nNote that the provided brokers and credentials must be valid, and\nthe brokers must be reachable when the resource is created or updated.\nThe connection to the broker will be validated before the configuration\ncan be saved.\n",
          "secret": true
        },
        "status": {
          "type": "string"
        },
        "streamConfigId": {
          "type": "string"
        },
        "topic": {
          "type": "string",
          "description": "**string** _(Required)_ The topic that logs will be published on.\n"
        },
        "user": {
          "type": "string",
          "description": "**string** _(Required)_ The SASL username for the connection.\n"
        }
      },
      "type": "object",
      "required": [
        "brokers",
        "password",
        "status",
        "streamConfigId",
        "topic",
        "user"
      ],
      "inputProperties": {
        "brokers": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "**[]string** _(Required)_ List of of broker URLs.\n"
        },
        "password": {
          "type": "string",
          "description": "**string** _(Required)_ The SASL password for the connection.\n\nNote that the provided brokers and credentials must be valid, and\nthe brokers must be reachable when the resource is created or updated.\nThe connection to the broker will be validated before the configuration\ncan be saved.\n",
          "secret": true
        },
        "streamConfigId": {
          "type": "string"
        },
        "topic": {
          "type": "string",
          "description": "**string** _(Required)_ The topic that logs will be published on.\n"
        },
        "user": {
          "type": "string",
          "description": "**string** _(Required)_ The SASL username for the connection.\n"
        }
      },
      "requiredInputs": [
        "brokers",
        "password",
        "topic",
        "user"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering StreamConfig resources.\n",
        "properties": {
          "brokers": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "**[]string** _(Required)_ List of of broker URLs.\n"
          },
          "password": {
            "type": "string",
            "description": "**string** _(Required)_ The SASL password for the connection.\n\nNote that the provided brokers and credentials must be valid, and\nthe brokers must be reachable when the resource is created or updated.\nThe connection to the broker will be validated before the configuration\ncan be saved.\n",
            "secret": true
          },
          "status": {
            "type": "string"
          },
          "streamConfigId": {
            "type": "string"
          },
          "topic": {
            "type": "string",
            "description": "**string** _(Required)_ The topic that logs will be published on.\n"
          },
          "user": {
            "type": "string",
            "description": "**string** _(Required)_ The SASL username for the connection.\n"
          }
        },
        "type": "object"
      }
    },
    "logdna:index/streamExclusion:StreamExclusion": {
      "description": "## # Resource: `logdna.StreamExclusion`\n\n> **IBM Log Analysis and Cloud Activity Tracker users only**\n\nManages exclusion rules for [LogDNA Streaming](https://ibm.github.io/cloud-enterprise-examples/log-streaming/content-overview/).\nStream exclusion rules define the applications, hostnames, and patterns within\nlog lines that should exclude a given line from the stream.\n\n## Example\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as logdna from \"@pulumi/logdna\";\n\nconst http_success = new logdna.StreamExclusion(\"http-success\", {\n    active: true,\n    apps: [\n        \"nginx\",\n        \"apache\",\n    ],\n    query: \"response:(>=200 <300) request:*\",\n    title: \"HTTP 2XX\",\n});\nconst http_noise = new logdna.StreamExclusion(\"http-noise\", {\n    active: true,\n    apps: [\n        \"nginx\",\n        \"apache\",\n    ],\n    query: \"robots.txt OR favicon.ico OR .well-known\",\n    title: \"Noisy HTTP Paths\",\n});\n```\n```python\nimport pulumi\nimport pulumi_logdna as logdna\n\nhttp_success = logdna.StreamExclusion(\"http-success\",\n    active=True,\n    apps=[\n        \"nginx\",\n        \"apache\",\n    ],\n    query=\"response:(>=200 <300) request:*\",\n    title=\"HTTP 2XX\")\nhttp_noise = logdna.StreamExclusion(\"http-noise\",\n    active=True,\n    apps=[\n        \"nginx\",\n        \"apache\",\n    ],\n    query=\"robots.txt OR favicon.ico OR .well-known\",\n    title=\"Noisy HTTP Paths\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Logdna = Pulumi.Logdna;\n\nreturn await Deployment.RunAsync(() => \n{\n    var http_success = new Logdna.StreamExclusion(\"http-success\", new()\n    {\n        Active = true,\n        Apps = new[]\n        {\n            \"nginx\",\n            \"apache\",\n        },\n        Query = \"response:(>=200 <300) request:*\",\n        Title = \"HTTP 2XX\",\n    });\n\n    var http_noise = new Logdna.StreamExclusion(\"http-noise\", new()\n    {\n        Active = true,\n        Apps = new[]\n        {\n            \"nginx\",\n            \"apache\",\n        },\n        Query = \"robots.txt OR favicon.ico OR .well-known\",\n        Title = \"Noisy HTTP Paths\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/logdna/logdna\"\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 := logdna.NewStreamExclusion(ctx, \"http-success\", &logdna.StreamExclusionArgs{\n\t\t\tActive: pulumi.Bool(true),\n\t\t\tApps: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"nginx\"),\n\t\t\t\tpulumi.String(\"apache\"),\n\t\t\t},\n\t\t\tQuery: pulumi.String(\"response:(>=200 <300) request:*\"),\n\t\t\tTitle: pulumi.String(\"HTTP 2XX\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = logdna.NewStreamExclusion(ctx, \"http-noise\", &logdna.StreamExclusionArgs{\n\t\t\tActive: pulumi.Bool(true),\n\t\t\tApps: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"nginx\"),\n\t\t\t\tpulumi.String(\"apache\"),\n\t\t\t},\n\t\t\tQuery: pulumi.String(\"robots.txt OR favicon.ico OR .well-known\"),\n\t\t\tTitle: pulumi.String(\"Noisy HTTP Paths\"),\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.logdna.StreamExclusion;\nimport com.pulumi.logdna.StreamExclusionArgs;\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 http_success = new StreamExclusion(\"http-success\", StreamExclusionArgs.builder()\n            .active(true)\n            .apps(            \n                \"nginx\",\n                \"apache\")\n            .query(\"response:(>=200 <300) request:*\")\n            .title(\"HTTP 2XX\")\n            .build());\n\n        var http_noise = new StreamExclusion(\"http-noise\", StreamExclusionArgs.builder()\n            .active(true)\n            .apps(            \n                \"nginx\",\n                \"apache\")\n            .query(\"robots.txt OR favicon.ico OR .well-known\")\n            .title(\"Noisy HTTP Paths\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  http-success:\n    type: logdna:StreamExclusion\n    properties:\n      active: true\n      apps:\n        - nginx\n        - apache\n      query: response:(>=200 <300) request:*\n      title: HTTP 2XX\n  http-noise:\n    type: logdna:StreamExclusion\n    properties:\n      active: true\n      apps:\n        - nginx\n        - apache\n      query: robots.txt OR favicon.ico OR .well-known\n      title: Noisy HTTP Paths\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nStream Exclusions can be imported by `id`, which can be found\n\nin the URL when editing the Stream Exclusion in the web UI:\n\nStream Exclusions can be imported by `id`, which can be found using the List Stream Exclusions API:\n\n1. Custom HTTP Headers - `servicekey: <SERVICE_KEY>` or `apikey: <SERVICE_KEY>`\n\ncurl --request GET \\\n\n     --url <API_URL>/v1/config/stream/exclusions \\\n\n     --header 'Accept: application/json' \\\n\n     --header 'servicekey: <SERVICE_KEY>'\n\n2. Basic Auth - `Authorization: Basic <encodeInBase64(credentials)>`.<br />\n\nCredentials is a string composed of formatted as `<username>:<password>`, our usage here entails substituting `<SERVICE_KEY>` as the username and leaving the password blank. The colon separator should still included in the resulting string `<SERVICE_KEY>:`\n\ncurl --request GET \\\n\n     --url <API_URL>/v1/config/stream/exclusions \\\n\n     --header 'Accept: application/json' \\\n\n     --header 'Authorization: Basic <BASE_64_ENCODED_CREDENTIALS>'\n\n```sh\n$ pulumi import logdna:index/streamExclusion:StreamExclusion your-rule-name <id>\n```\n\n",
      "properties": {
        "active": {
          "type": "boolean"
        },
        "apps": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "hosts": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "query": {
          "type": "string"
        },
        "title": {
          "type": "string"
        }
      },
      "type": "object",
      "inputProperties": {
        "active": {
          "type": "boolean"
        },
        "apps": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "hosts": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "query": {
          "type": "string"
        },
        "title": {
          "type": "string"
        }
      },
      "stateInputs": {
        "description": "Input properties used for looking up and filtering StreamExclusion resources.\n",
        "properties": {
          "active": {
            "type": "boolean"
          },
          "apps": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "hosts": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "query": {
            "type": "string"
          },
          "title": {
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "logdna:index/view:View": {
      "description": "## # Resource: `logdna.View`\n\nManages [LogDNA Views](https://docs.logdna.com/docs/views) as well as [View-specific Alerts](https://docs.logdna.com/docs/alerts#how-to-attach-an-alert-to-an-existing-view). These differ from `logdna.Alert` which are \"preset alerts\", while these are specific to certain views.  To get started, specify a `name` and one of: `apps`, `hosts`, `levels`, `query` or `tags`. We currently support configuring these view alerts to be sent via email, webhook, or PagerDuty.\n\n## Example - Basic View\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as logdna from \"@pulumi/logdna\";\n\nconst myView = new logdna.View(\"myView\", {\n    categories: [\"My Category\"],\n    query: \"level:debug my query\",\n});\n```\n```python\nimport pulumi\nimport pulumi_logdna as logdna\n\nmy_view = logdna.View(\"myView\",\n    categories=[\"My Category\"],\n    query=\"level:debug my query\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Logdna = Pulumi.Logdna;\n\nreturn await Deployment.RunAsync(() => \n{\n    var myView = new Logdna.View(\"myView\", new()\n    {\n        Categories = new[]\n        {\n            \"My Category\",\n        },\n        Query = \"level:debug my query\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/logdna/logdna\"\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 := logdna.NewView(ctx, \"myView\", &logdna.ViewArgs{\n\t\t\tCategories: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"My Category\"),\n\t\t\t},\n\t\t\tQuery: pulumi.String(\"level:debug my query\"),\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.logdna.View;\nimport com.pulumi.logdna.ViewArgs;\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 myView = new View(\"myView\", ViewArgs.builder()\n            .categories(\"My Category\")\n            .query(\"level:debug my query\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  myView:\n    type: logdna:View\n    properties:\n      categories:\n        - My Category\n      query: level:debug my query\n```\n<!--End PulumiCodeChooser -->\n\n## Example - Preset Alert View\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as logdna from \"@pulumi/logdna\";\n\nconst myAlert = new logdna.Alert(\"myAlert\", {});\nconst myView = new logdna.View(\"myView\", {\n    query: \"level:debug my query\",\n    categories: [\"My Category\"],\n    presetid: myAlert.alertId,\n}, {\n    dependsOn: [\"logdna_alert.my_alert\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_logdna as logdna\n\nmy_alert = logdna.Alert(\"myAlert\")\nmy_view = logdna.View(\"myView\",\n    query=\"level:debug my query\",\n    categories=[\"My Category\"],\n    presetid=my_alert.alert_id,\n    opts = pulumi.ResourceOptions(depends_on=[\"logdna_alert.my_alert\"]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Logdna = Pulumi.Logdna;\n\nreturn await Deployment.RunAsync(() => \n{\n    var myAlert = new Logdna.Alert(\"myAlert\");\n\n    var myView = new Logdna.View(\"myView\", new()\n    {\n        Query = \"level:debug my query\",\n        Categories = new[]\n        {\n            \"My Category\",\n        },\n        Presetid = myAlert.AlertId,\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            \"logdna_alert.my_alert\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/logdna/logdna\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmyAlert, err := logdna.NewAlert(ctx, \"myAlert\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = logdna.NewView(ctx, \"myView\", &logdna.ViewArgs{\n\t\t\tQuery: pulumi.String(\"level:debug my query\"),\n\t\t\tCategories: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"My Category\"),\n\t\t\t},\n\t\t\tPresetid: myAlert.AlertId,\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tpulumi.Resource(\"logdna_alert.my_alert\"),\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.logdna.Alert;\nimport com.pulumi.logdna.View;\nimport com.pulumi.logdna.ViewArgs;\nimport com.pulumi.resources.CustomResourceOptions;\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 myAlert = new Alert(\"myAlert\");\n\n        var myView = new View(\"myView\", ViewArgs.builder()\n            .query(\"level:debug my query\")\n            .categories(\"My Category\")\n            .presetid(myAlert.alertId())\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(\"logdna_alert.my_alert\")\n                .build());\n\n    }\n}\n```\n```yaml\nresources:\n  myAlert:\n    type: logdna:Alert\n  myView:\n    type: logdna:View\n    properties:\n      query: level:debug my query\n      categories:\n        - My Category\n      presetid: ${myAlert.alertId}\n    options:\n      dependsOn:\n        - logdna_alert.my_alert\n```\n<!--End PulumiCodeChooser -->\n\n## Example - Multi-channel View\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as logdna from \"@pulumi/logdna\";\n\nconst myView = new logdna.View(\"myView\", {\n    apps: [\n        \"app1\",\n        \"app2\",\n    ],\n    categories: [\n        \"Demo1\",\n        \"Demo2\",\n    ],\n    hosts: [\"host1\"],\n    levels: [\n        \"warn\",\n        \"error\",\n    ],\n    query: \"my query\",\n    tags: [\n        \"tag1\",\n        \"tag2\",\n    ],\n    emailChannels: [{\n        emails: [\"test@logdna.com\"],\n        immediate: \"false\",\n        operator: \"absence\",\n        terminal: \"true\",\n        timezone: \"Pacific/Samoa\",\n        triggerinterval: \"15m\",\n        triggerlimit: 15,\n    }],\n    pagerdutyChannels: [{\n        key: \"Your PagerDuty API key goes here\",\n        terminal: \"true\",\n        triggerinterval: \"15m\",\n        triggerlimit: 15,\n    }],\n    slackChannels: [{\n        immediate: \"false\",\n        operator: \"absence\",\n        terminal: \"true\",\n        triggerinterval: \"15m\",\n        triggerlimit: 15,\n        url: \"https://hooks.slack.com/services/identifier/secret\",\n    }],\n    webhookChannels: [{\n        bodytemplate: JSON.stringify({\n            message: \"Alerts from {{name}}\",\n        }),\n        headers: {\n            Authentication: \"auth_header_value\",\n            HeaderTwo: \"ValueTwo\",\n        },\n        immediate: \"false\",\n        method: \"post\",\n        terminal: \"true\",\n        triggerinterval: \"15m\",\n        triggerlimit: 15,\n        url: \"https://yourwebhook/endpoint\",\n    }],\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_logdna as logdna\n\nmy_view = logdna.View(\"myView\",\n    apps=[\n        \"app1\",\n        \"app2\",\n    ],\n    categories=[\n        \"Demo1\",\n        \"Demo2\",\n    ],\n    hosts=[\"host1\"],\n    levels=[\n        \"warn\",\n        \"error\",\n    ],\n    query=\"my query\",\n    tags=[\n        \"tag1\",\n        \"tag2\",\n    ],\n    email_channels=[{\n        \"emails\": [\"test@logdna.com\"],\n        \"immediate\": \"false\",\n        \"operator\": \"absence\",\n        \"terminal\": \"true\",\n        \"timezone\": \"Pacific/Samoa\",\n        \"triggerinterval\": \"15m\",\n        \"triggerlimit\": 15,\n    }],\n    pagerduty_channels=[{\n        \"key\": \"Your PagerDuty API key goes here\",\n        \"terminal\": \"true\",\n        \"triggerinterval\": \"15m\",\n        \"triggerlimit\": 15,\n    }],\n    slack_channels=[{\n        \"immediate\": \"false\",\n        \"operator\": \"absence\",\n        \"terminal\": \"true\",\n        \"triggerinterval\": \"15m\",\n        \"triggerlimit\": 15,\n        \"url\": \"https://hooks.slack.com/services/identifier/secret\",\n    }],\n    webhook_channels=[{\n        \"bodytemplate\": json.dumps({\n            \"message\": \"Alerts from {{name}}\",\n        }),\n        \"headers\": {\n            \"Authentication\": \"auth_header_value\",\n            \"HeaderTwo\": \"ValueTwo\",\n        },\n        \"immediate\": \"false\",\n        \"method\": \"post\",\n        \"terminal\": \"true\",\n        \"triggerinterval\": \"15m\",\n        \"triggerlimit\": 15,\n        \"url\": \"https://yourwebhook/endpoint\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing Logdna = Pulumi.Logdna;\n\nreturn await Deployment.RunAsync(() => \n{\n    var myView = new Logdna.View(\"myView\", new()\n    {\n        Apps = new[]\n        {\n            \"app1\",\n            \"app2\",\n        },\n        Categories = new[]\n        {\n            \"Demo1\",\n            \"Demo2\",\n        },\n        Hosts = new[]\n        {\n            \"host1\",\n        },\n        Levels = new[]\n        {\n            \"warn\",\n            \"error\",\n        },\n        Query = \"my query\",\n        Tags = new[]\n        {\n            \"tag1\",\n            \"tag2\",\n        },\n        EmailChannels = new[]\n        {\n            new Logdna.Inputs.ViewEmailChannelArgs\n            {\n                Emails = new[]\n                {\n                    \"test@logdna.com\",\n                },\n                Immediate = \"false\",\n                Operator = \"absence\",\n                Terminal = \"true\",\n                Timezone = \"Pacific/Samoa\",\n                Triggerinterval = \"15m\",\n                Triggerlimit = 15,\n            },\n        },\n        PagerdutyChannels = new[]\n        {\n            new Logdna.Inputs.ViewPagerdutyChannelArgs\n            {\n                Key = \"Your PagerDuty API key goes here\",\n                Terminal = \"true\",\n                Triggerinterval = \"15m\",\n                Triggerlimit = 15,\n            },\n        },\n        SlackChannels = new[]\n        {\n            new Logdna.Inputs.ViewSlackChannelArgs\n            {\n                Immediate = \"false\",\n                Operator = \"absence\",\n                Terminal = \"true\",\n                Triggerinterval = \"15m\",\n                Triggerlimit = 15,\n                Url = \"https://hooks.slack.com/services/identifier/secret\",\n            },\n        },\n        WebhookChannels = new[]\n        {\n            new Logdna.Inputs.ViewWebhookChannelArgs\n            {\n                Bodytemplate = JsonSerializer.Serialize(new Dictionary<string, object?>\n                {\n                    [\"message\"] = \"Alerts from {{name}}\",\n                }),\n                Headers = \n                {\n                    { \"Authentication\", \"auth_header_value\" },\n                    { \"HeaderTwo\", \"ValueTwo\" },\n                },\n                Immediate = \"false\",\n                Method = \"post\",\n                Terminal = \"true\",\n                Triggerinterval = \"15m\",\n                Triggerlimit = 15,\n                Url = \"https://yourwebhook/endpoint\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/logdna/logdna\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\"message\": \"Alerts from {{name}}\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson0 := string(tmpJSON0)\n\t\t_, err = logdna.NewView(ctx, \"myView\", &logdna.ViewArgs{\n\t\t\tApps: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"app1\"),\n\t\t\t\tpulumi.String(\"app2\"),\n\t\t\t},\n\t\t\tCategories: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"Demo1\"),\n\t\t\t\tpulumi.String(\"Demo2\"),\n\t\t\t},\n\t\t\tHosts: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"host1\"),\n\t\t\t},\n\t\t\tLevels: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"warn\"),\n\t\t\t\tpulumi.String(\"error\"),\n\t\t\t},\n\t\t\tQuery: pulumi.String(\"my query\"),\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"tag1\"),\n\t\t\t\tpulumi.String(\"tag2\"),\n\t\t\t},\n\t\t\tEmailChannels: logdna.ViewEmailChannelArray{\n\t\t\t\t&logdna.ViewEmailChannelArgs{\n\t\t\t\t\tEmails: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"test@logdna.com\"),\n\t\t\t\t\t},\n\t\t\t\t\tImmediate:       pulumi.String(\"false\"),\n\t\t\t\t\tOperator:        pulumi.String(\"absence\"),\n\t\t\t\t\tTerminal:        pulumi.String(\"true\"),\n\t\t\t\t\tTimezone:        pulumi.String(\"Pacific/Samoa\"),\n\t\t\t\t\tTriggerinterval: pulumi.String(\"15m\"),\n\t\t\t\t\tTriggerlimit:    pulumi.Float64(15),\n\t\t\t\t},\n\t\t\t},\n\t\t\tPagerdutyChannels: logdna.ViewPagerdutyChannelArray{\n\t\t\t\t&logdna.ViewPagerdutyChannelArgs{\n\t\t\t\t\tKey:             pulumi.String(\"Your PagerDuty API key goes here\"),\n\t\t\t\t\tTerminal:        pulumi.String(\"true\"),\n\t\t\t\t\tTriggerinterval: pulumi.String(\"15m\"),\n\t\t\t\t\tTriggerlimit:    pulumi.Float64(15),\n\t\t\t\t},\n\t\t\t},\n\t\t\tSlackChannels: logdna.ViewSlackChannelArray{\n\t\t\t\t&logdna.ViewSlackChannelArgs{\n\t\t\t\t\tImmediate:       pulumi.String(\"false\"),\n\t\t\t\t\tOperator:        pulumi.String(\"absence\"),\n\t\t\t\t\tTerminal:        pulumi.String(\"true\"),\n\t\t\t\t\tTriggerinterval: pulumi.String(\"15m\"),\n\t\t\t\t\tTriggerlimit:    pulumi.Float64(15),\n\t\t\t\t\tUrl:             pulumi.String(\"https://hooks.slack.com/services/identifier/secret\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tWebhookChannels: logdna.ViewWebhookChannelArray{\n\t\t\t\t&logdna.ViewWebhookChannelArgs{\n\t\t\t\t\tBodytemplate: pulumi.String(json0),\n\t\t\t\t\tHeaders: pulumi.StringMap{\n\t\t\t\t\t\t\"Authentication\": pulumi.String(\"auth_header_value\"),\n\t\t\t\t\t\t\"HeaderTwo\":      pulumi.String(\"ValueTwo\"),\n\t\t\t\t\t},\n\t\t\t\t\tImmediate:       pulumi.String(\"false\"),\n\t\t\t\t\tMethod:          pulumi.String(\"post\"),\n\t\t\t\t\tTerminal:        pulumi.String(\"true\"),\n\t\t\t\t\tTriggerinterval: pulumi.String(\"15m\"),\n\t\t\t\t\tTriggerlimit:    pulumi.Float64(15),\n\t\t\t\t\tUrl:             pulumi.String(\"https://yourwebhook/endpoint\"),\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.logdna.View;\nimport com.pulumi.logdna.ViewArgs;\nimport com.pulumi.logdna.inputs.ViewEmailChannelArgs;\nimport com.pulumi.logdna.inputs.ViewPagerdutyChannelArgs;\nimport com.pulumi.logdna.inputs.ViewSlackChannelArgs;\nimport com.pulumi.logdna.inputs.ViewWebhookChannelArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\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 myView = new View(\"myView\", ViewArgs.builder()\n            .apps(            \n                \"app1\",\n                \"app2\")\n            .categories(            \n                \"Demo1\",\n                \"Demo2\")\n            .hosts(\"host1\")\n            .levels(            \n                \"warn\",\n                \"error\")\n            .query(\"my query\")\n            .tags(            \n                \"tag1\",\n                \"tag2\")\n            .emailChannels(ViewEmailChannelArgs.builder()\n                .emails(\"test@logdna.com\")\n                .immediate(\"false\")\n                .operator(\"absence\")\n                .terminal(\"true\")\n                .timezone(\"Pacific/Samoa\")\n                .triggerinterval(\"15m\")\n                .triggerlimit(15)\n                .build())\n            .pagerdutyChannels(ViewPagerdutyChannelArgs.builder()\n                .key(\"Your PagerDuty API key goes here\")\n                .terminal(\"true\")\n                .triggerinterval(\"15m\")\n                .triggerlimit(15)\n                .build())\n            .slackChannels(ViewSlackChannelArgs.builder()\n                .immediate(\"false\")\n                .operator(\"absence\")\n                .terminal(\"true\")\n                .triggerinterval(\"15m\")\n                .triggerlimit(15)\n                .url(\"https://hooks.slack.com/services/identifier/secret\")\n                .build())\n            .webhookChannels(ViewWebhookChannelArgs.builder()\n                .bodytemplate(serializeJson(\n                    jsonObject(\n                        jsonProperty(\"message\", \"Alerts from {{name}}\")\n                    )))\n                .headers(Map.ofEntries(\n                    Map.entry(\"Authentication\", \"auth_header_value\"),\n                    Map.entry(\"HeaderTwo\", \"ValueTwo\")\n                ))\n                .immediate(\"false\")\n                .method(\"post\")\n                .terminal(\"true\")\n                .triggerinterval(\"15m\")\n                .triggerlimit(15)\n                .url(\"https://yourwebhook/endpoint\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  myView:\n    type: logdna:View\n    properties:\n      apps:\n        - app1\n        - app2\n      categories:\n        - Demo1\n        - Demo2\n      hosts:\n        - host1\n      levels:\n        - warn\n        - error\n      query: my query\n      tags:\n        - tag1\n        - tag2\n      emailChannels:\n        - emails:\n            - test@logdna.com\n          immediate: 'false'\n          operator: absence\n          terminal: 'true'\n          timezone: Pacific/Samoa\n          triggerinterval: 15m\n          triggerlimit: 15\n      pagerdutyChannels:\n        - key: Your PagerDuty API key goes here\n          terminal: 'true'\n          triggerinterval: 15m\n          triggerlimit: 15\n      slackChannels:\n        - immediate: 'false'\n          operator: absence\n          terminal: 'true'\n          triggerinterval: 15m\n          triggerlimit: 15\n          url: https://hooks.slack.com/services/identifier/secret\n      webhookChannels:\n        - bodytemplate:\n            fn::toJSON:\n              message: Alerts from {{name}}\n          headers:\n            Authentication: auth_header_value\n            HeaderTwo: ValueTwo\n          immediate: 'false'\n          method: post\n          terminal: 'true'\n          triggerinterval: 15m\n          triggerlimit: 15\n          url: https://yourwebhook/endpoint\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nViews can be imported by `id`, which can be found in the URL when editing the\n\nView in the web UI:\n\n```sh\n$ pulumi import logdna:index/view:View your-view-name <id>\n```\n\nNote that only the alert channels supported by this provider will be imported.\n\n",
      "properties": {
        "apps": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "categories": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "emailChannels": {
          "type": "array",
          "items": {
            "$ref": "#/types/logdna:index%2FViewEmailChannel:ViewEmailChannel"
          }
        },
        "hosts": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "levels": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "name": {
          "type": "string"
        },
        "pagerdutyChannels": {
          "type": "array",
          "items": {
            "$ref": "#/types/logdna:index%2FViewPagerdutyChannel:ViewPagerdutyChannel"
          }
        },
        "presetid": {
          "type": "string"
        },
        "query": {
          "type": "string"
        },
        "slackChannels": {
          "type": "array",
          "items": {
            "$ref": "#/types/logdna:index%2FViewSlackChannel:ViewSlackChannel"
          }
        },
        "tags": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "viewId": {
          "type": "string"
        },
        "webhookChannels": {
          "type": "array",
          "items": {
            "$ref": "#/types/logdna:index%2FViewWebhookChannel:ViewWebhookChannel"
          }
        }
      },
      "type": "object",
      "required": [
        "name",
        "viewId"
      ],
      "inputProperties": {
        "apps": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "categories": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "emailChannels": {
          "type": "array",
          "items": {
            "$ref": "#/types/logdna:index%2FViewEmailChannel:ViewEmailChannel"
          }
        },
        "hosts": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "levels": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "name": {
          "type": "string"
        },
        "pagerdutyChannels": {
          "type": "array",
          "items": {
            "$ref": "#/types/logdna:index%2FViewPagerdutyChannel:ViewPagerdutyChannel"
          }
        },
        "presetid": {
          "type": "string"
        },
        "query": {
          "type": "string"
        },
        "slackChannels": {
          "type": "array",
          "items": {
            "$ref": "#/types/logdna:index%2FViewSlackChannel:ViewSlackChannel"
          }
        },
        "tags": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "viewId": {
          "type": "string"
        },
        "webhookChannels": {
          "type": "array",
          "items": {
            "$ref": "#/types/logdna:index%2FViewWebhookChannel:ViewWebhookChannel"
          }
        }
      },
      "stateInputs": {
        "description": "Input properties used for looking up and filtering View resources.\n",
        "properties": {
          "apps": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "categories": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "emailChannels": {
            "type": "array",
            "items": {
              "$ref": "#/types/logdna:index%2FViewEmailChannel:ViewEmailChannel"
            }
          },
          "hosts": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "levels": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "name": {
            "type": "string"
          },
          "pagerdutyChannels": {
            "type": "array",
            "items": {
              "$ref": "#/types/logdna:index%2FViewPagerdutyChannel:ViewPagerdutyChannel"
            }
          },
          "presetid": {
            "type": "string"
          },
          "query": {
            "type": "string"
          },
          "slackChannels": {
            "type": "array",
            "items": {
              "$ref": "#/types/logdna:index%2FViewSlackChannel:ViewSlackChannel"
            }
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "viewId": {
            "type": "string"
          },
          "webhookChannels": {
            "type": "array",
            "items": {
              "$ref": "#/types/logdna:index%2FViewWebhookChannel:ViewWebhookChannel"
            }
          }
        },
        "type": "object"
      }
    }
  },
  "functions": {
    "logdna:index/getAlert:getAlert": {
      "description": "## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as logdna from \"@pulumi/logdna\";\n\nconst managed = new logdna.Alert(\"managed\", {\n    emailChannels: [{\n        emails: [\"test@logdna.com\"],\n        immediate: \"false\",\n        operator: \"presence\",\n        triggerlimit: 15,\n        triggerinterval: \"15m\",\n        terminal: \"true\",\n        timezone: \"Pacific/Samoa\",\n    }],\n    pagerdutyChannels: [{\n        immediate: \"true\",\n        key: \"Your PagerDuty API key goes here\",\n        terminal: \"true\",\n        triggerinterval: \"15m\",\n        triggerlimit: 15,\n    }],\n    slackChannels: [{\n        immediate: \"false\",\n        operator: \"absence\",\n        terminal: \"true\",\n        triggerinterval: \"15m\",\n        triggerlimit: 15,\n        url: \"https://hooks.slack.com/services/identifier/secret\",\n    }],\n    webhookChannels: [{\n        bodytemplate: JSON.stringify({\n            message: \"Alerts from {{name}}\",\n        }),\n        headers: {\n            Authentication: \"auth_header_value\",\n            HeaderTwo: \"ValueTwo\",\n        },\n        immediate: \"false\",\n        method: \"post\",\n        terminal: \"true\",\n        triggerinterval: \"15m\",\n        triggerlimit: 15,\n        url: \"https://yourwebhook/endpoint\",\n    }],\n});\nconst managedRemote = logdna.getAlertOutput({\n    presetid: managed.alertId,\n});\nconst externalRemote = logdna.getAlert({\n    presetid: \"xxxxxxxxxx\",\n});\n// pass in data source attributes as arguments for module(s) declared in the same config\nconst test = new logdna.View(\"test\", {\n    query: \"level:debug my query\",\n    emailChannels: managedRemote.apply(managedRemote =\u003e managedRemote.emailChannels),\n    pagerdutyChannels: externalRemote.then(externalRemote =\u003e externalRemote.pagerdutyChannels),\n    slackChannels: externalRemote.then(externalRemote =\u003e externalRemote.slackChannels),\n    webhookChannels: externalRemote.then(externalRemote =\u003e externalRemote.webhookChannels),\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_logdna as logdna\n\nmanaged = logdna.Alert(\"managed\",\n    email_channels=[{\n        \"emails\": [\"test@logdna.com\"],\n        \"immediate\": \"false\",\n        \"operator\": \"presence\",\n        \"triggerlimit\": 15,\n        \"triggerinterval\": \"15m\",\n        \"terminal\": \"true\",\n        \"timezone\": \"Pacific/Samoa\",\n    }],\n    pagerduty_channels=[{\n        \"immediate\": \"true\",\n        \"key\": \"Your PagerDuty API key goes here\",\n        \"terminal\": \"true\",\n        \"triggerinterval\": \"15m\",\n        \"triggerlimit\": 15,\n    }],\n    slack_channels=[{\n        \"immediate\": \"false\",\n        \"operator\": \"absence\",\n        \"terminal\": \"true\",\n        \"triggerinterval\": \"15m\",\n        \"triggerlimit\": 15,\n        \"url\": \"https://hooks.slack.com/services/identifier/secret\",\n    }],\n    webhook_channels=[{\n        \"bodytemplate\": json.dumps({\n            \"message\": \"Alerts from {{name}}\",\n        }),\n        \"headers\": {\n            \"Authentication\": \"auth_header_value\",\n            \"HeaderTwo\": \"ValueTwo\",\n        },\n        \"immediate\": \"false\",\n        \"method\": \"post\",\n        \"terminal\": \"true\",\n        \"triggerinterval\": \"15m\",\n        \"triggerlimit\": 15,\n        \"url\": \"https://yourwebhook/endpoint\",\n    }])\nmanaged_remote = logdna.get_alert_output(presetid=managed.alert_id)\nexternal_remote = logdna.get_alert(presetid=\"xxxxxxxxxx\")\n# pass in data source attributes as arguments for module(s) declared in the same config\ntest = logdna.View(\"test\",\n    query=\"level:debug my query\",\n    email_channels=managed_remote.email_channels,\n    pagerduty_channels=external_remote.pagerduty_channels,\n    slack_channels=external_remote.slack_channels,\n    webhook_channels=external_remote.webhook_channels)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing Logdna = Pulumi.Logdna;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var managed = new Logdna.Alert(\"managed\", new()\n    {\n        EmailChannels = new[]\n        {\n            new Logdna.Inputs.AlertEmailChannelArgs\n            {\n                Emails = new[]\n                {\n                    \"test@logdna.com\",\n                },\n                Immediate = \"false\",\n                Operator = \"presence\",\n                Triggerlimit = 15,\n                Triggerinterval = \"15m\",\n                Terminal = \"true\",\n                Timezone = \"Pacific/Samoa\",\n            },\n        },\n        PagerdutyChannels = new[]\n        {\n            new Logdna.Inputs.AlertPagerdutyChannelArgs\n            {\n                Immediate = \"true\",\n                Key = \"Your PagerDuty API key goes here\",\n                Terminal = \"true\",\n                Triggerinterval = \"15m\",\n                Triggerlimit = 15,\n            },\n        },\n        SlackChannels = new[]\n        {\n            new Logdna.Inputs.AlertSlackChannelArgs\n            {\n                Immediate = \"false\",\n                Operator = \"absence\",\n                Terminal = \"true\",\n                Triggerinterval = \"15m\",\n                Triggerlimit = 15,\n                Url = \"https://hooks.slack.com/services/identifier/secret\",\n            },\n        },\n        WebhookChannels = new[]\n        {\n            new Logdna.Inputs.AlertWebhookChannelArgs\n            {\n                Bodytemplate = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n                {\n                    [\"message\"] = \"Alerts from {{name}}\",\n                }),\n                Headers = \n                {\n                    { \"Authentication\", \"auth_header_value\" },\n                    { \"HeaderTwo\", \"ValueTwo\" },\n                },\n                Immediate = \"false\",\n                Method = \"post\",\n                Terminal = \"true\",\n                Triggerinterval = \"15m\",\n                Triggerlimit = 15,\n                Url = \"https://yourwebhook/endpoint\",\n            },\n        },\n    });\n\n    var managedRemote = Logdna.GetAlert.Invoke(new()\n    {\n        Presetid = managed.AlertId,\n    });\n\n    var externalRemote = Logdna.GetAlert.Invoke(new()\n    {\n        Presetid = \"xxxxxxxxxx\",\n    });\n\n    // pass in data source attributes as arguments for module(s) declared in the same config\n    var test = new Logdna.View(\"test\", new()\n    {\n        Query = \"level:debug my query\",\n        EmailChannels = managedRemote.Apply(getAlertResult =\u003e getAlertResult.EmailChannels),\n        PagerdutyChannels = externalRemote.Apply(getAlertResult =\u003e getAlertResult.PagerdutyChannels),\n        SlackChannels = externalRemote.Apply(getAlertResult =\u003e getAlertResult.SlackChannels),\n        WebhookChannels = externalRemote.Apply(getAlertResult =\u003e getAlertResult.WebhookChannels),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/logdna/logdna\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\"message\": \"Alerts from {{name}}\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson0 := string(tmpJSON0)\n\t\tmanaged, err := logdna.NewAlert(ctx, \"managed\", \u0026logdna.AlertArgs{\n\t\t\tEmailChannels: logdna.AlertEmailChannelArray{\n\t\t\t\t\u0026logdna.AlertEmailChannelArgs{\n\t\t\t\t\tEmails: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"test@logdna.com\"),\n\t\t\t\t\t},\n\t\t\t\t\tImmediate:       pulumi.String(\"false\"),\n\t\t\t\t\tOperator:        pulumi.String(\"presence\"),\n\t\t\t\t\tTriggerlimit:    pulumi.Float64(15),\n\t\t\t\t\tTriggerinterval: pulumi.String(\"15m\"),\n\t\t\t\t\tTerminal:        pulumi.String(\"true\"),\n\t\t\t\t\tTimezone:        pulumi.String(\"Pacific/Samoa\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tPagerdutyChannels: logdna.AlertPagerdutyChannelArray{\n\t\t\t\t\u0026logdna.AlertPagerdutyChannelArgs{\n\t\t\t\t\tImmediate:       pulumi.String(\"true\"),\n\t\t\t\t\tKey:             pulumi.String(\"Your PagerDuty API key goes here\"),\n\t\t\t\t\tTerminal:        pulumi.String(\"true\"),\n\t\t\t\t\tTriggerinterval: pulumi.String(\"15m\"),\n\t\t\t\t\tTriggerlimit:    pulumi.Float64(15),\n\t\t\t\t},\n\t\t\t},\n\t\t\tSlackChannels: logdna.AlertSlackChannelArray{\n\t\t\t\t\u0026logdna.AlertSlackChannelArgs{\n\t\t\t\t\tImmediate:       pulumi.String(\"false\"),\n\t\t\t\t\tOperator:        pulumi.String(\"absence\"),\n\t\t\t\t\tTerminal:        pulumi.String(\"true\"),\n\t\t\t\t\tTriggerinterval: pulumi.String(\"15m\"),\n\t\t\t\t\tTriggerlimit:    pulumi.Float64(15),\n\t\t\t\t\tUrl:             pulumi.String(\"https://hooks.slack.com/services/identifier/secret\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tWebhookChannels: logdna.AlertWebhookChannelArray{\n\t\t\t\t\u0026logdna.AlertWebhookChannelArgs{\n\t\t\t\t\tBodytemplate: pulumi.String(json0),\n\t\t\t\t\tHeaders: pulumi.StringMap{\n\t\t\t\t\t\t\"Authentication\": pulumi.String(\"auth_header_value\"),\n\t\t\t\t\t\t\"HeaderTwo\":      pulumi.String(\"ValueTwo\"),\n\t\t\t\t\t},\n\t\t\t\t\tImmediate:       pulumi.String(\"false\"),\n\t\t\t\t\tMethod:          pulumi.String(\"post\"),\n\t\t\t\t\tTerminal:        pulumi.String(\"true\"),\n\t\t\t\t\tTriggerinterval: pulumi.String(\"15m\"),\n\t\t\t\t\tTriggerlimit:    pulumi.Float64(15),\n\t\t\t\t\tUrl:             pulumi.String(\"https://yourwebhook/endpoint\"),\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\tmanagedRemote := logdna.LookupAlertOutput(ctx, logdna.GetAlertOutputArgs{\n\t\t\tPresetid: managed.AlertId,\n\t\t}, nil)\n\t\texternalRemote, err := logdna.LookupAlert(ctx, \u0026logdna.LookupAlertArgs{\n\t\t\tPresetid: \"xxxxxxxxxx\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// pass in data source attributes as arguments for module(s) declared in the same config\n\t\t_, err = logdna.NewView(ctx, \"test\", \u0026logdna.ViewArgs{\n\t\t\tQuery: pulumi.String(\"level:debug my query\"),\n\t\t\tEmailChannels: []logdna.ViewEmailChannel(managedRemote.ApplyT(func(managedRemote logdna.GetAlertResult) ([]logdna.GetAlertEmailChannel, error) {\n\t\t\t\treturn []logdna.GetAlertEmailChannel(managedRemote.EmailChannels), nil\n\t\t\t}).([]logdna.GetAlertEmailChannelOutput)),\n\t\t\tPagerdutyChannels: []logdna.GetAlertPagerdutyChannel(externalRemote.PagerdutyChannels),\n\t\t\tSlackChannels:     []logdna.GetAlertSlackChannel(externalRemote.SlackChannels),\n\t\t\tWebhookChannels:   []logdna.GetAlertWebhookChannel(externalRemote.WebhookChannels),\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.logdna.Alert;\nimport com.pulumi.logdna.AlertArgs;\nimport com.pulumi.logdna.inputs.AlertEmailChannelArgs;\nimport com.pulumi.logdna.inputs.AlertPagerdutyChannelArgs;\nimport com.pulumi.logdna.inputs.AlertSlackChannelArgs;\nimport com.pulumi.logdna.inputs.AlertWebhookChannelArgs;\nimport com.pulumi.logdna.LogdnaFunctions;\nimport com.pulumi.logdna.inputs.GetAlertArgs;\nimport com.pulumi.logdna.View;\nimport com.pulumi.logdna.ViewArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\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 managed = new Alert(\"managed\", AlertArgs.builder()\n            .emailChannels(AlertEmailChannelArgs.builder()\n                .emails(\"test@logdna.com\")\n                .immediate(\"false\")\n                .operator(\"presence\")\n                .triggerlimit(15)\n                .triggerinterval(\"15m\")\n                .terminal(\"true\")\n                .timezone(\"Pacific/Samoa\")\n                .build())\n            .pagerdutyChannels(AlertPagerdutyChannelArgs.builder()\n                .immediate(\"true\")\n                .key(\"Your PagerDuty API key goes here\")\n                .terminal(\"true\")\n                .triggerinterval(\"15m\")\n                .triggerlimit(15)\n                .build())\n            .slackChannels(AlertSlackChannelArgs.builder()\n                .immediate(\"false\")\n                .operator(\"absence\")\n                .terminal(\"true\")\n                .triggerinterval(\"15m\")\n                .triggerlimit(15)\n                .url(\"https://hooks.slack.com/services/identifier/secret\")\n                .build())\n            .webhookChannels(AlertWebhookChannelArgs.builder()\n                .bodytemplate(serializeJson(\n                    jsonObject(\n                        jsonProperty(\"message\", \"Alerts from {{name}}\")\n                    )))\n                .headers(Map.ofEntries(\n                    Map.entry(\"Authentication\", \"auth_header_value\"),\n                    Map.entry(\"HeaderTwo\", \"ValueTwo\")\n                ))\n                .immediate(\"false\")\n                .method(\"post\")\n                .terminal(\"true\")\n                .triggerinterval(\"15m\")\n                .triggerlimit(15)\n                .url(\"https://yourwebhook/endpoint\")\n                .build())\n            .build());\n\n        final var managedRemote = LogdnaFunctions.getAlert(GetAlertArgs.builder()\n            .presetid(managed.alertId())\n            .build());\n\n        final var externalRemote = LogdnaFunctions.getAlert(GetAlertArgs.builder()\n            .presetid(\"xxxxxxxxxx\")\n            .build());\n\n        // pass in data source attributes as arguments for module(s) declared in the same config\n        var test = new View(\"test\", ViewArgs.builder()\n            .query(\"level:debug my query\")\n            .emailChannels(managedRemote.applyValue(getAlertResult -\u003e getAlertResult).applyValue(managedRemote -\u003e managedRemote.applyValue(getAlertResult -\u003e getAlertResult.emailChannels())))\n            .pagerdutyChannels(externalRemote.applyValue(getAlertResult -\u003e getAlertResult.pagerdutyChannels()))\n            .slackChannels(externalRemote.applyValue(getAlertResult -\u003e getAlertResult.slackChannels()))\n            .webhookChannels(externalRemote.applyValue(getAlertResult -\u003e getAlertResult.webhookChannels()))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  managed:\n    type: logdna:Alert\n    properties:\n      emailChannels:\n        - emails:\n            - test@logdna.com\n          immediate: 'false'\n          operator: presence\n          triggerlimit: 15\n          triggerinterval: 15m\n          terminal: 'true'\n          timezone: Pacific/Samoa\n      pagerdutyChannels:\n        - immediate: 'true'\n          key: Your PagerDuty API key goes here\n          terminal: 'true'\n          triggerinterval: 15m\n          triggerlimit: 15\n      slackChannels:\n        - immediate: 'false'\n          operator: absence\n          terminal: 'true'\n          triggerinterval: 15m\n          triggerlimit: 15\n          url: https://hooks.slack.com/services/identifier/secret\n      webhookChannels:\n        - bodytemplate:\n            fn::toJSON:\n              message: Alerts from {{name}}\n          headers:\n            Authentication: auth_header_value\n            HeaderTwo: ValueTwo\n          immediate: 'false'\n          method: post\n          terminal: 'true'\n          triggerinterval: 15m\n          triggerlimit: 15\n          url: https://yourwebhook/endpoint\n  # pass in data source attributes as arguments for module(s) declared in the same config\n  test:\n    type: logdna:View\n    properties:\n      query: level:debug my query\n      emailChannels: ${managedRemote.emailChannels}\n      pagerdutyChannels: ${externalRemote.pagerdutyChannels}\n      slackChannels: ${externalRemote.slackChannels}\n      webhookChannels: ${externalRemote.webhookChannels}\nvariables:\n  managedRemote:\n    fn::invoke:\n      function: logdna:getAlert\n      arguments:\n        presetid: ${managed.alertId}\n  externalRemote:\n    fn::invoke:\n      function: logdna:getAlert\n      arguments:\n        presetid: xxxxxxxxxx\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getAlert.\n",
        "properties": {
          "id": {
            "type": "string"
          },
          "presetid": {
            "type": "string"
          }
        },
        "type": "object",
        "required": [
          "presetid"
        ]
      },
      "outputs": {
        "description": "A collection of values returned by getAlert.\n",
        "properties": {
          "emailChannels": {
            "description": "List of notifications configured via email in the given preset alert\n",
            "items": {
              "$ref": "#/types/logdna:index%2FgetAlertEmailChannel:getAlertEmailChannel"
            },
            "type": "array"
          },
          "id": {
            "type": "string"
          },
          "name": {
            "description": "Name of the given preset alert\n",
            "type": "string"
          },
          "pagerdutyChannels": {
            "description": "List of notifications configured via PagerDuty in the given preset alert\n",
            "items": {
              "$ref": "#/types/logdna:index%2FgetAlertPagerdutyChannel:getAlertPagerdutyChannel"
            },
            "type": "array"
          },
          "presetid": {
            "type": "string"
          },
          "slackChannels": {
            "description": "List of notifications configured via Slack in the given preset alert\n",
            "items": {
              "$ref": "#/types/logdna:index%2FgetAlertSlackChannel:getAlertSlackChannel"
            },
            "type": "array"
          },
          "webhookChannels": {
            "description": "List of notifications configured via webhook(s) in the given preset alert\n",
            "items": {
              "$ref": "#/types/logdna:index%2FgetAlertWebhookChannel:getAlertWebhookChannel"
            },
            "type": "array"
          }
        },
        "required": [
          "emailChannels",
          "id",
          "name",
          "pagerdutyChannels",
          "presetid",
          "slackChannels",
          "webhookChannels"
        ],
        "type": "object"
      }
    }
  },
  "parameterization": {
    "baseProvider": {
      "name": "terraform-provider",
      "version": "0.10.0"
    },
    "parameter": "eyJyZW1vdGUiOnsidXJsIjoicmVnaXN0cnkub3BlbnRvZnUub3JnL2xvZ2RuYS9sb2dkbmEiLCJ2ZXJzaW9uIjoiMS4xNy4yIn19"
  }
}
