{
  "name": "sentry",
  "displayName": "Sentry",
  "version": "0.0.9",
  "description": "A Pulumi package for creating and managing Sentry resources.",
  "keywords": [
    "pulumi",
    "sentry",
    "category/cloud"
  ],
  "homepage": "https://github.com/pulumiverse",
  "license": "Apache-2.0",
  "attribution": "This Pulumi package is based on the [`sentry` Terraform Provider](https://github.com/jianyuan/terraform-provider-sentry).",
  "repository": "https://github.com/pulumiverse/pulumi-sentry",
  "logoUrl": "https://raw.githubusercontent.com/pulumiverse/pulumi-sentry/main/sentry.svg",
  "pluginDownloadURL": "github://api.github.com/pulumiverse",
  "publisher": "Pulumiverse",
  "meta": {
    "moduleFormat": "(.*)(?:/[^/]*)"
  },
  "language": {
    "csharp": {
      "packageReferences": {
        "Pulumi": "3.*"
      },
      "compatibility": "tfbridge20",
      "rootNamespace": "Pulumiverse",
      "respectSchemaVersion": true
    },
    "go": {
      "importBasePath": "github.com/pulumiverse/pulumi-sentry/sdk/go/sentry",
      "generateResourceContainerTypes": true,
      "generateExtraInputTypes": true,
      "respectSchemaVersion": true
    },
    "nodejs": {
      "packageName": "@pulumiverse/sentry",
      "packageDescription": "A Pulumi package for creating and managing Sentry resources.",
      "readme": "> This provider is a derived work of the [Terraform Provider](https://github.com/jianyuan/terraform-provider-sentry)\n> distributed under [MPL 2.0](https://www.mozilla.org/en-US/MPL/2.0/). If you encounter a bug or missing feature,\n> first check the [`pulumi-sentry` repo](https://github.com/pulumiverse/pulumi-sentry/issues); however, if that doesn't turn up anything,\n> please consult the source [`terraform-provider-sentry` repo](https://github.com/jianyuan/terraform-provider-sentry/issues).",
      "dependencies": {
        "@pulumi/pulumi": "^3.0.0"
      },
      "devDependencies": {
        "@types/mime": "^2.0.0",
        "@types/node": "^10.0.0"
      },
      "compatibility": "tfbridge20",
      "disableUnionOutputTypes": true,
      "respectSchemaVersion": true
    },
    "python": {
      "packageName": "pulumiverse_sentry",
      "requires": {
        "pulumi": ">=3.0.0,<4.0.0"
      },
      "readme": "> This provider is a derived work of the [Terraform Provider](https://github.com/jianyuan/terraform-provider-sentry)\n> distributed under [MPL 2.0](https://www.mozilla.org/en-US/MPL/2.0/). If you encounter a bug or missing feature,\n> first check the [`pulumi-sentry` repo](https://github.com/pulumiverse/pulumi-sentry/issues); however, if that doesn't turn up anything,\n> please consult the source [`terraform-provider-sentry` repo](https://github.com/jianyuan/terraform-provider-sentry/issues).",
      "compatibility": "tfbridge20",
      "respectSchemaVersion": true,
      "pyproject": {
        "enabled": true
      }
    }
  },
  "config": {
    "variables": {
      "baseUrl": {
        "type": "string",
        "description": "The target Sentry Base API URL in the format `https://[hostname]/api/`. The default value is `https://sentry.io/api/`.\nThe value must be provided when working with Sentry On-Premise. The value can be sourced from the `SENTRY_BASE_URL`\nenvironment variable.\n",
        "defaultInfo": {
          "environment": [
            "SENTRY_BASE_URL"
          ]
        }
      },
      "token": {
        "type": "string",
        "description": "The authentication token used to connect to Sentry. The value can be sourced from the `SENTRY_AUTH_TOKEN` environment\nvariable.\n",
        "defaultInfo": {
          "environment": [
            "SENTRY_TOKEN"
          ]
        },
        "secret": true
      }
    }
  },
  "types": {
    "sentry:index/SentryDashboardWidget:SentryDashboardWidget": {
      "properties": {
        "displayType": {
          "type": "string"
        },
        "id": {
          "type": "string",
          "description": "The ID of this resource.\n"
        },
        "interval": {
          "type": "string"
        },
        "layout": {
          "$ref": "#/types/sentry:index%2FSentryDashboardWidgetLayout:SentryDashboardWidgetLayout"
        },
        "limit": {
          "type": "integer"
        },
        "queries": {
          "type": "array",
          "items": {
            "$ref": "#/types/sentry:index%2FSentryDashboardWidgetQuery:SentryDashboardWidgetQuery"
          }
        },
        "title": {
          "type": "string"
        },
        "widgetType": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "displayType",
        "layout",
        "queries",
        "title"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "displayType",
            "id",
            "interval",
            "layout",
            "limit",
            "queries",
            "title",
            "widgetType"
          ]
        }
      }
    },
    "sentry:index/SentryDashboardWidgetLayout:SentryDashboardWidgetLayout": {
      "properties": {
        "h": {
          "type": "integer"
        },
        "minH": {
          "type": "integer"
        },
        "w": {
          "type": "integer"
        },
        "x": {
          "type": "integer"
        },
        "y": {
          "type": "integer"
        }
      },
      "type": "object",
      "required": [
        "h",
        "minH",
        "w",
        "x",
        "y"
      ]
    },
    "sentry:index/SentryDashboardWidgetQuery:SentryDashboardWidgetQuery": {
      "properties": {
        "aggregates": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "columns": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "conditions": {
          "type": "string"
        },
        "fieldAliases": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "fields": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "id": {
          "type": "string",
          "description": "The ID of this resource.\n"
        },
        "name": {
          "type": "string"
        },
        "orderBy": {
          "type": "string"
        }
      },
      "type": "object",
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "aggregates",
            "columns",
            "conditions",
            "fieldAliases",
            "fields",
            "id",
            "orderBy"
          ]
        }
      }
    },
    "sentry:index/SentryMetricAlertTrigger:SentryMetricAlertTrigger": {
      "properties": {
        "actions": {
          "type": "array",
          "items": {
            "$ref": "#/types/sentry:index%2FSentryMetricAlertTriggerAction:SentryMetricAlertTriggerAction"
          }
        },
        "alertThreshold": {
          "type": "number"
        },
        "id": {
          "type": "string",
          "description": "The ID of this resource.\n"
        },
        "label": {
          "type": "string"
        },
        "resolveThreshold": {
          "type": "number"
        },
        "thresholdType": {
          "type": "integer"
        }
      },
      "type": "object",
      "required": [
        "alertThreshold",
        "label",
        "thresholdType"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "alertThreshold",
            "id",
            "label",
            "resolveThreshold",
            "thresholdType"
          ]
        }
      }
    },
    "sentry:index/SentryMetricAlertTriggerAction:SentryMetricAlertTriggerAction": {
      "properties": {
        "id": {
          "type": "string",
          "description": "The ID of this resource.\n"
        },
        "integrationId": {
          "type": "integer"
        },
        "targetIdentifier": {
          "type": "string"
        },
        "targetType": {
          "type": "string"
        },
        "type": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "targetType",
        "type"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "id",
            "targetType",
            "type"
          ]
        }
      }
    },
    "sentry:index/getSentryDashboardWidget:getSentryDashboardWidget": {
      "properties": {
        "displayType": {
          "type": "string"
        },
        "id": {
          "type": "string"
        },
        "interval": {
          "type": "string"
        },
        "layouts": {
          "type": "array",
          "items": {
            "$ref": "#/types/sentry:index%2FgetSentryDashboardWidgetLayout:getSentryDashboardWidgetLayout"
          }
        },
        "limit": {
          "type": "integer"
        },
        "queries": {
          "type": "array",
          "items": {
            "$ref": "#/types/sentry:index%2FgetSentryDashboardWidgetQuery:getSentryDashboardWidgetQuery"
          }
        },
        "title": {
          "type": "string"
        },
        "widgetType": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "displayType",
        "id",
        "interval",
        "layouts",
        "limit",
        "queries",
        "title",
        "widgetType"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "sentry:index/getSentryDashboardWidgetLayout:getSentryDashboardWidgetLayout": {
      "properties": {
        "h": {
          "type": "integer"
        },
        "minH": {
          "type": "integer"
        },
        "w": {
          "type": "integer"
        },
        "x": {
          "type": "integer"
        },
        "y": {
          "type": "integer"
        }
      },
      "type": "object",
      "required": [
        "h",
        "minH",
        "w",
        "x",
        "y"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "sentry:index/getSentryDashboardWidgetQuery:getSentryDashboardWidgetQuery": {
      "properties": {
        "aggregates": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "columns": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "conditions": {
          "type": "string"
        },
        "fieldAliases": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "fields": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "orderBy": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "aggregates",
        "columns",
        "conditions",
        "fieldAliases",
        "fields",
        "id",
        "name",
        "orderBy"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "sentry:index/getSentryMetricAlertTrigger:getSentryMetricAlertTrigger": {
      "properties": {
        "actions": {
          "type": "array",
          "items": {
            "$ref": "#/types/sentry:index%2FgetSentryMetricAlertTriggerAction:getSentryMetricAlertTriggerAction"
          }
        },
        "alertThreshold": {
          "type": "number"
        },
        "id": {
          "type": "string"
        },
        "label": {
          "type": "string"
        },
        "resolveThreshold": {
          "type": "number"
        },
        "thresholdType": {
          "type": "integer"
        }
      },
      "type": "object",
      "required": [
        "actions",
        "alertThreshold",
        "id",
        "label",
        "resolveThreshold",
        "thresholdType"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "sentry:index/getSentryMetricAlertTriggerAction:getSentryMetricAlertTriggerAction": {
      "properties": {
        "id": {
          "type": "string"
        },
        "integrationId": {
          "type": "integer"
        },
        "targetIdentifier": {
          "type": "string"
        },
        "targetType": {
          "type": "string"
        },
        "type": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "id",
        "integrationId",
        "targetIdentifier",
        "targetType",
        "type"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    }
  },
  "provider": {
    "description": "The provider type for the sentry 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": {
      "baseUrl": {
        "type": "string",
        "description": "The target Sentry Base API URL in the format `https://[hostname]/api/`. The default value is `https://sentry.io/api/`.\nThe value must be provided when working with Sentry On-Premise. The value can be sourced from the `SENTRY_BASE_URL`\nenvironment variable.\n"
      },
      "token": {
        "type": "string",
        "description": "The authentication token used to connect to Sentry. The value can be sourced from the `SENTRY_AUTH_TOKEN` environment\nvariable.\n",
        "secret": true
      }
    },
    "type": "object",
    "inputProperties": {
      "baseUrl": {
        "type": "string",
        "description": "The target Sentry Base API URL in the format `https://[hostname]/api/`. The default value is `https://sentry.io/api/`.\nThe value must be provided when working with Sentry On-Premise. The value can be sourced from the `SENTRY_BASE_URL`\nenvironment variable.\n",
        "defaultInfo": {
          "environment": [
            "SENTRY_BASE_URL"
          ]
        }
      },
      "token": {
        "type": "string",
        "description": "The authentication token used to connect to Sentry. The value can be sourced from the `SENTRY_AUTH_TOKEN` environment\nvariable.\n",
        "defaultInfo": {
          "environment": [
            "SENTRY_TOKEN"
          ]
        },
        "secret": true
      }
    }
  },
  "resources": {
    "sentry:index/sentryDashboard:SentryDashboard": {
      "description": "Sentry Dashboard resource.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as sentry from \"@pulumiverse/sentry\";\n\nconst main = new sentry.SentryDashboard(\"main\", {\n    organization: mainSentryOrganization.id,\n    title: \"Test dashboard\",\n    widgets: [\n        {\n            title: \"Number of Errors\",\n            displayType: \"big_number\",\n            interval: \"5m\",\n            widgetType: \"discover\",\n            queries: [{\n                fields: [\"count()\"],\n                aggregates: [\"count()\"],\n                conditions: \"!event.type:transaction\",\n                orderBy: \"count()\",\n            }],\n            layout: {\n                x: 0,\n                y: 0,\n                w: 1,\n                h: 1,\n                minH: 1,\n            },\n        },\n        {\n            title: \"Number of Issues\",\n            displayType: \"big_number\",\n            interval: \"5m\",\n            widgetType: \"discover\",\n            queries: [{\n                fields: [\"count_unique(issue)\"],\n                aggregates: [\"count_unique(issue)\"],\n                conditions: \"!event.type:transaction\",\n                orderBy: \"count_unique(issue)\",\n            }],\n            layout: {\n                x: 1,\n                y: 0,\n                w: 1,\n                h: 1,\n                minH: 1,\n            },\n        },\n        {\n            title: \"Events\",\n            displayType: \"line\",\n            interval: \"5m\",\n            widgetType: \"discover\",\n            queries: [{\n                name: \"Events\",\n                fields: [\"count()\"],\n                aggregates: [\"count()\"],\n                conditions: \"!event.type:transaction\",\n                orderBy: \"count()\",\n            }],\n            layout: {\n                x: 2,\n                y: 0,\n                w: 4,\n                h: 2,\n                minH: 2,\n            },\n        },\n        {\n            title: \"Affected Users\",\n            displayType: \"line\",\n            interval: \"5m\",\n            widgetType: \"discover\",\n            queries: [\n                {\n                    name: \"Known Users\",\n                    fields: [\"count_unique(user)\"],\n                    aggregates: [\"count_unique(user)\"],\n                    conditions: \"has:user.email !event.type:transaction\",\n                    orderBy: \"count_unique(user)\",\n                },\n                {\n                    name: \"Anonymous Users\",\n                    fields: [\"count_unique(user)\"],\n                    aggregates: [\"count_unique(user)\"],\n                    conditions: \"!has:user.email !event.type:transaction\",\n                    orderBy: \"count_unique(user)\",\n                },\n            ],\n            layout: {\n                x: 1,\n                y: 2,\n                w: 1,\n                h: 2,\n                minH: 2,\n            },\n        },\n        {\n            title: \"Handled vs. Unhandled\",\n            displayType: \"line\",\n            interval: \"5m\",\n            widgetType: \"discover\",\n            queries: [\n                {\n                    name: \"Handled\",\n                    fields: [\"count()\"],\n                    aggregates: [\"count()\"],\n                    conditions: \"error.handled:true\",\n                    orderBy: \"count()\",\n                },\n                {\n                    name: \"Unhandled\",\n                    fields: [\"count()\"],\n                    aggregates: [\"count()\"],\n                    conditions: \"error.handled:false\",\n                    orderBy: \"count()\",\n                },\n            ],\n            layout: {\n                x: 0,\n                y: 2,\n                w: 1,\n                h: 2,\n                minH: 2,\n            },\n        },\n        {\n            title: \"Errors by Country\",\n            displayType: \"world_map\",\n            interval: \"5m\",\n            widgetType: \"discover\",\n            queries: [{\n                fields: [\"count()\"],\n                aggregates: [\"count()\"],\n                conditions: \"!event.type:transaction has:geo.country_code\",\n                orderBy: \"count()\",\n            }],\n            layout: {\n                x: 4,\n                y: 6,\n                w: 2,\n                h: 4,\n                minH: 2,\n            },\n        },\n        {\n            title: \"High Throughput Transactions\",\n            displayType: \"table\",\n            interval: \"5m\",\n            widgetType: \"discover\",\n            queries: [{\n                fields: [\n                    \"count()\",\n                    \"transaction\",\n                ],\n                aggregates: [\"count()\"],\n                columns: [\"transaction\"],\n                conditions: \"!event.type:error\",\n                orderBy: \"-count()\",\n            }],\n            layout: {\n                x: 0,\n                y: 6,\n                w: 2,\n                h: 4,\n                minH: 2,\n            },\n        },\n        {\n            title: \"Errors by Browser\",\n            displayType: \"table\",\n            interval: \"5m\",\n            widgetType: \"discover\",\n            queries: [{\n                fields: [\n                    \"browser.name\",\n                    \"count()\",\n                ],\n                aggregates: [\"count()\"],\n                columns: [\"browser.name\"],\n                conditions: \"!event.type:transaction has:browser.name\",\n                orderBy: \"-count()\",\n            }],\n            layout: {\n                x: 5,\n                y: 2,\n                w: 1,\n                h: 4,\n                minH: 2,\n            },\n        },\n        {\n            title: \"Overall User Misery\",\n            displayType: \"big_number\",\n            interval: \"5m\",\n            widgetType: \"discover\",\n            queries: [{\n                fields: [\"user_misery(300)\"],\n                aggregates: [\"user_misery(300)\"],\n            }],\n            layout: {\n                x: 0,\n                y: 1,\n                w: 1,\n                h: 1,\n                minH: 1,\n            },\n        },\n        {\n            title: \"Overall Apdex\",\n            displayType: \"big_number\",\n            interval: \"5m\",\n            widgetType: \"discover\",\n            queries: [{\n                fields: [\"apdex(300)\"],\n                aggregates: [\"apdex(300)\"],\n            }],\n            layout: {\n                x: 1,\n                y: 1,\n                w: 1,\n                h: 1,\n                minH: 1,\n            },\n        },\n        {\n            title: \"High Throughput Transactions\",\n            displayType: \"top_n\",\n            interval: \"5m\",\n            widgetType: \"discover\",\n            queries: [{\n                fields: [\n                    \"transaction\",\n                    \"count()\",\n                ],\n                aggregates: [\"count()\"],\n                columns: [\"transaction\"],\n                conditions: \"!event.type:error\",\n                orderBy: \"-count()\",\n            }],\n            layout: {\n                x: 0,\n                y: 4,\n                w: 2,\n                h: 2,\n                minH: 2,\n            },\n        },\n        {\n            title: \"Issues Assigned to Me or My Teams\",\n            displayType: \"table\",\n            interval: \"5m\",\n            widgetType: \"issue\",\n            queries: [{\n                fields: [\n                    \"assignee\",\n                    \"issue\",\n                    \"title\",\n                ],\n                columns: [\n                    \"assignee\",\n                    \"issue\",\n                    \"title\",\n                ],\n                conditions: \"assigned_or_suggested:me is:unresolved\",\n                orderBy: \"priority\",\n            }],\n            layout: {\n                x: 2,\n                y: 2,\n                w: 2,\n                h: 4,\n                minH: 2,\n            },\n        },\n        {\n            title: \"Transactions Ordered by Misery\",\n            displayType: \"table\",\n            interval: \"5m\",\n            widgetType: \"discover\",\n            queries: [{\n                fields: [\n                    \"transaction\",\n                    \"user_misery(300)\",\n                ],\n                aggregates: [\"user_misery(300)\"],\n                columns: [\"transaction\"],\n                orderBy: \"-user_misery(300)\",\n            }],\n            layout: {\n                x: 2,\n                y: 6,\n                w: 2,\n                h: 4,\n                minH: 2,\n            },\n        },\n        {\n            title: \"Errors by Browser Over Time\",\n            displayType: \"top_n\",\n            interval: \"5m\",\n            widgetType: \"discover\",\n            queries: [{\n                fields: [\n                    \"browser.name\",\n                    \"count()\",\n                ],\n                aggregates: [\"count()\"],\n                columns: [\"browser.name\"],\n                conditions: \"event.type:error has:browser.name\",\n                orderBy: \"-count()\",\n            }],\n            layout: {\n                x: 4,\n                y: 2,\n                w: 1,\n                h: 4,\n                minH: 2,\n            },\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_sentry as sentry\n\nmain = sentry.SentryDashboard(\"main\",\n    organization=main_sentry_organization[\"id\"],\n    title=\"Test dashboard\",\n    widgets=[\n        {\n            \"title\": \"Number of Errors\",\n            \"display_type\": \"big_number\",\n            \"interval\": \"5m\",\n            \"widget_type\": \"discover\",\n            \"queries\": [{\n                \"fields\": [\"count()\"],\n                \"aggregates\": [\"count()\"],\n                \"conditions\": \"!event.type:transaction\",\n                \"order_by\": \"count()\",\n            }],\n            \"layout\": {\n                \"x\": 0,\n                \"y\": 0,\n                \"w\": 1,\n                \"h\": 1,\n                \"min_h\": 1,\n            },\n        },\n        {\n            \"title\": \"Number of Issues\",\n            \"display_type\": \"big_number\",\n            \"interval\": \"5m\",\n            \"widget_type\": \"discover\",\n            \"queries\": [{\n                \"fields\": [\"count_unique(issue)\"],\n                \"aggregates\": [\"count_unique(issue)\"],\n                \"conditions\": \"!event.type:transaction\",\n                \"order_by\": \"count_unique(issue)\",\n            }],\n            \"layout\": {\n                \"x\": 1,\n                \"y\": 0,\n                \"w\": 1,\n                \"h\": 1,\n                \"min_h\": 1,\n            },\n        },\n        {\n            \"title\": \"Events\",\n            \"display_type\": \"line\",\n            \"interval\": \"5m\",\n            \"widget_type\": \"discover\",\n            \"queries\": [{\n                \"name\": \"Events\",\n                \"fields\": [\"count()\"],\n                \"aggregates\": [\"count()\"],\n                \"conditions\": \"!event.type:transaction\",\n                \"order_by\": \"count()\",\n            }],\n            \"layout\": {\n                \"x\": 2,\n                \"y\": 0,\n                \"w\": 4,\n                \"h\": 2,\n                \"min_h\": 2,\n            },\n        },\n        {\n            \"title\": \"Affected Users\",\n            \"display_type\": \"line\",\n            \"interval\": \"5m\",\n            \"widget_type\": \"discover\",\n            \"queries\": [\n                {\n                    \"name\": \"Known Users\",\n                    \"fields\": [\"count_unique(user)\"],\n                    \"aggregates\": [\"count_unique(user)\"],\n                    \"conditions\": \"has:user.email !event.type:transaction\",\n                    \"order_by\": \"count_unique(user)\",\n                },\n                {\n                    \"name\": \"Anonymous Users\",\n                    \"fields\": [\"count_unique(user)\"],\n                    \"aggregates\": [\"count_unique(user)\"],\n                    \"conditions\": \"!has:user.email !event.type:transaction\",\n                    \"order_by\": \"count_unique(user)\",\n                },\n            ],\n            \"layout\": {\n                \"x\": 1,\n                \"y\": 2,\n                \"w\": 1,\n                \"h\": 2,\n                \"min_h\": 2,\n            },\n        },\n        {\n            \"title\": \"Handled vs. Unhandled\",\n            \"display_type\": \"line\",\n            \"interval\": \"5m\",\n            \"widget_type\": \"discover\",\n            \"queries\": [\n                {\n                    \"name\": \"Handled\",\n                    \"fields\": [\"count()\"],\n                    \"aggregates\": [\"count()\"],\n                    \"conditions\": \"error.handled:true\",\n                    \"order_by\": \"count()\",\n                },\n                {\n                    \"name\": \"Unhandled\",\n                    \"fields\": [\"count()\"],\n                    \"aggregates\": [\"count()\"],\n                    \"conditions\": \"error.handled:false\",\n                    \"order_by\": \"count()\",\n                },\n            ],\n            \"layout\": {\n                \"x\": 0,\n                \"y\": 2,\n                \"w\": 1,\n                \"h\": 2,\n                \"min_h\": 2,\n            },\n        },\n        {\n            \"title\": \"Errors by Country\",\n            \"display_type\": \"world_map\",\n            \"interval\": \"5m\",\n            \"widget_type\": \"discover\",\n            \"queries\": [{\n                \"fields\": [\"count()\"],\n                \"aggregates\": [\"count()\"],\n                \"conditions\": \"!event.type:transaction has:geo.country_code\",\n                \"order_by\": \"count()\",\n            }],\n            \"layout\": {\n                \"x\": 4,\n                \"y\": 6,\n                \"w\": 2,\n                \"h\": 4,\n                \"min_h\": 2,\n            },\n        },\n        {\n            \"title\": \"High Throughput Transactions\",\n            \"display_type\": \"table\",\n            \"interval\": \"5m\",\n            \"widget_type\": \"discover\",\n            \"queries\": [{\n                \"fields\": [\n                    \"count()\",\n                    \"transaction\",\n                ],\n                \"aggregates\": [\"count()\"],\n                \"columns\": [\"transaction\"],\n                \"conditions\": \"!event.type:error\",\n                \"order_by\": \"-count()\",\n            }],\n            \"layout\": {\n                \"x\": 0,\n                \"y\": 6,\n                \"w\": 2,\n                \"h\": 4,\n                \"min_h\": 2,\n            },\n        },\n        {\n            \"title\": \"Errors by Browser\",\n            \"display_type\": \"table\",\n            \"interval\": \"5m\",\n            \"widget_type\": \"discover\",\n            \"queries\": [{\n                \"fields\": [\n                    \"browser.name\",\n                    \"count()\",\n                ],\n                \"aggregates\": [\"count()\"],\n                \"columns\": [\"browser.name\"],\n                \"conditions\": \"!event.type:transaction has:browser.name\",\n                \"order_by\": \"-count()\",\n            }],\n            \"layout\": {\n                \"x\": 5,\n                \"y\": 2,\n                \"w\": 1,\n                \"h\": 4,\n                \"min_h\": 2,\n            },\n        },\n        {\n            \"title\": \"Overall User Misery\",\n            \"display_type\": \"big_number\",\n            \"interval\": \"5m\",\n            \"widget_type\": \"discover\",\n            \"queries\": [{\n                \"fields\": [\"user_misery(300)\"],\n                \"aggregates\": [\"user_misery(300)\"],\n            }],\n            \"layout\": {\n                \"x\": 0,\n                \"y\": 1,\n                \"w\": 1,\n                \"h\": 1,\n                \"min_h\": 1,\n            },\n        },\n        {\n            \"title\": \"Overall Apdex\",\n            \"display_type\": \"big_number\",\n            \"interval\": \"5m\",\n            \"widget_type\": \"discover\",\n            \"queries\": [{\n                \"fields\": [\"apdex(300)\"],\n                \"aggregates\": [\"apdex(300)\"],\n            }],\n            \"layout\": {\n                \"x\": 1,\n                \"y\": 1,\n                \"w\": 1,\n                \"h\": 1,\n                \"min_h\": 1,\n            },\n        },\n        {\n            \"title\": \"High Throughput Transactions\",\n            \"display_type\": \"top_n\",\n            \"interval\": \"5m\",\n            \"widget_type\": \"discover\",\n            \"queries\": [{\n                \"fields\": [\n                    \"transaction\",\n                    \"count()\",\n                ],\n                \"aggregates\": [\"count()\"],\n                \"columns\": [\"transaction\"],\n                \"conditions\": \"!event.type:error\",\n                \"order_by\": \"-count()\",\n            }],\n            \"layout\": {\n                \"x\": 0,\n                \"y\": 4,\n                \"w\": 2,\n                \"h\": 2,\n                \"min_h\": 2,\n            },\n        },\n        {\n            \"title\": \"Issues Assigned to Me or My Teams\",\n            \"display_type\": \"table\",\n            \"interval\": \"5m\",\n            \"widget_type\": \"issue\",\n            \"queries\": [{\n                \"fields\": [\n                    \"assignee\",\n                    \"issue\",\n                    \"title\",\n                ],\n                \"columns\": [\n                    \"assignee\",\n                    \"issue\",\n                    \"title\",\n                ],\n                \"conditions\": \"assigned_or_suggested:me is:unresolved\",\n                \"order_by\": \"priority\",\n            }],\n            \"layout\": {\n                \"x\": 2,\n                \"y\": 2,\n                \"w\": 2,\n                \"h\": 4,\n                \"min_h\": 2,\n            },\n        },\n        {\n            \"title\": \"Transactions Ordered by Misery\",\n            \"display_type\": \"table\",\n            \"interval\": \"5m\",\n            \"widget_type\": \"discover\",\n            \"queries\": [{\n                \"fields\": [\n                    \"transaction\",\n                    \"user_misery(300)\",\n                ],\n                \"aggregates\": [\"user_misery(300)\"],\n                \"columns\": [\"transaction\"],\n                \"order_by\": \"-user_misery(300)\",\n            }],\n            \"layout\": {\n                \"x\": 2,\n                \"y\": 6,\n                \"w\": 2,\n                \"h\": 4,\n                \"min_h\": 2,\n            },\n        },\n        {\n            \"title\": \"Errors by Browser Over Time\",\n            \"display_type\": \"top_n\",\n            \"interval\": \"5m\",\n            \"widget_type\": \"discover\",\n            \"queries\": [{\n                \"fields\": [\n                    \"browser.name\",\n                    \"count()\",\n                ],\n                \"aggregates\": [\"count()\"],\n                \"columns\": [\"browser.name\"],\n                \"conditions\": \"event.type:error has:browser.name\",\n                \"order_by\": \"-count()\",\n            }],\n            \"layout\": {\n                \"x\": 4,\n                \"y\": 2,\n                \"w\": 1,\n                \"h\": 4,\n                \"min_h\": 2,\n            },\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Sentry = Pulumiverse.Sentry;\n\nreturn await Deployment.RunAsync(() => \n{\n    var main = new Sentry.SentryDashboard(\"main\", new()\n    {\n        Organization = mainSentryOrganization.Id,\n        Title = \"Test dashboard\",\n        Widgets = new[]\n        {\n            new Sentry.Inputs.SentryDashboardWidgetArgs\n            {\n                Title = \"Number of Errors\",\n                DisplayType = \"big_number\",\n                Interval = \"5m\",\n                WidgetType = \"discover\",\n                Queries = new[]\n                {\n                    new Sentry.Inputs.SentryDashboardWidgetQueryArgs\n                    {\n                        Fields = new[]\n                        {\n                            \"count()\",\n                        },\n                        Aggregates = new[]\n                        {\n                            \"count()\",\n                        },\n                        Conditions = \"!event.type:transaction\",\n                        OrderBy = \"count()\",\n                    },\n                },\n                Layout = new Sentry.Inputs.SentryDashboardWidgetLayoutArgs\n                {\n                    X = 0,\n                    Y = 0,\n                    W = 1,\n                    H = 1,\n                    MinH = 1,\n                },\n            },\n            new Sentry.Inputs.SentryDashboardWidgetArgs\n            {\n                Title = \"Number of Issues\",\n                DisplayType = \"big_number\",\n                Interval = \"5m\",\n                WidgetType = \"discover\",\n                Queries = new[]\n                {\n                    new Sentry.Inputs.SentryDashboardWidgetQueryArgs\n                    {\n                        Fields = new[]\n                        {\n                            \"count_unique(issue)\",\n                        },\n                        Aggregates = new[]\n                        {\n                            \"count_unique(issue)\",\n                        },\n                        Conditions = \"!event.type:transaction\",\n                        OrderBy = \"count_unique(issue)\",\n                    },\n                },\n                Layout = new Sentry.Inputs.SentryDashboardWidgetLayoutArgs\n                {\n                    X = 1,\n                    Y = 0,\n                    W = 1,\n                    H = 1,\n                    MinH = 1,\n                },\n            },\n            new Sentry.Inputs.SentryDashboardWidgetArgs\n            {\n                Title = \"Events\",\n                DisplayType = \"line\",\n                Interval = \"5m\",\n                WidgetType = \"discover\",\n                Queries = new[]\n                {\n                    new Sentry.Inputs.SentryDashboardWidgetQueryArgs\n                    {\n                        Name = \"Events\",\n                        Fields = new[]\n                        {\n                            \"count()\",\n                        },\n                        Aggregates = new[]\n                        {\n                            \"count()\",\n                        },\n                        Conditions = \"!event.type:transaction\",\n                        OrderBy = \"count()\",\n                    },\n                },\n                Layout = new Sentry.Inputs.SentryDashboardWidgetLayoutArgs\n                {\n                    X = 2,\n                    Y = 0,\n                    W = 4,\n                    H = 2,\n                    MinH = 2,\n                },\n            },\n            new Sentry.Inputs.SentryDashboardWidgetArgs\n            {\n                Title = \"Affected Users\",\n                DisplayType = \"line\",\n                Interval = \"5m\",\n                WidgetType = \"discover\",\n                Queries = new[]\n                {\n                    new Sentry.Inputs.SentryDashboardWidgetQueryArgs\n                    {\n                        Name = \"Known Users\",\n                        Fields = new[]\n                        {\n                            \"count_unique(user)\",\n                        },\n                        Aggregates = new[]\n                        {\n                            \"count_unique(user)\",\n                        },\n                        Conditions = \"has:user.email !event.type:transaction\",\n                        OrderBy = \"count_unique(user)\",\n                    },\n                    new Sentry.Inputs.SentryDashboardWidgetQueryArgs\n                    {\n                        Name = \"Anonymous Users\",\n                        Fields = new[]\n                        {\n                            \"count_unique(user)\",\n                        },\n                        Aggregates = new[]\n                        {\n                            \"count_unique(user)\",\n                        },\n                        Conditions = \"!has:user.email !event.type:transaction\",\n                        OrderBy = \"count_unique(user)\",\n                    },\n                },\n                Layout = new Sentry.Inputs.SentryDashboardWidgetLayoutArgs\n                {\n                    X = 1,\n                    Y = 2,\n                    W = 1,\n                    H = 2,\n                    MinH = 2,\n                },\n            },\n            new Sentry.Inputs.SentryDashboardWidgetArgs\n            {\n                Title = \"Handled vs. Unhandled\",\n                DisplayType = \"line\",\n                Interval = \"5m\",\n                WidgetType = \"discover\",\n                Queries = new[]\n                {\n                    new Sentry.Inputs.SentryDashboardWidgetQueryArgs\n                    {\n                        Name = \"Handled\",\n                        Fields = new[]\n                        {\n                            \"count()\",\n                        },\n                        Aggregates = new[]\n                        {\n                            \"count()\",\n                        },\n                        Conditions = \"error.handled:true\",\n                        OrderBy = \"count()\",\n                    },\n                    new Sentry.Inputs.SentryDashboardWidgetQueryArgs\n                    {\n                        Name = \"Unhandled\",\n                        Fields = new[]\n                        {\n                            \"count()\",\n                        },\n                        Aggregates = new[]\n                        {\n                            \"count()\",\n                        },\n                        Conditions = \"error.handled:false\",\n                        OrderBy = \"count()\",\n                    },\n                },\n                Layout = new Sentry.Inputs.SentryDashboardWidgetLayoutArgs\n                {\n                    X = 0,\n                    Y = 2,\n                    W = 1,\n                    H = 2,\n                    MinH = 2,\n                },\n            },\n            new Sentry.Inputs.SentryDashboardWidgetArgs\n            {\n                Title = \"Errors by Country\",\n                DisplayType = \"world_map\",\n                Interval = \"5m\",\n                WidgetType = \"discover\",\n                Queries = new[]\n                {\n                    new Sentry.Inputs.SentryDashboardWidgetQueryArgs\n                    {\n                        Fields = new[]\n                        {\n                            \"count()\",\n                        },\n                        Aggregates = new[]\n                        {\n                            \"count()\",\n                        },\n                        Conditions = \"!event.type:transaction has:geo.country_code\",\n                        OrderBy = \"count()\",\n                    },\n                },\n                Layout = new Sentry.Inputs.SentryDashboardWidgetLayoutArgs\n                {\n                    X = 4,\n                    Y = 6,\n                    W = 2,\n                    H = 4,\n                    MinH = 2,\n                },\n            },\n            new Sentry.Inputs.SentryDashboardWidgetArgs\n            {\n                Title = \"High Throughput Transactions\",\n                DisplayType = \"table\",\n                Interval = \"5m\",\n                WidgetType = \"discover\",\n                Queries = new[]\n                {\n                    new Sentry.Inputs.SentryDashboardWidgetQueryArgs\n                    {\n                        Fields = new[]\n                        {\n                            \"count()\",\n                            \"transaction\",\n                        },\n                        Aggregates = new[]\n                        {\n                            \"count()\",\n                        },\n                        Columns = new[]\n                        {\n                            \"transaction\",\n                        },\n                        Conditions = \"!event.type:error\",\n                        OrderBy = \"-count()\",\n                    },\n                },\n                Layout = new Sentry.Inputs.SentryDashboardWidgetLayoutArgs\n                {\n                    X = 0,\n                    Y = 6,\n                    W = 2,\n                    H = 4,\n                    MinH = 2,\n                },\n            },\n            new Sentry.Inputs.SentryDashboardWidgetArgs\n            {\n                Title = \"Errors by Browser\",\n                DisplayType = \"table\",\n                Interval = \"5m\",\n                WidgetType = \"discover\",\n                Queries = new[]\n                {\n                    new Sentry.Inputs.SentryDashboardWidgetQueryArgs\n                    {\n                        Fields = new[]\n                        {\n                            \"browser.name\",\n                            \"count()\",\n                        },\n                        Aggregates = new[]\n                        {\n                            \"count()\",\n                        },\n                        Columns = new[]\n                        {\n                            \"browser.name\",\n                        },\n                        Conditions = \"!event.type:transaction has:browser.name\",\n                        OrderBy = \"-count()\",\n                    },\n                },\n                Layout = new Sentry.Inputs.SentryDashboardWidgetLayoutArgs\n                {\n                    X = 5,\n                    Y = 2,\n                    W = 1,\n                    H = 4,\n                    MinH = 2,\n                },\n            },\n            new Sentry.Inputs.SentryDashboardWidgetArgs\n            {\n                Title = \"Overall User Misery\",\n                DisplayType = \"big_number\",\n                Interval = \"5m\",\n                WidgetType = \"discover\",\n                Queries = new[]\n                {\n                    new Sentry.Inputs.SentryDashboardWidgetQueryArgs\n                    {\n                        Fields = new[]\n                        {\n                            \"user_misery(300)\",\n                        },\n                        Aggregates = new[]\n                        {\n                            \"user_misery(300)\",\n                        },\n                    },\n                },\n                Layout = new Sentry.Inputs.SentryDashboardWidgetLayoutArgs\n                {\n                    X = 0,\n                    Y = 1,\n                    W = 1,\n                    H = 1,\n                    MinH = 1,\n                },\n            },\n            new Sentry.Inputs.SentryDashboardWidgetArgs\n            {\n                Title = \"Overall Apdex\",\n                DisplayType = \"big_number\",\n                Interval = \"5m\",\n                WidgetType = \"discover\",\n                Queries = new[]\n                {\n                    new Sentry.Inputs.SentryDashboardWidgetQueryArgs\n                    {\n                        Fields = new[]\n                        {\n                            \"apdex(300)\",\n                        },\n                        Aggregates = new[]\n                        {\n                            \"apdex(300)\",\n                        },\n                    },\n                },\n                Layout = new Sentry.Inputs.SentryDashboardWidgetLayoutArgs\n                {\n                    X = 1,\n                    Y = 1,\n                    W = 1,\n                    H = 1,\n                    MinH = 1,\n                },\n            },\n            new Sentry.Inputs.SentryDashboardWidgetArgs\n            {\n                Title = \"High Throughput Transactions\",\n                DisplayType = \"top_n\",\n                Interval = \"5m\",\n                WidgetType = \"discover\",\n                Queries = new[]\n                {\n                    new Sentry.Inputs.SentryDashboardWidgetQueryArgs\n                    {\n                        Fields = new[]\n                        {\n                            \"transaction\",\n                            \"count()\",\n                        },\n                        Aggregates = new[]\n                        {\n                            \"count()\",\n                        },\n                        Columns = new[]\n                        {\n                            \"transaction\",\n                        },\n                        Conditions = \"!event.type:error\",\n                        OrderBy = \"-count()\",\n                    },\n                },\n                Layout = new Sentry.Inputs.SentryDashboardWidgetLayoutArgs\n                {\n                    X = 0,\n                    Y = 4,\n                    W = 2,\n                    H = 2,\n                    MinH = 2,\n                },\n            },\n            new Sentry.Inputs.SentryDashboardWidgetArgs\n            {\n                Title = \"Issues Assigned to Me or My Teams\",\n                DisplayType = \"table\",\n                Interval = \"5m\",\n                WidgetType = \"issue\",\n                Queries = new[]\n                {\n                    new Sentry.Inputs.SentryDashboardWidgetQueryArgs\n                    {\n                        Fields = new[]\n                        {\n                            \"assignee\",\n                            \"issue\",\n                            \"title\",\n                        },\n                        Columns = new[]\n                        {\n                            \"assignee\",\n                            \"issue\",\n                            \"title\",\n                        },\n                        Conditions = \"assigned_or_suggested:me is:unresolved\",\n                        OrderBy = \"priority\",\n                    },\n                },\n                Layout = new Sentry.Inputs.SentryDashboardWidgetLayoutArgs\n                {\n                    X = 2,\n                    Y = 2,\n                    W = 2,\n                    H = 4,\n                    MinH = 2,\n                },\n            },\n            new Sentry.Inputs.SentryDashboardWidgetArgs\n            {\n                Title = \"Transactions Ordered by Misery\",\n                DisplayType = \"table\",\n                Interval = \"5m\",\n                WidgetType = \"discover\",\n                Queries = new[]\n                {\n                    new Sentry.Inputs.SentryDashboardWidgetQueryArgs\n                    {\n                        Fields = new[]\n                        {\n                            \"transaction\",\n                            \"user_misery(300)\",\n                        },\n                        Aggregates = new[]\n                        {\n                            \"user_misery(300)\",\n                        },\n                        Columns = new[]\n                        {\n                            \"transaction\",\n                        },\n                        OrderBy = \"-user_misery(300)\",\n                    },\n                },\n                Layout = new Sentry.Inputs.SentryDashboardWidgetLayoutArgs\n                {\n                    X = 2,\n                    Y = 6,\n                    W = 2,\n                    H = 4,\n                    MinH = 2,\n                },\n            },\n            new Sentry.Inputs.SentryDashboardWidgetArgs\n            {\n                Title = \"Errors by Browser Over Time\",\n                DisplayType = \"top_n\",\n                Interval = \"5m\",\n                WidgetType = \"discover\",\n                Queries = new[]\n                {\n                    new Sentry.Inputs.SentryDashboardWidgetQueryArgs\n                    {\n                        Fields = new[]\n                        {\n                            \"browser.name\",\n                            \"count()\",\n                        },\n                        Aggregates = new[]\n                        {\n                            \"count()\",\n                        },\n                        Columns = new[]\n                        {\n                            \"browser.name\",\n                        },\n                        Conditions = \"event.type:error has:browser.name\",\n                        OrderBy = \"-count()\",\n                    },\n                },\n                Layout = new Sentry.Inputs.SentryDashboardWidgetLayoutArgs\n                {\n                    X = 4,\n                    Y = 2,\n                    W = 1,\n                    H = 4,\n                    MinH = 2,\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-sentry/sdk/go/sentry\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := sentry.NewSentryDashboard(ctx, \"main\", &sentry.SentryDashboardArgs{\n\t\t\tOrganization: pulumi.Any(mainSentryOrganization.Id),\n\t\t\tTitle:        pulumi.String(\"Test dashboard\"),\n\t\t\tWidgets: sentry.SentryDashboardWidgetArray{\n\t\t\t\t&sentry.SentryDashboardWidgetArgs{\n\t\t\t\t\tTitle:       pulumi.String(\"Number of Errors\"),\n\t\t\t\t\tDisplayType: pulumi.String(\"big_number\"),\n\t\t\t\t\tInterval:    pulumi.String(\"5m\"),\n\t\t\t\t\tWidgetType:  pulumi.String(\"discover\"),\n\t\t\t\t\tQueries: sentry.SentryDashboardWidgetQueryArray{\n\t\t\t\t\t\t&sentry.SentryDashboardWidgetQueryArgs{\n\t\t\t\t\t\t\tFields: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"count()\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tAggregates: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"count()\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tConditions: pulumi.String(\"!event.type:transaction\"),\n\t\t\t\t\t\t\tOrderBy:    pulumi.String(\"count()\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tLayout: &sentry.SentryDashboardWidgetLayoutArgs{\n\t\t\t\t\t\tX:    pulumi.Int(0),\n\t\t\t\t\t\tY:    pulumi.Int(0),\n\t\t\t\t\t\tW:    pulumi.Int(1),\n\t\t\t\t\t\tH:    pulumi.Int(1),\n\t\t\t\t\t\tMinH: pulumi.Int(1),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t&sentry.SentryDashboardWidgetArgs{\n\t\t\t\t\tTitle:       pulumi.String(\"Number of Issues\"),\n\t\t\t\t\tDisplayType: pulumi.String(\"big_number\"),\n\t\t\t\t\tInterval:    pulumi.String(\"5m\"),\n\t\t\t\t\tWidgetType:  pulumi.String(\"discover\"),\n\t\t\t\t\tQueries: sentry.SentryDashboardWidgetQueryArray{\n\t\t\t\t\t\t&sentry.SentryDashboardWidgetQueryArgs{\n\t\t\t\t\t\t\tFields: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"count_unique(issue)\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tAggregates: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"count_unique(issue)\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tConditions: pulumi.String(\"!event.type:transaction\"),\n\t\t\t\t\t\t\tOrderBy:    pulumi.String(\"count_unique(issue)\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tLayout: &sentry.SentryDashboardWidgetLayoutArgs{\n\t\t\t\t\t\tX:    pulumi.Int(1),\n\t\t\t\t\t\tY:    pulumi.Int(0),\n\t\t\t\t\t\tW:    pulumi.Int(1),\n\t\t\t\t\t\tH:    pulumi.Int(1),\n\t\t\t\t\t\tMinH: pulumi.Int(1),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t&sentry.SentryDashboardWidgetArgs{\n\t\t\t\t\tTitle:       pulumi.String(\"Events\"),\n\t\t\t\t\tDisplayType: pulumi.String(\"line\"),\n\t\t\t\t\tInterval:    pulumi.String(\"5m\"),\n\t\t\t\t\tWidgetType:  pulumi.String(\"discover\"),\n\t\t\t\t\tQueries: sentry.SentryDashboardWidgetQueryArray{\n\t\t\t\t\t\t&sentry.SentryDashboardWidgetQueryArgs{\n\t\t\t\t\t\t\tName: pulumi.String(\"Events\"),\n\t\t\t\t\t\t\tFields: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"count()\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tAggregates: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"count()\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tConditions: pulumi.String(\"!event.type:transaction\"),\n\t\t\t\t\t\t\tOrderBy:    pulumi.String(\"count()\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tLayout: &sentry.SentryDashboardWidgetLayoutArgs{\n\t\t\t\t\t\tX:    pulumi.Int(2),\n\t\t\t\t\t\tY:    pulumi.Int(0),\n\t\t\t\t\t\tW:    pulumi.Int(4),\n\t\t\t\t\t\tH:    pulumi.Int(2),\n\t\t\t\t\t\tMinH: pulumi.Int(2),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t&sentry.SentryDashboardWidgetArgs{\n\t\t\t\t\tTitle:       pulumi.String(\"Affected Users\"),\n\t\t\t\t\tDisplayType: pulumi.String(\"line\"),\n\t\t\t\t\tInterval:    pulumi.String(\"5m\"),\n\t\t\t\t\tWidgetType:  pulumi.String(\"discover\"),\n\t\t\t\t\tQueries: sentry.SentryDashboardWidgetQueryArray{\n\t\t\t\t\t\t&sentry.SentryDashboardWidgetQueryArgs{\n\t\t\t\t\t\t\tName: pulumi.String(\"Known Users\"),\n\t\t\t\t\t\t\tFields: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"count_unique(user)\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tAggregates: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"count_unique(user)\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tConditions: pulumi.String(\"has:user.email !event.type:transaction\"),\n\t\t\t\t\t\t\tOrderBy:    pulumi.String(\"count_unique(user)\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t&sentry.SentryDashboardWidgetQueryArgs{\n\t\t\t\t\t\t\tName: pulumi.String(\"Anonymous Users\"),\n\t\t\t\t\t\t\tFields: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"count_unique(user)\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tAggregates: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"count_unique(user)\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tConditions: pulumi.String(\"!has:user.email !event.type:transaction\"),\n\t\t\t\t\t\t\tOrderBy:    pulumi.String(\"count_unique(user)\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tLayout: &sentry.SentryDashboardWidgetLayoutArgs{\n\t\t\t\t\t\tX:    pulumi.Int(1),\n\t\t\t\t\t\tY:    pulumi.Int(2),\n\t\t\t\t\t\tW:    pulumi.Int(1),\n\t\t\t\t\t\tH:    pulumi.Int(2),\n\t\t\t\t\t\tMinH: pulumi.Int(2),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t&sentry.SentryDashboardWidgetArgs{\n\t\t\t\t\tTitle:       pulumi.String(\"Handled vs. Unhandled\"),\n\t\t\t\t\tDisplayType: pulumi.String(\"line\"),\n\t\t\t\t\tInterval:    pulumi.String(\"5m\"),\n\t\t\t\t\tWidgetType:  pulumi.String(\"discover\"),\n\t\t\t\t\tQueries: sentry.SentryDashboardWidgetQueryArray{\n\t\t\t\t\t\t&sentry.SentryDashboardWidgetQueryArgs{\n\t\t\t\t\t\t\tName: pulumi.String(\"Handled\"),\n\t\t\t\t\t\t\tFields: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"count()\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tAggregates: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"count()\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tConditions: pulumi.String(\"error.handled:true\"),\n\t\t\t\t\t\t\tOrderBy:    pulumi.String(\"count()\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t&sentry.SentryDashboardWidgetQueryArgs{\n\t\t\t\t\t\t\tName: pulumi.String(\"Unhandled\"),\n\t\t\t\t\t\t\tFields: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"count()\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tAggregates: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"count()\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tConditions: pulumi.String(\"error.handled:false\"),\n\t\t\t\t\t\t\tOrderBy:    pulumi.String(\"count()\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tLayout: &sentry.SentryDashboardWidgetLayoutArgs{\n\t\t\t\t\t\tX:    pulumi.Int(0),\n\t\t\t\t\t\tY:    pulumi.Int(2),\n\t\t\t\t\t\tW:    pulumi.Int(1),\n\t\t\t\t\t\tH:    pulumi.Int(2),\n\t\t\t\t\t\tMinH: pulumi.Int(2),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t&sentry.SentryDashboardWidgetArgs{\n\t\t\t\t\tTitle:       pulumi.String(\"Errors by Country\"),\n\t\t\t\t\tDisplayType: pulumi.String(\"world_map\"),\n\t\t\t\t\tInterval:    pulumi.String(\"5m\"),\n\t\t\t\t\tWidgetType:  pulumi.String(\"discover\"),\n\t\t\t\t\tQueries: sentry.SentryDashboardWidgetQueryArray{\n\t\t\t\t\t\t&sentry.SentryDashboardWidgetQueryArgs{\n\t\t\t\t\t\t\tFields: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"count()\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tAggregates: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"count()\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tConditions: pulumi.String(\"!event.type:transaction has:geo.country_code\"),\n\t\t\t\t\t\t\tOrderBy:    pulumi.String(\"count()\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tLayout: &sentry.SentryDashboardWidgetLayoutArgs{\n\t\t\t\t\t\tX:    pulumi.Int(4),\n\t\t\t\t\t\tY:    pulumi.Int(6),\n\t\t\t\t\t\tW:    pulumi.Int(2),\n\t\t\t\t\t\tH:    pulumi.Int(4),\n\t\t\t\t\t\tMinH: pulumi.Int(2),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t&sentry.SentryDashboardWidgetArgs{\n\t\t\t\t\tTitle:       pulumi.String(\"High Throughput Transactions\"),\n\t\t\t\t\tDisplayType: pulumi.String(\"table\"),\n\t\t\t\t\tInterval:    pulumi.String(\"5m\"),\n\t\t\t\t\tWidgetType:  pulumi.String(\"discover\"),\n\t\t\t\t\tQueries: sentry.SentryDashboardWidgetQueryArray{\n\t\t\t\t\t\t&sentry.SentryDashboardWidgetQueryArgs{\n\t\t\t\t\t\t\tFields: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"count()\"),\n\t\t\t\t\t\t\t\tpulumi.String(\"transaction\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tAggregates: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"count()\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tColumns: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"transaction\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tConditions: pulumi.String(\"!event.type:error\"),\n\t\t\t\t\t\t\tOrderBy:    pulumi.String(\"-count()\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tLayout: &sentry.SentryDashboardWidgetLayoutArgs{\n\t\t\t\t\t\tX:    pulumi.Int(0),\n\t\t\t\t\t\tY:    pulumi.Int(6),\n\t\t\t\t\t\tW:    pulumi.Int(2),\n\t\t\t\t\t\tH:    pulumi.Int(4),\n\t\t\t\t\t\tMinH: pulumi.Int(2),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t&sentry.SentryDashboardWidgetArgs{\n\t\t\t\t\tTitle:       pulumi.String(\"Errors by Browser\"),\n\t\t\t\t\tDisplayType: pulumi.String(\"table\"),\n\t\t\t\t\tInterval:    pulumi.String(\"5m\"),\n\t\t\t\t\tWidgetType:  pulumi.String(\"discover\"),\n\t\t\t\t\tQueries: sentry.SentryDashboardWidgetQueryArray{\n\t\t\t\t\t\t&sentry.SentryDashboardWidgetQueryArgs{\n\t\t\t\t\t\t\tFields: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"browser.name\"),\n\t\t\t\t\t\t\t\tpulumi.String(\"count()\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tAggregates: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"count()\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tColumns: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"browser.name\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tConditions: pulumi.String(\"!event.type:transaction has:browser.name\"),\n\t\t\t\t\t\t\tOrderBy:    pulumi.String(\"-count()\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tLayout: &sentry.SentryDashboardWidgetLayoutArgs{\n\t\t\t\t\t\tX:    pulumi.Int(5),\n\t\t\t\t\t\tY:    pulumi.Int(2),\n\t\t\t\t\t\tW:    pulumi.Int(1),\n\t\t\t\t\t\tH:    pulumi.Int(4),\n\t\t\t\t\t\tMinH: pulumi.Int(2),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t&sentry.SentryDashboardWidgetArgs{\n\t\t\t\t\tTitle:       pulumi.String(\"Overall User Misery\"),\n\t\t\t\t\tDisplayType: pulumi.String(\"big_number\"),\n\t\t\t\t\tInterval:    pulumi.String(\"5m\"),\n\t\t\t\t\tWidgetType:  pulumi.String(\"discover\"),\n\t\t\t\t\tQueries: sentry.SentryDashboardWidgetQueryArray{\n\t\t\t\t\t\t&sentry.SentryDashboardWidgetQueryArgs{\n\t\t\t\t\t\t\tFields: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"user_misery(300)\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tAggregates: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"user_misery(300)\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tLayout: &sentry.SentryDashboardWidgetLayoutArgs{\n\t\t\t\t\t\tX:    pulumi.Int(0),\n\t\t\t\t\t\tY:    pulumi.Int(1),\n\t\t\t\t\t\tW:    pulumi.Int(1),\n\t\t\t\t\t\tH:    pulumi.Int(1),\n\t\t\t\t\t\tMinH: pulumi.Int(1),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t&sentry.SentryDashboardWidgetArgs{\n\t\t\t\t\tTitle:       pulumi.String(\"Overall Apdex\"),\n\t\t\t\t\tDisplayType: pulumi.String(\"big_number\"),\n\t\t\t\t\tInterval:    pulumi.String(\"5m\"),\n\t\t\t\t\tWidgetType:  pulumi.String(\"discover\"),\n\t\t\t\t\tQueries: sentry.SentryDashboardWidgetQueryArray{\n\t\t\t\t\t\t&sentry.SentryDashboardWidgetQueryArgs{\n\t\t\t\t\t\t\tFields: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"apdex(300)\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tAggregates: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"apdex(300)\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tLayout: &sentry.SentryDashboardWidgetLayoutArgs{\n\t\t\t\t\t\tX:    pulumi.Int(1),\n\t\t\t\t\t\tY:    pulumi.Int(1),\n\t\t\t\t\t\tW:    pulumi.Int(1),\n\t\t\t\t\t\tH:    pulumi.Int(1),\n\t\t\t\t\t\tMinH: pulumi.Int(1),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t&sentry.SentryDashboardWidgetArgs{\n\t\t\t\t\tTitle:       pulumi.String(\"High Throughput Transactions\"),\n\t\t\t\t\tDisplayType: pulumi.String(\"top_n\"),\n\t\t\t\t\tInterval:    pulumi.String(\"5m\"),\n\t\t\t\t\tWidgetType:  pulumi.String(\"discover\"),\n\t\t\t\t\tQueries: sentry.SentryDashboardWidgetQueryArray{\n\t\t\t\t\t\t&sentry.SentryDashboardWidgetQueryArgs{\n\t\t\t\t\t\t\tFields: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"transaction\"),\n\t\t\t\t\t\t\t\tpulumi.String(\"count()\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tAggregates: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"count()\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tColumns: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"transaction\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tConditions: pulumi.String(\"!event.type:error\"),\n\t\t\t\t\t\t\tOrderBy:    pulumi.String(\"-count()\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tLayout: &sentry.SentryDashboardWidgetLayoutArgs{\n\t\t\t\t\t\tX:    pulumi.Int(0),\n\t\t\t\t\t\tY:    pulumi.Int(4),\n\t\t\t\t\t\tW:    pulumi.Int(2),\n\t\t\t\t\t\tH:    pulumi.Int(2),\n\t\t\t\t\t\tMinH: pulumi.Int(2),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t&sentry.SentryDashboardWidgetArgs{\n\t\t\t\t\tTitle:       pulumi.String(\"Issues Assigned to Me or My Teams\"),\n\t\t\t\t\tDisplayType: pulumi.String(\"table\"),\n\t\t\t\t\tInterval:    pulumi.String(\"5m\"),\n\t\t\t\t\tWidgetType:  pulumi.String(\"issue\"),\n\t\t\t\t\tQueries: sentry.SentryDashboardWidgetQueryArray{\n\t\t\t\t\t\t&sentry.SentryDashboardWidgetQueryArgs{\n\t\t\t\t\t\t\tFields: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"assignee\"),\n\t\t\t\t\t\t\t\tpulumi.String(\"issue\"),\n\t\t\t\t\t\t\t\tpulumi.String(\"title\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tColumns: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"assignee\"),\n\t\t\t\t\t\t\t\tpulumi.String(\"issue\"),\n\t\t\t\t\t\t\t\tpulumi.String(\"title\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tConditions: pulumi.String(\"assigned_or_suggested:me is:unresolved\"),\n\t\t\t\t\t\t\tOrderBy:    pulumi.String(\"priority\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tLayout: &sentry.SentryDashboardWidgetLayoutArgs{\n\t\t\t\t\t\tX:    pulumi.Int(2),\n\t\t\t\t\t\tY:    pulumi.Int(2),\n\t\t\t\t\t\tW:    pulumi.Int(2),\n\t\t\t\t\t\tH:    pulumi.Int(4),\n\t\t\t\t\t\tMinH: pulumi.Int(2),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t&sentry.SentryDashboardWidgetArgs{\n\t\t\t\t\tTitle:       pulumi.String(\"Transactions Ordered by Misery\"),\n\t\t\t\t\tDisplayType: pulumi.String(\"table\"),\n\t\t\t\t\tInterval:    pulumi.String(\"5m\"),\n\t\t\t\t\tWidgetType:  pulumi.String(\"discover\"),\n\t\t\t\t\tQueries: sentry.SentryDashboardWidgetQueryArray{\n\t\t\t\t\t\t&sentry.SentryDashboardWidgetQueryArgs{\n\t\t\t\t\t\t\tFields: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"transaction\"),\n\t\t\t\t\t\t\t\tpulumi.String(\"user_misery(300)\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tAggregates: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"user_misery(300)\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tColumns: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"transaction\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tOrderBy: pulumi.String(\"-user_misery(300)\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tLayout: &sentry.SentryDashboardWidgetLayoutArgs{\n\t\t\t\t\t\tX:    pulumi.Int(2),\n\t\t\t\t\t\tY:    pulumi.Int(6),\n\t\t\t\t\t\tW:    pulumi.Int(2),\n\t\t\t\t\t\tH:    pulumi.Int(4),\n\t\t\t\t\t\tMinH: pulumi.Int(2),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t&sentry.SentryDashboardWidgetArgs{\n\t\t\t\t\tTitle:       pulumi.String(\"Errors by Browser Over Time\"),\n\t\t\t\t\tDisplayType: pulumi.String(\"top_n\"),\n\t\t\t\t\tInterval:    pulumi.String(\"5m\"),\n\t\t\t\t\tWidgetType:  pulumi.String(\"discover\"),\n\t\t\t\t\tQueries: sentry.SentryDashboardWidgetQueryArray{\n\t\t\t\t\t\t&sentry.SentryDashboardWidgetQueryArgs{\n\t\t\t\t\t\t\tFields: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"browser.name\"),\n\t\t\t\t\t\t\t\tpulumi.String(\"count()\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tAggregates: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"count()\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tColumns: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"browser.name\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tConditions: pulumi.String(\"event.type:error has:browser.name\"),\n\t\t\t\t\t\t\tOrderBy:    pulumi.String(\"-count()\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tLayout: &sentry.SentryDashboardWidgetLayoutArgs{\n\t\t\t\t\t\tX:    pulumi.Int(4),\n\t\t\t\t\t\tY:    pulumi.Int(2),\n\t\t\t\t\t\tW:    pulumi.Int(1),\n\t\t\t\t\t\tH:    pulumi.Int(4),\n\t\t\t\t\t\tMinH: pulumi.Int(2),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.sentry.SentryDashboard;\nimport com.pulumi.sentry.SentryDashboardArgs;\nimport com.pulumi.sentry.inputs.SentryDashboardWidgetArgs;\nimport com.pulumi.sentry.inputs.SentryDashboardWidgetLayoutArgs;\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 main = new SentryDashboard(\"main\", SentryDashboardArgs.builder()\n            .organization(mainSentryOrganization.id())\n            .title(\"Test dashboard\")\n            .widgets(            \n                SentryDashboardWidgetArgs.builder()\n                    .title(\"Number of Errors\")\n                    .displayType(\"big_number\")\n                    .interval(\"5m\")\n                    .widgetType(\"discover\")\n                    .queries(SentryDashboardWidgetQueryArgs.builder()\n                        .fields(\"count()\")\n                        .aggregates(\"count()\")\n                        .conditions(\"!event.type:transaction\")\n                        .orderBy(\"count()\")\n                        .build())\n                    .layout(SentryDashboardWidgetLayoutArgs.builder()\n                        .x(0)\n                        .y(0)\n                        .w(1)\n                        .h(1)\n                        .minH(1)\n                        .build())\n                    .build(),\n                SentryDashboardWidgetArgs.builder()\n                    .title(\"Number of Issues\")\n                    .displayType(\"big_number\")\n                    .interval(\"5m\")\n                    .widgetType(\"discover\")\n                    .queries(SentryDashboardWidgetQueryArgs.builder()\n                        .fields(\"count_unique(issue)\")\n                        .aggregates(\"count_unique(issue)\")\n                        .conditions(\"!event.type:transaction\")\n                        .orderBy(\"count_unique(issue)\")\n                        .build())\n                    .layout(SentryDashboardWidgetLayoutArgs.builder()\n                        .x(1)\n                        .y(0)\n                        .w(1)\n                        .h(1)\n                        .minH(1)\n                        .build())\n                    .build(),\n                SentryDashboardWidgetArgs.builder()\n                    .title(\"Events\")\n                    .displayType(\"line\")\n                    .interval(\"5m\")\n                    .widgetType(\"discover\")\n                    .queries(SentryDashboardWidgetQueryArgs.builder()\n                        .name(\"Events\")\n                        .fields(\"count()\")\n                        .aggregates(\"count()\")\n                        .conditions(\"!event.type:transaction\")\n                        .orderBy(\"count()\")\n                        .build())\n                    .layout(SentryDashboardWidgetLayoutArgs.builder()\n                        .x(2)\n                        .y(0)\n                        .w(4)\n                        .h(2)\n                        .minH(2)\n                        .build())\n                    .build(),\n                SentryDashboardWidgetArgs.builder()\n                    .title(\"Affected Users\")\n                    .displayType(\"line\")\n                    .interval(\"5m\")\n                    .widgetType(\"discover\")\n                    .queries(                    \n                        SentryDashboardWidgetQueryArgs.builder()\n                            .name(\"Known Users\")\n                            .fields(\"count_unique(user)\")\n                            .aggregates(\"count_unique(user)\")\n                            .conditions(\"has:user.email !event.type:transaction\")\n                            .orderBy(\"count_unique(user)\")\n                            .build(),\n                        SentryDashboardWidgetQueryArgs.builder()\n                            .name(\"Anonymous Users\")\n                            .fields(\"count_unique(user)\")\n                            .aggregates(\"count_unique(user)\")\n                            .conditions(\"!has:user.email !event.type:transaction\")\n                            .orderBy(\"count_unique(user)\")\n                            .build())\n                    .layout(SentryDashboardWidgetLayoutArgs.builder()\n                        .x(1)\n                        .y(2)\n                        .w(1)\n                        .h(2)\n                        .minH(2)\n                        .build())\n                    .build(),\n                SentryDashboardWidgetArgs.builder()\n                    .title(\"Handled vs. Unhandled\")\n                    .displayType(\"line\")\n                    .interval(\"5m\")\n                    .widgetType(\"discover\")\n                    .queries(                    \n                        SentryDashboardWidgetQueryArgs.builder()\n                            .name(\"Handled\")\n                            .fields(\"count()\")\n                            .aggregates(\"count()\")\n                            .conditions(\"error.handled:true\")\n                            .orderBy(\"count()\")\n                            .build(),\n                        SentryDashboardWidgetQueryArgs.builder()\n                            .name(\"Unhandled\")\n                            .fields(\"count()\")\n                            .aggregates(\"count()\")\n                            .conditions(\"error.handled:false\")\n                            .orderBy(\"count()\")\n                            .build())\n                    .layout(SentryDashboardWidgetLayoutArgs.builder()\n                        .x(0)\n                        .y(2)\n                        .w(1)\n                        .h(2)\n                        .minH(2)\n                        .build())\n                    .build(),\n                SentryDashboardWidgetArgs.builder()\n                    .title(\"Errors by Country\")\n                    .displayType(\"world_map\")\n                    .interval(\"5m\")\n                    .widgetType(\"discover\")\n                    .queries(SentryDashboardWidgetQueryArgs.builder()\n                        .fields(\"count()\")\n                        .aggregates(\"count()\")\n                        .conditions(\"!event.type:transaction has:geo.country_code\")\n                        .orderBy(\"count()\")\n                        .build())\n                    .layout(SentryDashboardWidgetLayoutArgs.builder()\n                        .x(4)\n                        .y(6)\n                        .w(2)\n                        .h(4)\n                        .minH(2)\n                        .build())\n                    .build(),\n                SentryDashboardWidgetArgs.builder()\n                    .title(\"High Throughput Transactions\")\n                    .displayType(\"table\")\n                    .interval(\"5m\")\n                    .widgetType(\"discover\")\n                    .queries(SentryDashboardWidgetQueryArgs.builder()\n                        .fields(                        \n                            \"count()\",\n                            \"transaction\")\n                        .aggregates(\"count()\")\n                        .columns(\"transaction\")\n                        .conditions(\"!event.type:error\")\n                        .orderBy(\"-count()\")\n                        .build())\n                    .layout(SentryDashboardWidgetLayoutArgs.builder()\n                        .x(0)\n                        .y(6)\n                        .w(2)\n                        .h(4)\n                        .minH(2)\n                        .build())\n                    .build(),\n                SentryDashboardWidgetArgs.builder()\n                    .title(\"Errors by Browser\")\n                    .displayType(\"table\")\n                    .interval(\"5m\")\n                    .widgetType(\"discover\")\n                    .queries(SentryDashboardWidgetQueryArgs.builder()\n                        .fields(                        \n                            \"browser.name\",\n                            \"count()\")\n                        .aggregates(\"count()\")\n                        .columns(\"browser.name\")\n                        .conditions(\"!event.type:transaction has:browser.name\")\n                        .orderBy(\"-count()\")\n                        .build())\n                    .layout(SentryDashboardWidgetLayoutArgs.builder()\n                        .x(5)\n                        .y(2)\n                        .w(1)\n                        .h(4)\n                        .minH(2)\n                        .build())\n                    .build(),\n                SentryDashboardWidgetArgs.builder()\n                    .title(\"Overall User Misery\")\n                    .displayType(\"big_number\")\n                    .interval(\"5m\")\n                    .widgetType(\"discover\")\n                    .queries(SentryDashboardWidgetQueryArgs.builder()\n                        .fields(\"user_misery(300)\")\n                        .aggregates(\"user_misery(300)\")\n                        .build())\n                    .layout(SentryDashboardWidgetLayoutArgs.builder()\n                        .x(0)\n                        .y(1)\n                        .w(1)\n                        .h(1)\n                        .minH(1)\n                        .build())\n                    .build(),\n                SentryDashboardWidgetArgs.builder()\n                    .title(\"Overall Apdex\")\n                    .displayType(\"big_number\")\n                    .interval(\"5m\")\n                    .widgetType(\"discover\")\n                    .queries(SentryDashboardWidgetQueryArgs.builder()\n                        .fields(\"apdex(300)\")\n                        .aggregates(\"apdex(300)\")\n                        .build())\n                    .layout(SentryDashboardWidgetLayoutArgs.builder()\n                        .x(1)\n                        .y(1)\n                        .w(1)\n                        .h(1)\n                        .minH(1)\n                        .build())\n                    .build(),\n                SentryDashboardWidgetArgs.builder()\n                    .title(\"High Throughput Transactions\")\n                    .displayType(\"top_n\")\n                    .interval(\"5m\")\n                    .widgetType(\"discover\")\n                    .queries(SentryDashboardWidgetQueryArgs.builder()\n                        .fields(                        \n                            \"transaction\",\n                            \"count()\")\n                        .aggregates(\"count()\")\n                        .columns(\"transaction\")\n                        .conditions(\"!event.type:error\")\n                        .orderBy(\"-count()\")\n                        .build())\n                    .layout(SentryDashboardWidgetLayoutArgs.builder()\n                        .x(0)\n                        .y(4)\n                        .w(2)\n                        .h(2)\n                        .minH(2)\n                        .build())\n                    .build(),\n                SentryDashboardWidgetArgs.builder()\n                    .title(\"Issues Assigned to Me or My Teams\")\n                    .displayType(\"table\")\n                    .interval(\"5m\")\n                    .widgetType(\"issue\")\n                    .queries(SentryDashboardWidgetQueryArgs.builder()\n                        .fields(                        \n                            \"assignee\",\n                            \"issue\",\n                            \"title\")\n                        .columns(                        \n                            \"assignee\",\n                            \"issue\",\n                            \"title\")\n                        .conditions(\"assigned_or_suggested:me is:unresolved\")\n                        .orderBy(\"priority\")\n                        .build())\n                    .layout(SentryDashboardWidgetLayoutArgs.builder()\n                        .x(2)\n                        .y(2)\n                        .w(2)\n                        .h(4)\n                        .minH(2)\n                        .build())\n                    .build(),\n                SentryDashboardWidgetArgs.builder()\n                    .title(\"Transactions Ordered by Misery\")\n                    .displayType(\"table\")\n                    .interval(\"5m\")\n                    .widgetType(\"discover\")\n                    .queries(SentryDashboardWidgetQueryArgs.builder()\n                        .fields(                        \n                            \"transaction\",\n                            \"user_misery(300)\")\n                        .aggregates(\"user_misery(300)\")\n                        .columns(\"transaction\")\n                        .orderBy(\"-user_misery(300)\")\n                        .build())\n                    .layout(SentryDashboardWidgetLayoutArgs.builder()\n                        .x(2)\n                        .y(6)\n                        .w(2)\n                        .h(4)\n                        .minH(2)\n                        .build())\n                    .build(),\n                SentryDashboardWidgetArgs.builder()\n                    .title(\"Errors by Browser Over Time\")\n                    .displayType(\"top_n\")\n                    .interval(\"5m\")\n                    .widgetType(\"discover\")\n                    .queries(SentryDashboardWidgetQueryArgs.builder()\n                        .fields(                        \n                            \"browser.name\",\n                            \"count()\")\n                        .aggregates(\"count()\")\n                        .columns(\"browser.name\")\n                        .conditions(\"event.type:error has:browser.name\")\n                        .orderBy(\"-count()\")\n                        .build())\n                    .layout(SentryDashboardWidgetLayoutArgs.builder()\n                        .x(4)\n                        .y(2)\n                        .w(1)\n                        .h(4)\n                        .minH(2)\n                        .build())\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: sentry:SentryDashboard\n    properties:\n      organization: ${mainSentryOrganization.id}\n      title: Test dashboard\n      widgets:\n        - title: Number of Errors\n          displayType: big_number\n          interval: 5m\n          widgetType: discover\n          queries:\n            - fields:\n                - count()\n              aggregates:\n                - count()\n              conditions: '!event.type:transaction'\n              orderBy: count()\n          layout:\n            x: 0\n            y: 0\n            w: 1\n            h: 1\n            minH: 1\n        - title: Number of Issues\n          displayType: big_number\n          interval: 5m\n          widgetType: discover\n          queries:\n            - fields:\n                - count_unique(issue)\n              aggregates:\n                - count_unique(issue)\n              conditions: '!event.type:transaction'\n              orderBy: count_unique(issue)\n          layout:\n            x: 1\n            y: 0\n            w: 1\n            h: 1\n            minH: 1\n        - title: Events\n          displayType: line\n          interval: 5m\n          widgetType: discover\n          queries:\n            - name: Events\n              fields:\n                - count()\n              aggregates:\n                - count()\n              conditions: '!event.type:transaction'\n              orderBy: count()\n          layout:\n            x: 2\n            y: 0\n            w: 4\n            h: 2\n            minH: 2\n        - title: Affected Users\n          displayType: line\n          interval: 5m\n          widgetType: discover\n          queries:\n            - name: Known Users\n              fields:\n                - count_unique(user)\n              aggregates:\n                - count_unique(user)\n              conditions: has:user.email !event.type:transaction\n              orderBy: count_unique(user)\n            - name: Anonymous Users\n              fields:\n                - count_unique(user)\n              aggregates:\n                - count_unique(user)\n              conditions: '!has:user.email !event.type:transaction'\n              orderBy: count_unique(user)\n          layout:\n            x: 1\n            y: 2\n            w: 1\n            h: 2\n            minH: 2\n        - title: Handled vs. Unhandled\n          displayType: line\n          interval: 5m\n          widgetType: discover\n          queries:\n            - name: Handled\n              fields:\n                - count()\n              aggregates:\n                - count()\n              conditions: error.handled:true\n              orderBy: count()\n            - name: Unhandled\n              fields:\n                - count()\n              aggregates:\n                - count()\n              conditions: error.handled:false\n              orderBy: count()\n          layout:\n            x: 0\n            y: 2\n            w: 1\n            h: 2\n            minH: 2\n        - title: Errors by Country\n          displayType: world_map\n          interval: 5m\n          widgetType: discover\n          queries:\n            - fields:\n                - count()\n              aggregates:\n                - count()\n              conditions: '!event.type:transaction has:geo.country_code'\n              orderBy: count()\n          layout:\n            x: 4\n            y: 6\n            w: 2\n            h: 4\n            minH: 2\n        - title: High Throughput Transactions\n          displayType: table\n          interval: 5m\n          widgetType: discover\n          queries:\n            - fields:\n                - count()\n                - transaction\n              aggregates:\n                - count()\n              columns:\n                - transaction\n              conditions: '!event.type:error'\n              orderBy: -count()\n          layout:\n            x: 0\n            y: 6\n            w: 2\n            h: 4\n            minH: 2\n        - title: Errors by Browser\n          displayType: table\n          interval: 5m\n          widgetType: discover\n          queries:\n            - fields:\n                - browser.name\n                - count()\n              aggregates:\n                - count()\n              columns:\n                - browser.name\n              conditions: '!event.type:transaction has:browser.name'\n              orderBy: -count()\n          layout:\n            x: 5\n            y: 2\n            w: 1\n            h: 4\n            minH: 2\n        - title: Overall User Misery\n          displayType: big_number\n          interval: 5m\n          widgetType: discover\n          queries:\n            - fields:\n                - user_misery(300)\n              aggregates:\n                - user_misery(300)\n          layout:\n            x: 0\n            y: 1\n            w: 1\n            h: 1\n            minH: 1\n        - title: Overall Apdex\n          displayType: big_number\n          interval: 5m\n          widgetType: discover\n          queries:\n            - fields:\n                - apdex(300)\n              aggregates:\n                - apdex(300)\n          layout:\n            x: 1\n            y: 1\n            w: 1\n            h: 1\n            minH: 1\n        - title: High Throughput Transactions\n          displayType: top_n\n          interval: 5m\n          widgetType: discover\n          queries:\n            - fields:\n                - transaction\n                - count()\n              aggregates:\n                - count()\n              columns:\n                - transaction\n              conditions: '!event.type:error'\n              orderBy: -count()\n          layout:\n            x: 0\n            y: 4\n            w: 2\n            h: 2\n            minH: 2\n        - title: Issues Assigned to Me or My Teams\n          displayType: table\n          interval: 5m\n          widgetType: issue\n          queries:\n            - fields:\n                - assignee\n                - issue\n                - title\n              columns:\n                - assignee\n                - issue\n                - title\n              conditions: assigned_or_suggested:me is:unresolved\n              orderBy: priority\n          layout:\n            x: 2\n            y: 2\n            w: 2\n            h: 4\n            minH: 2\n        - title: Transactions Ordered by Misery\n          displayType: table\n          interval: 5m\n          widgetType: discover\n          queries:\n            - fields:\n                - transaction\n                - user_misery(300)\n              aggregates:\n                - user_misery(300)\n              columns:\n                - transaction\n              orderBy: -user_misery(300)\n          layout:\n            x: 2\n            y: 6\n            w: 2\n            h: 4\n            minH: 2\n        - title: Errors by Browser Over Time\n          displayType: top_n\n          interval: 5m\n          widgetType: discover\n          queries:\n            - fields:\n                - browser.name\n                - count()\n              aggregates:\n                - count()\n              columns:\n                - browser.name\n              conditions: event.type:error has:browser.name\n              orderBy: -count()\n          layout:\n            x: 4\n            y: 2\n            w: 1\n            h: 4\n            minH: 2\n```\n<!--End PulumiCodeChooser -->\n",
      "properties": {
        "internalId": {
          "type": "string",
          "description": "The internal ID for this dashboard.\n"
        },
        "organization": {
          "type": "string",
          "description": "The slug of the organization the dashboard belongs to.\n"
        },
        "title": {
          "type": "string",
          "description": "Dashboard title.\n"
        },
        "widgets": {
          "type": "array",
          "items": {
            "$ref": "#/types/sentry:index%2FSentryDashboardWidget:SentryDashboardWidget"
          },
          "description": "Dashboard widgets.\n"
        }
      },
      "type": "object",
      "required": [
        "internalId",
        "organization",
        "title"
      ],
      "inputProperties": {
        "organization": {
          "type": "string",
          "description": "The slug of the organization the dashboard belongs to.\n"
        },
        "title": {
          "type": "string",
          "description": "Dashboard title.\n"
        },
        "widgets": {
          "type": "array",
          "items": {
            "$ref": "#/types/sentry:index%2FSentryDashboardWidget:SentryDashboardWidget"
          },
          "description": "Dashboard widgets.\n"
        }
      },
      "requiredInputs": [
        "organization",
        "title"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering SentryDashboard resources.\n",
        "properties": {
          "internalId": {
            "type": "string",
            "description": "The internal ID for this dashboard.\n"
          },
          "organization": {
            "type": "string",
            "description": "The slug of the organization the dashboard belongs to.\n"
          },
          "title": {
            "type": "string",
            "description": "Dashboard title.\n"
          },
          "widgets": {
            "type": "array",
            "items": {
              "$ref": "#/types/sentry:index%2FSentryDashboardWidget:SentryDashboardWidget"
            },
            "description": "Dashboard widgets.\n"
          }
        },
        "type": "object"
      }
    },
    "sentry:index/sentryIssueAlert:SentryIssueAlert": {
      "description": "Sentry Issue Alert resource. Note that there's no public documentation for the values of conditions, filters, and actions. You can either inspect the request payload sent when creating or editing an issue alert on Sentry or inspect [Sentry's rules registry in the source code](https://github.com/getsentry/sentry/tree/master/src/sentry/rules). Since v0.11.2, you should also omit the name property of each condition, filter, and action.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as sentry from \"@pulumi/sentry\";\nimport * as sentry from \"@pulumiverse/sentry\";\n\n// Retrieve a Slack integration\nconst slack = sentry.getSentryOrganizationIntegration({\n    organization: test.organization,\n    providerKey: \"slack\",\n    name: \"Slack Workspace\",\n});\nconst main = new sentry.SentryIssueAlert(\"main\", {\n    organization: mainSentryProject.organization,\n    project: mainSentryProject.id,\n    name: \"My issue alert\",\n    actionMatch: \"any\",\n    filterMatch: \"any\",\n    frequency: 30,\n    conditions: [\n        {\n            id: \"sentry.rules.conditions.first_seen_event.FirstSeenEventCondition\",\n        },\n        {\n            id: \"sentry.rules.conditions.regression_event.RegressionEventCondition\",\n        },\n        {\n            id: \"sentry.rules.conditions.event_frequency.EventFrequencyCondition\",\n            value: \"100\",\n            comparisonType: \"count\",\n            interval: \"1h\",\n        },\n        {\n            id: \"sentry.rules.conditions.event_frequency.EventUniqueUserFrequencyCondition\",\n            value: \"100\",\n            comparisonType: \"count\",\n            interval: \"1h\",\n        },\n        {\n            id: \"sentry.rules.conditions.event_frequency.EventFrequencyPercentCondition\",\n            value: \"50.0\",\n            comparisonType: \"count\",\n            interval: \"1h\",\n        },\n    ],\n    filters: [\n        {\n            id: \"sentry.rules.filters.age_comparison.AgeComparisonFilter\",\n            value: \"10\",\n            time: \"minute\",\n            comparison_type: \"older\",\n        },\n        {\n            id: \"sentry.rules.filters.issue_occurrences.IssueOccurrencesFilter\",\n            value: \"10\",\n        },\n        {\n            id: \"sentry.rules.filters.assigned_to.AssignedToFilter\",\n            targetType: \"Team\",\n            targetIdentifier: mainSentryTeam.teamId,\n        },\n        {\n            id: \"sentry.rules.filters.latest_release.LatestReleaseFilter\",\n        },\n        {\n            id: \"sentry.rules.filters.event_attribute.EventAttributeFilter\",\n            attribute: \"message\",\n            match: \"co\",\n            value: \"test\",\n        },\n        {\n            id: \"sentry.rules.filters.tagged_event.TaggedEventFilter\",\n            key: \"test\",\n            match: \"co\",\n            value: \"test\",\n        },\n        {\n            id: \"sentry.rules.filters.level.LevelFilter\",\n            match: \"eq\",\n            level: \"50\",\n        },\n    ],\n    actions: [\n        {\n            id: \"sentry.mail.actions.NotifyEmailAction\",\n            targetType: \"IssueOwners\",\n            targetIdentifier: \"\",\n        },\n        {\n            id: \"sentry.mail.actions.NotifyEmailAction\",\n            targetType: \"Team\",\n            targetIdentifier: mainSentryTeam.teamId,\n        },\n        {\n            id: \"sentry.rules.actions.notify_event.NotifyEventAction\",\n        },\n        {\n            id: \"sentry.integrations.slack.notify_action.SlackNotifyServiceAction\",\n            channel: \"#general\",\n            workspace: slack.then(slack => slack.internalId),\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_sentry as sentry\nimport pulumiverse_sentry as sentry\n\n# Retrieve a Slack integration\nslack = sentry.get_sentry_organization_integration(organization=test[\"organization\"],\n    provider_key=\"slack\",\n    name=\"Slack Workspace\")\nmain = sentry.SentryIssueAlert(\"main\",\n    organization=main_sentry_project[\"organization\"],\n    project=main_sentry_project[\"id\"],\n    name=\"My issue alert\",\n    action_match=\"any\",\n    filter_match=\"any\",\n    frequency=30,\n    conditions=[\n        {\n            \"id\": \"sentry.rules.conditions.first_seen_event.FirstSeenEventCondition\",\n        },\n        {\n            \"id\": \"sentry.rules.conditions.regression_event.RegressionEventCondition\",\n        },\n        {\n            \"id\": \"sentry.rules.conditions.event_frequency.EventFrequencyCondition\",\n            \"value\": \"100\",\n            \"comparisonType\": \"count\",\n            \"interval\": \"1h\",\n        },\n        {\n            \"id\": \"sentry.rules.conditions.event_frequency.EventUniqueUserFrequencyCondition\",\n            \"value\": \"100\",\n            \"comparisonType\": \"count\",\n            \"interval\": \"1h\",\n        },\n        {\n            \"id\": \"sentry.rules.conditions.event_frequency.EventFrequencyPercentCondition\",\n            \"value\": \"50.0\",\n            \"comparisonType\": \"count\",\n            \"interval\": \"1h\",\n        },\n    ],\n    filters=[\n        {\n            \"id\": \"sentry.rules.filters.age_comparison.AgeComparisonFilter\",\n            \"value\": \"10\",\n            \"time\": \"minute\",\n            \"comparison_type\": \"older\",\n        },\n        {\n            \"id\": \"sentry.rules.filters.issue_occurrences.IssueOccurrencesFilter\",\n            \"value\": \"10\",\n        },\n        {\n            \"id\": \"sentry.rules.filters.assigned_to.AssignedToFilter\",\n            \"targetType\": \"Team\",\n            \"targetIdentifier\": main_sentry_team[\"teamId\"],\n        },\n        {\n            \"id\": \"sentry.rules.filters.latest_release.LatestReleaseFilter\",\n        },\n        {\n            \"id\": \"sentry.rules.filters.event_attribute.EventAttributeFilter\",\n            \"attribute\": \"message\",\n            \"match\": \"co\",\n            \"value\": \"test\",\n        },\n        {\n            \"id\": \"sentry.rules.filters.tagged_event.TaggedEventFilter\",\n            \"key\": \"test\",\n            \"match\": \"co\",\n            \"value\": \"test\",\n        },\n        {\n            \"id\": \"sentry.rules.filters.level.LevelFilter\",\n            \"match\": \"eq\",\n            \"level\": \"50\",\n        },\n    ],\n    actions=[\n        {\n            \"id\": \"sentry.mail.actions.NotifyEmailAction\",\n            \"targetType\": \"IssueOwners\",\n            \"targetIdentifier\": \"\",\n        },\n        {\n            \"id\": \"sentry.mail.actions.NotifyEmailAction\",\n            \"targetType\": \"Team\",\n            \"targetIdentifier\": main_sentry_team[\"teamId\"],\n        },\n        {\n            \"id\": \"sentry.rules.actions.notify_event.NotifyEventAction\",\n        },\n        {\n            \"id\": \"sentry.integrations.slack.notify_action.SlackNotifyServiceAction\",\n            \"channel\": \"#general\",\n            \"workspace\": slack.internal_id,\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Sentry = Pulumi.Sentry;\nusing Sentry = Pulumiverse.Sentry;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Retrieve a Slack integration\n    var slack = Sentry.GetSentryOrganizationIntegration.Invoke(new()\n    {\n        Organization = test.Organization,\n        ProviderKey = \"slack\",\n        Name = \"Slack Workspace\",\n    });\n\n    var main = new Sentry.SentryIssueAlert(\"main\", new()\n    {\n        Organization = mainSentryProject.Organization,\n        Project = mainSentryProject.Id,\n        Name = \"My issue alert\",\n        ActionMatch = \"any\",\n        FilterMatch = \"any\",\n        Frequency = 30,\n        Conditions = new[]\n        {\n            \n            {\n                { \"id\", \"sentry.rules.conditions.first_seen_event.FirstSeenEventCondition\" },\n            },\n            \n            {\n                { \"id\", \"sentry.rules.conditions.regression_event.RegressionEventCondition\" },\n            },\n            \n            {\n                { \"id\", \"sentry.rules.conditions.event_frequency.EventFrequencyCondition\" },\n                { \"value\", \"100\" },\n                { \"comparisonType\", \"count\" },\n                { \"interval\", \"1h\" },\n            },\n            \n            {\n                { \"id\", \"sentry.rules.conditions.event_frequency.EventUniqueUserFrequencyCondition\" },\n                { \"value\", \"100\" },\n                { \"comparisonType\", \"count\" },\n                { \"interval\", \"1h\" },\n            },\n            \n            {\n                { \"id\", \"sentry.rules.conditions.event_frequency.EventFrequencyPercentCondition\" },\n                { \"value\", \"50.0\" },\n                { \"comparisonType\", \"count\" },\n                { \"interval\", \"1h\" },\n            },\n        },\n        Filters = new[]\n        {\n            \n            {\n                { \"id\", \"sentry.rules.filters.age_comparison.AgeComparisonFilter\" },\n                { \"value\", \"10\" },\n                { \"time\", \"minute\" },\n                { \"comparison_type\", \"older\" },\n            },\n            \n            {\n                { \"id\", \"sentry.rules.filters.issue_occurrences.IssueOccurrencesFilter\" },\n                { \"value\", \"10\" },\n            },\n            \n            {\n                { \"id\", \"sentry.rules.filters.assigned_to.AssignedToFilter\" },\n                { \"targetType\", \"Team\" },\n                { \"targetIdentifier\", mainSentryTeam.TeamId },\n            },\n            \n            {\n                { \"id\", \"sentry.rules.filters.latest_release.LatestReleaseFilter\" },\n            },\n            \n            {\n                { \"id\", \"sentry.rules.filters.event_attribute.EventAttributeFilter\" },\n                { \"attribute\", \"message\" },\n                { \"match\", \"co\" },\n                { \"value\", \"test\" },\n            },\n            \n            {\n                { \"id\", \"sentry.rules.filters.tagged_event.TaggedEventFilter\" },\n                { \"key\", \"test\" },\n                { \"match\", \"co\" },\n                { \"value\", \"test\" },\n            },\n            \n            {\n                { \"id\", \"sentry.rules.filters.level.LevelFilter\" },\n                { \"match\", \"eq\" },\n                { \"level\", \"50\" },\n            },\n        },\n        Actions = new[]\n        {\n            \n            {\n                { \"id\", \"sentry.mail.actions.NotifyEmailAction\" },\n                { \"targetType\", \"IssueOwners\" },\n                { \"targetIdentifier\", \"\" },\n            },\n            \n            {\n                { \"id\", \"sentry.mail.actions.NotifyEmailAction\" },\n                { \"targetType\", \"Team\" },\n                { \"targetIdentifier\", mainSentryTeam.TeamId },\n            },\n            \n            {\n                { \"id\", \"sentry.rules.actions.notify_event.NotifyEventAction\" },\n            },\n            \n            {\n                { \"id\", \"sentry.integrations.slack.notify_action.SlackNotifyServiceAction\" },\n                { \"channel\", \"#general\" },\n                { \"workspace\", slack.Apply(getSentryOrganizationIntegrationResult => getSentryOrganizationIntegrationResult.InternalId) },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-sentry/sdk/go/sentry\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Retrieve a Slack integration\n\t\tslack, err := sentry.GetSentryOrganizationIntegration(ctx, &sentry.GetSentryOrganizationIntegrationArgs{\n\t\t\tOrganization: test.Organization,\n\t\t\tProviderKey:  \"slack\",\n\t\t\tName:         \"Slack Workspace\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = sentry.NewSentryIssueAlert(ctx, \"main\", &sentry.SentryIssueAlertArgs{\n\t\t\tOrganization: pulumi.Any(mainSentryProject.Organization),\n\t\t\tProject:      pulumi.Any(mainSentryProject.Id),\n\t\t\tName:         pulumi.String(\"My issue alert\"),\n\t\t\tActionMatch:  pulumi.String(\"any\"),\n\t\t\tFilterMatch:  pulumi.String(\"any\"),\n\t\t\tFrequency:    pulumi.Int(30),\n\t\t\tConditions: pulumi.StringMapArray{\n\t\t\t\tpulumi.StringMap{\n\t\t\t\t\t\"id\": pulumi.String(\"sentry.rules.conditions.first_seen_event.FirstSeenEventCondition\"),\n\t\t\t\t},\n\t\t\t\tpulumi.StringMap{\n\t\t\t\t\t\"id\": pulumi.String(\"sentry.rules.conditions.regression_event.RegressionEventCondition\"),\n\t\t\t\t},\n\t\t\t\tpulumi.StringMap{\n\t\t\t\t\t\"id\":             pulumi.String(\"sentry.rules.conditions.event_frequency.EventFrequencyCondition\"),\n\t\t\t\t\t\"value\":          pulumi.String(\"100\"),\n\t\t\t\t\t\"comparisonType\": pulumi.String(\"count\"),\n\t\t\t\t\t\"interval\":       pulumi.String(\"1h\"),\n\t\t\t\t},\n\t\t\t\tpulumi.StringMap{\n\t\t\t\t\t\"id\":             pulumi.String(\"sentry.rules.conditions.event_frequency.EventUniqueUserFrequencyCondition\"),\n\t\t\t\t\t\"value\":          pulumi.String(\"100\"),\n\t\t\t\t\t\"comparisonType\": pulumi.String(\"count\"),\n\t\t\t\t\t\"interval\":       pulumi.String(\"1h\"),\n\t\t\t\t},\n\t\t\t\tpulumi.StringMap{\n\t\t\t\t\t\"id\":             pulumi.String(\"sentry.rules.conditions.event_frequency.EventFrequencyPercentCondition\"),\n\t\t\t\t\t\"value\":          pulumi.String(\"50.0\"),\n\t\t\t\t\t\"comparisonType\": pulumi.String(\"count\"),\n\t\t\t\t\t\"interval\":       pulumi.String(\"1h\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tFilters: pulumi.StringMapArray{\n\t\t\t\tpulumi.StringMap{\n\t\t\t\t\t\"id\":              pulumi.String(\"sentry.rules.filters.age_comparison.AgeComparisonFilter\"),\n\t\t\t\t\t\"value\":           pulumi.String(\"10\"),\n\t\t\t\t\t\"time\":            pulumi.String(\"minute\"),\n\t\t\t\t\t\"comparison_type\": pulumi.String(\"older\"),\n\t\t\t\t},\n\t\t\t\tpulumi.StringMap{\n\t\t\t\t\t\"id\":    pulumi.String(\"sentry.rules.filters.issue_occurrences.IssueOccurrencesFilter\"),\n\t\t\t\t\t\"value\": pulumi.String(\"10\"),\n\t\t\t\t},\n\t\t\t\tpulumi.StringMap{\n\t\t\t\t\t\"id\":               pulumi.String(\"sentry.rules.filters.assigned_to.AssignedToFilter\"),\n\t\t\t\t\t\"targetType\":       pulumi.String(\"Team\"),\n\t\t\t\t\t\"targetIdentifier\": pulumi.Any(mainSentryTeam.TeamId),\n\t\t\t\t},\n\t\t\t\tpulumi.StringMap{\n\t\t\t\t\t\"id\": pulumi.String(\"sentry.rules.filters.latest_release.LatestReleaseFilter\"),\n\t\t\t\t},\n\t\t\t\tpulumi.StringMap{\n\t\t\t\t\t\"id\":        pulumi.String(\"sentry.rules.filters.event_attribute.EventAttributeFilter\"),\n\t\t\t\t\t\"attribute\": pulumi.String(\"message\"),\n\t\t\t\t\t\"match\":     pulumi.String(\"co\"),\n\t\t\t\t\t\"value\":     pulumi.String(\"test\"),\n\t\t\t\t},\n\t\t\t\tpulumi.StringMap{\n\t\t\t\t\t\"id\":    pulumi.String(\"sentry.rules.filters.tagged_event.TaggedEventFilter\"),\n\t\t\t\t\t\"key\":   pulumi.String(\"test\"),\n\t\t\t\t\t\"match\": pulumi.String(\"co\"),\n\t\t\t\t\t\"value\": pulumi.String(\"test\"),\n\t\t\t\t},\n\t\t\t\tpulumi.StringMap{\n\t\t\t\t\t\"id\":    pulumi.String(\"sentry.rules.filters.level.LevelFilter\"),\n\t\t\t\t\t\"match\": pulumi.String(\"eq\"),\n\t\t\t\t\t\"level\": pulumi.String(\"50\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tActions: pulumi.StringMapArray{\n\t\t\t\tpulumi.StringMap{\n\t\t\t\t\t\"id\":               pulumi.String(\"sentry.mail.actions.NotifyEmailAction\"),\n\t\t\t\t\t\"targetType\":       pulumi.String(\"IssueOwners\"),\n\t\t\t\t\t\"targetIdentifier\": pulumi.String(\"\"),\n\t\t\t\t},\n\t\t\t\tpulumi.StringMap{\n\t\t\t\t\t\"id\":               pulumi.String(\"sentry.mail.actions.NotifyEmailAction\"),\n\t\t\t\t\t\"targetType\":       pulumi.String(\"Team\"),\n\t\t\t\t\t\"targetIdentifier\": pulumi.Any(mainSentryTeam.TeamId),\n\t\t\t\t},\n\t\t\t\tpulumi.StringMap{\n\t\t\t\t\t\"id\": pulumi.String(\"sentry.rules.actions.notify_event.NotifyEventAction\"),\n\t\t\t\t},\n\t\t\t\tpulumi.StringMap{\n\t\t\t\t\t\"id\":        pulumi.String(\"sentry.integrations.slack.notify_action.SlackNotifyServiceAction\"),\n\t\t\t\t\t\"channel\":   pulumi.String(\"#general\"),\n\t\t\t\t\t\"workspace\": pulumi.String(slack.InternalId),\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.sentry.SentryFunctions;\nimport com.pulumi.sentry.inputs.GetSentryOrganizationIntegrationArgs;\nimport com.pulumi.sentry.SentryIssueAlert;\nimport com.pulumi.sentry.SentryIssueAlertArgs;\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        // Retrieve a Slack integration\n        final var slack = SentryFunctions.getSentryOrganizationIntegration(GetSentryOrganizationIntegrationArgs.builder()\n            .organization(test.organization())\n            .providerKey(\"slack\")\n            .name(\"Slack Workspace\")\n            .build());\n\n        var main = new SentryIssueAlert(\"main\", SentryIssueAlertArgs.builder()\n            .organization(mainSentryProject.organization())\n            .project(mainSentryProject.id())\n            .name(\"My issue alert\")\n            .actionMatch(\"any\")\n            .filterMatch(\"any\")\n            .frequency(30)\n            .conditions(            \n                Map.of(\"id\", \"sentry.rules.conditions.first_seen_event.FirstSeenEventCondition\"),\n                Map.of(\"id\", \"sentry.rules.conditions.regression_event.RegressionEventCondition\"),\n                Map.ofEntries(\n                    Map.entry(\"id\", \"sentry.rules.conditions.event_frequency.EventFrequencyCondition\"),\n                    Map.entry(\"value\", 100),\n                    Map.entry(\"comparisonType\", \"count\"),\n                    Map.entry(\"interval\", \"1h\")\n                ),\n                Map.ofEntries(\n                    Map.entry(\"id\", \"sentry.rules.conditions.event_frequency.EventUniqueUserFrequencyCondition\"),\n                    Map.entry(\"value\", 100),\n                    Map.entry(\"comparisonType\", \"count\"),\n                    Map.entry(\"interval\", \"1h\")\n                ),\n                Map.ofEntries(\n                    Map.entry(\"id\", \"sentry.rules.conditions.event_frequency.EventFrequencyPercentCondition\"),\n                    Map.entry(\"value\", \"50.0\"),\n                    Map.entry(\"comparisonType\", \"count\"),\n                    Map.entry(\"interval\", \"1h\")\n                ))\n            .filters(            \n                Map.ofEntries(\n                    Map.entry(\"id\", \"sentry.rules.filters.age_comparison.AgeComparisonFilter\"),\n                    Map.entry(\"value\", 10),\n                    Map.entry(\"time\", \"minute\"),\n                    Map.entry(\"comparison_type\", \"older\")\n                ),\n                Map.ofEntries(\n                    Map.entry(\"id\", \"sentry.rules.filters.issue_occurrences.IssueOccurrencesFilter\"),\n                    Map.entry(\"value\", 10)\n                ),\n                Map.ofEntries(\n                    Map.entry(\"id\", \"sentry.rules.filters.assigned_to.AssignedToFilter\"),\n                    Map.entry(\"targetType\", \"Team\"),\n                    Map.entry(\"targetIdentifier\", mainSentryTeam.teamId())\n                ),\n                Map.of(\"id\", \"sentry.rules.filters.latest_release.LatestReleaseFilter\"),\n                Map.ofEntries(\n                    Map.entry(\"id\", \"sentry.rules.filters.event_attribute.EventAttributeFilter\"),\n                    Map.entry(\"attribute\", \"message\"),\n                    Map.entry(\"match\", \"co\"),\n                    Map.entry(\"value\", \"test\")\n                ),\n                Map.ofEntries(\n                    Map.entry(\"id\", \"sentry.rules.filters.tagged_event.TaggedEventFilter\"),\n                    Map.entry(\"key\", \"test\"),\n                    Map.entry(\"match\", \"co\"),\n                    Map.entry(\"value\", \"test\")\n                ),\n                Map.ofEntries(\n                    Map.entry(\"id\", \"sentry.rules.filters.level.LevelFilter\"),\n                    Map.entry(\"match\", \"eq\"),\n                    Map.entry(\"level\", \"50\")\n                ))\n            .actions(            \n                Map.ofEntries(\n                    Map.entry(\"id\", \"sentry.mail.actions.NotifyEmailAction\"),\n                    Map.entry(\"targetType\", \"IssueOwners\"),\n                    Map.entry(\"targetIdentifier\", \"\")\n                ),\n                Map.ofEntries(\n                    Map.entry(\"id\", \"sentry.mail.actions.NotifyEmailAction\"),\n                    Map.entry(\"targetType\", \"Team\"),\n                    Map.entry(\"targetIdentifier\", mainSentryTeam.teamId())\n                ),\n                Map.of(\"id\", \"sentry.rules.actions.notify_event.NotifyEventAction\"),\n                Map.ofEntries(\n                    Map.entry(\"id\", \"sentry.integrations.slack.notify_action.SlackNotifyServiceAction\"),\n                    Map.entry(\"channel\", \"#general\"),\n                    Map.entry(\"workspace\", slack.applyValue(getSentryOrganizationIntegrationResult -> getSentryOrganizationIntegrationResult.internalId()))\n                ))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: sentry:SentryIssueAlert\n    properties:\n      organization: ${mainSentryProject.organization}\n      project: ${mainSentryProject.id}\n      name: My issue alert\n      actionMatch: any\n      filterMatch: any\n      frequency: 30\n      conditions:\n        - id: sentry.rules.conditions.first_seen_event.FirstSeenEventCondition\n        - id: sentry.rules.conditions.regression_event.RegressionEventCondition\n        - id: sentry.rules.conditions.event_frequency.EventFrequencyCondition\n          value: 100\n          comparisonType: count\n          interval: 1h\n        - id: sentry.rules.conditions.event_frequency.EventUniqueUserFrequencyCondition\n          value: 100\n          comparisonType: count\n          interval: 1h\n        - id: sentry.rules.conditions.event_frequency.EventFrequencyPercentCondition\n          value: '50.0'\n          comparisonType: count\n          interval: 1h\n      filters:\n        - id: sentry.rules.filters.age_comparison.AgeComparisonFilter\n          value: 10\n          time: minute\n          comparison_type: older\n        - id: sentry.rules.filters.issue_occurrences.IssueOccurrencesFilter\n          value: 10\n        - id: sentry.rules.filters.assigned_to.AssignedToFilter\n          targetType: Team\n          targetIdentifier: ${mainSentryTeam.teamId}\n        - id: sentry.rules.filters.latest_release.LatestReleaseFilter\n        - id: sentry.rules.filters.event_attribute.EventAttributeFilter\n          attribute: message\n          match: co\n          value: test\n        - id: sentry.rules.filters.tagged_event.TaggedEventFilter\n          key: test\n          match: co\n          value: test\n        - id: sentry.rules.filters.level.LevelFilter\n          match: eq\n          level: '50'\n      actions:\n        - id: sentry.mail.actions.NotifyEmailAction\n          targetType: IssueOwners\n          targetIdentifier:\n        - id: sentry.mail.actions.NotifyEmailAction\n          targetType: Team\n          targetIdentifier: ${mainSentryTeam.teamId}\n        - id: sentry.rules.actions.notify_event.NotifyEventAction\n        - id: sentry.integrations.slack.notify_action.SlackNotifyServiceAction\n          channel: '#general'\n          workspace: ${slack.internalId}\nvariables:\n  # Retrieve a Slack integration\n  slack:\n    fn::invoke:\n      Function: sentry:getSentryOrganizationIntegration\n      Arguments:\n        organization: ${test.organization}\n        providerKey: slack\n        name: Slack Workspace\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nimport using the organization, project slugs and rule id from the URL:\n\nhttps://sentry.io/organizations/[org-slug]/alerts/rules/[project-slug]/[rule-id]/details/\n\n```sh\n$ pulumi import sentry:index/sentryIssueAlert:SentryIssueAlert default org-slug/project-slug/rule-id\n```\n\n",
      "properties": {
        "actionMatch": {
          "type": "string",
          "description": "Trigger actions when an event is captured by Sentry and `any` or `all` of the specified conditions happen.\n"
        },
        "actions": {
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "description": "List of actions.\n"
        },
        "conditions": {
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "description": "List of conditions.\n"
        },
        "environment": {
          "type": "string",
          "description": "Perform issue alert in a specific environment.\n"
        },
        "filterMatch": {
          "type": "string",
          "description": "Trigger actions if `all`, `any`, or `none` of the specified filters match.\n"
        },
        "filters": {
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "description": "List of filters.\n"
        },
        "frequency": {
          "type": "integer",
          "description": "Perform actions at most once every `X` minutes for this issue. Defaults to `30`.\n"
        },
        "internalId": {
          "type": "string",
          "description": "The internal ID for this issue alert.\n"
        },
        "name": {
          "type": "string",
          "description": "The issue alert name.\n"
        },
        "organization": {
          "type": "string",
          "description": "The slug of the organization the issue alert belongs to.\n"
        },
        "project": {
          "type": "string",
          "description": "The slug of the project to create the issue alert for.\n"
        },
        "projects": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Use `project` (singular) instead.\n",
          "deprecationMessage": "Use `project` (singular) instead."
        }
      },
      "type": "object",
      "required": [
        "actionMatch",
        "actions",
        "conditions",
        "environment",
        "filterMatch",
        "frequency",
        "internalId",
        "name",
        "organization",
        "project",
        "projects"
      ],
      "inputProperties": {
        "actionMatch": {
          "type": "string",
          "description": "Trigger actions when an event is captured by Sentry and `any` or `all` of the specified conditions happen.\n"
        },
        "actions": {
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "description": "List of actions.\n"
        },
        "conditions": {
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "description": "List of conditions.\n"
        },
        "environment": {
          "type": "string",
          "description": "Perform issue alert in a specific environment.\n"
        },
        "filterMatch": {
          "type": "string",
          "description": "Trigger actions if `all`, `any`, or `none` of the specified filters match.\n"
        },
        "filters": {
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "description": "List of filters.\n"
        },
        "frequency": {
          "type": "integer",
          "description": "Perform actions at most once every `X` minutes for this issue. Defaults to `30`.\n"
        },
        "name": {
          "type": "string",
          "description": "The issue alert name.\n"
        },
        "organization": {
          "type": "string",
          "description": "The slug of the organization the issue alert belongs to.\n"
        },
        "project": {
          "type": "string",
          "description": "The slug of the project to create the issue alert for.\n"
        }
      },
      "requiredInputs": [
        "actionMatch",
        "actions",
        "conditions",
        "filterMatch",
        "frequency",
        "organization",
        "project"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering SentryIssueAlert resources.\n",
        "properties": {
          "actionMatch": {
            "type": "string",
            "description": "Trigger actions when an event is captured by Sentry and `any` or `all` of the specified conditions happen.\n"
          },
          "actions": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              }
            },
            "description": "List of actions.\n"
          },
          "conditions": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              }
            },
            "description": "List of conditions.\n"
          },
          "environment": {
            "type": "string",
            "description": "Perform issue alert in a specific environment.\n"
          },
          "filterMatch": {
            "type": "string",
            "description": "Trigger actions if `all`, `any`, or `none` of the specified filters match.\n"
          },
          "filters": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              }
            },
            "description": "List of filters.\n"
          },
          "frequency": {
            "type": "integer",
            "description": "Perform actions at most once every `X` minutes for this issue. Defaults to `30`.\n"
          },
          "internalId": {
            "type": "string",
            "description": "The internal ID for this issue alert.\n"
          },
          "name": {
            "type": "string",
            "description": "The issue alert name.\n"
          },
          "organization": {
            "type": "string",
            "description": "The slug of the organization the issue alert belongs to.\n"
          },
          "project": {
            "type": "string",
            "description": "The slug of the project to create the issue alert for.\n"
          },
          "projects": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Use `project` (singular) instead.\n",
            "deprecationMessage": "Use `project` (singular) instead."
          }
        },
        "type": "object"
      }
    },
    "sentry:index/sentryKey:SentryKey": {
      "description": "Sentry Key resource.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as sentry from \"@pulumiverse/sentry\";\n\n// Create a key\nconst _default = new sentry.SentryKey(\"default\", {\n    organization: \"my-organization\",\n    project: \"web-app\",\n    name: \"My Key\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_sentry as sentry\n\n# Create a key\ndefault = sentry.SentryKey(\"default\",\n    organization=\"my-organization\",\n    project=\"web-app\",\n    name=\"My Key\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Sentry = Pulumiverse.Sentry;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create a key\n    var @default = new Sentry.SentryKey(\"default\", new()\n    {\n        Organization = \"my-organization\",\n        Project = \"web-app\",\n        Name = \"My Key\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-sentry/sdk/go/sentry\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Create a key\n\t\t_, err := sentry.NewSentryKey(ctx, \"default\", &sentry.SentryKeyArgs{\n\t\t\tOrganization: pulumi.String(\"my-organization\"),\n\t\t\tProject:      pulumi.String(\"web-app\"),\n\t\t\tName:         pulumi.String(\"My Key\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.sentry.SentryKey;\nimport com.pulumi.sentry.SentryKeyArgs;\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        // Create a key\n        var default_ = new SentryKey(\"default\", SentryKeyArgs.builder()\n            .organization(\"my-organization\")\n            .project(\"web-app\")\n            .name(\"My Key\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create a key\n  default:\n    type: sentry:SentryKey\n    properties:\n      organization: my-organization\n      project: web-app\n      name: My Key\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nimport using the organization, project slugs and key id from the URL:\n\nhttps://sentry.io/settings/[org-slug]/projects/[project-slug]/keys/[key-id]/\n\n```sh\n$ pulumi import sentry:index/sentryKey:SentryKey default org-slug/project-slug/key-id\n```\n\n",
      "properties": {
        "dsnCsp": {
          "type": "string",
          "description": "DSN for the Content Security Policy (CSP) for the key.\n"
        },
        "dsnPublic": {
          "type": "string",
          "description": "DSN for the key.\n"
        },
        "dsnSecret": {
          "type": "string",
          "deprecationMessage": "DSN (Deprecated) for the key.",
          "secret": true
        },
        "isActive": {
          "type": "boolean",
          "description": "Flag indicating the key is active.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of the key.\n"
        },
        "organization": {
          "type": "string",
          "description": "The slug of the organization the key should be created for.\n"
        },
        "project": {
          "type": "string",
          "description": "The slug of the project the key should be created for.\n"
        },
        "projectId": {
          "type": "integer",
          "description": "The ID of the project that the key belongs to.\n"
        },
        "public": {
          "type": "string",
          "description": "Public key portion of the client key.\n"
        },
        "rateLimitCount": {
          "type": "integer",
          "description": "Number of events that can be reported within the rate limit window.\n"
        },
        "rateLimitWindow": {
          "type": "integer",
          "description": "Length of time that will be considered when checking the rate limit.\n"
        },
        "secret": {
          "type": "string",
          "description": "Secret key portion of the client key.\n",
          "secret": true
        }
      },
      "type": "object",
      "required": [
        "dsnCsp",
        "dsnPublic",
        "dsnSecret",
        "isActive",
        "name",
        "organization",
        "project",
        "projectId",
        "public",
        "rateLimitCount",
        "rateLimitWindow",
        "secret"
      ],
      "inputProperties": {
        "name": {
          "type": "string",
          "description": "The name of the key.\n"
        },
        "organization": {
          "type": "string",
          "description": "The slug of the organization the key should be created for.\n"
        },
        "project": {
          "type": "string",
          "description": "The slug of the project the key should be created for.\n"
        },
        "rateLimitCount": {
          "type": "integer",
          "description": "Number of events that can be reported within the rate limit window.\n"
        },
        "rateLimitWindow": {
          "type": "integer",
          "description": "Length of time that will be considered when checking the rate limit.\n"
        }
      },
      "requiredInputs": [
        "organization",
        "project"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering SentryKey resources.\n",
        "properties": {
          "dsnCsp": {
            "type": "string",
            "description": "DSN for the Content Security Policy (CSP) for the key.\n"
          },
          "dsnPublic": {
            "type": "string",
            "description": "DSN for the key.\n"
          },
          "dsnSecret": {
            "type": "string",
            "deprecationMessage": "DSN (Deprecated) for the key.",
            "secret": true
          },
          "isActive": {
            "type": "boolean",
            "description": "Flag indicating the key is active.\n"
          },
          "name": {
            "type": "string",
            "description": "The name of the key.\n"
          },
          "organization": {
            "type": "string",
            "description": "The slug of the organization the key should be created for.\n"
          },
          "project": {
            "type": "string",
            "description": "The slug of the project the key should be created for.\n"
          },
          "projectId": {
            "type": "integer",
            "description": "The ID of the project that the key belongs to.\n"
          },
          "public": {
            "type": "string",
            "description": "Public key portion of the client key.\n"
          },
          "rateLimitCount": {
            "type": "integer",
            "description": "Number of events that can be reported within the rate limit window.\n"
          },
          "rateLimitWindow": {
            "type": "integer",
            "description": "Length of time that will be considered when checking the rate limit.\n"
          },
          "secret": {
            "type": "string",
            "description": "Secret key portion of the client key.\n",
            "secret": true
          }
        },
        "type": "object"
      }
    },
    "sentry:index/sentryMetricAlert:SentryMetricAlert": {
      "description": "Sentry Metric Alert resource.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as sentry from \"@pulumi/sentry\";\nimport * as sentry from \"@pulumiverse/sentry\";\n\nconst slack = sentry.getSentryOrganizationIntegration({\n    organization: mainSentryProject.organization,\n    providerKey: \"slack\",\n    name: \"Slack Workspace\",\n});\nconst main = new sentry.SentryMetricAlert(\"main\", {\n    organization: mainSentryProject.organization,\n    project: mainSentryProject.id,\n    name: \"My metric alert\",\n    dataset: \"events\",\n    query: \"\",\n    aggregate: \"count()\",\n    timeWindow: 60,\n    thresholdType: 0,\n    resolveThreshold: 0,\n    triggers: [\n        {\n            actions: [{\n                type: \"email\",\n                targetType: \"team\",\n                targetIdentifier: mainSentryTeam.teamId,\n            }],\n            alertThreshold: 300,\n            label: \"critical\",\n            thresholdType: 0,\n        },\n        {\n            actions: [{\n                type: \"slack\",\n                targetType: \"specific\",\n                targetIdentifier: \"#slack-channel\",\n                integrationId: slack.then(slack => slack.id),\n            }],\n            alertThreshold: 300,\n            label: \"critical\",\n            thresholdType: 0,\n        },\n        {\n            alertThreshold: 100,\n            label: \"warning\",\n            thresholdType: 0,\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_sentry as sentry\nimport pulumiverse_sentry as sentry\n\nslack = sentry.get_sentry_organization_integration(organization=main_sentry_project[\"organization\"],\n    provider_key=\"slack\",\n    name=\"Slack Workspace\")\nmain = sentry.SentryMetricAlert(\"main\",\n    organization=main_sentry_project[\"organization\"],\n    project=main_sentry_project[\"id\"],\n    name=\"My metric alert\",\n    dataset=\"events\",\n    query=\"\",\n    aggregate=\"count()\",\n    time_window=60,\n    threshold_type=0,\n    resolve_threshold=0,\n    triggers=[\n        {\n            \"actions\": [{\n                \"type\": \"email\",\n                \"target_type\": \"team\",\n                \"target_identifier\": main_sentry_team[\"teamId\"],\n            }],\n            \"alert_threshold\": 300,\n            \"label\": \"critical\",\n            \"threshold_type\": 0,\n        },\n        {\n            \"actions\": [{\n                \"type\": \"slack\",\n                \"target_type\": \"specific\",\n                \"target_identifier\": \"#slack-channel\",\n                \"integration_id\": slack.id,\n            }],\n            \"alert_threshold\": 300,\n            \"label\": \"critical\",\n            \"threshold_type\": 0,\n        },\n        {\n            \"alert_threshold\": 100,\n            \"label\": \"warning\",\n            \"threshold_type\": 0,\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Sentry = Pulumi.Sentry;\nusing Sentry = Pulumiverse.Sentry;\n\nreturn await Deployment.RunAsync(() => \n{\n    var slack = Sentry.GetSentryOrganizationIntegration.Invoke(new()\n    {\n        Organization = mainSentryProject.Organization,\n        ProviderKey = \"slack\",\n        Name = \"Slack Workspace\",\n    });\n\n    var main = new Sentry.SentryMetricAlert(\"main\", new()\n    {\n        Organization = mainSentryProject.Organization,\n        Project = mainSentryProject.Id,\n        Name = \"My metric alert\",\n        Dataset = \"events\",\n        Query = \"\",\n        Aggregate = \"count()\",\n        TimeWindow = 60,\n        ThresholdType = 0,\n        ResolveThreshold = 0,\n        Triggers = new[]\n        {\n            new Sentry.Inputs.SentryMetricAlertTriggerArgs\n            {\n                Actions = new[]\n                {\n                    new Sentry.Inputs.SentryMetricAlertTriggerActionArgs\n                    {\n                        Type = \"email\",\n                        TargetType = \"team\",\n                        TargetIdentifier = mainSentryTeam.TeamId,\n                    },\n                },\n                AlertThreshold = 300,\n                Label = \"critical\",\n                ThresholdType = 0,\n            },\n            new Sentry.Inputs.SentryMetricAlertTriggerArgs\n            {\n                Actions = new[]\n                {\n                    new Sentry.Inputs.SentryMetricAlertTriggerActionArgs\n                    {\n                        Type = \"slack\",\n                        TargetType = \"specific\",\n                        TargetIdentifier = \"#slack-channel\",\n                        IntegrationId = slack.Apply(getSentryOrganizationIntegrationResult => getSentryOrganizationIntegrationResult.Id),\n                    },\n                },\n                AlertThreshold = 300,\n                Label = \"critical\",\n                ThresholdType = 0,\n            },\n            new Sentry.Inputs.SentryMetricAlertTriggerArgs\n            {\n                AlertThreshold = 100,\n                Label = \"warning\",\n                ThresholdType = 0,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-sentry/sdk/go/sentry\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tslack, err := sentry.GetSentryOrganizationIntegration(ctx, &sentry.GetSentryOrganizationIntegrationArgs{\n\t\t\tOrganization: mainSentryProject.Organization,\n\t\t\tProviderKey:  \"slack\",\n\t\t\tName:         \"Slack Workspace\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = sentry.NewSentryMetricAlert(ctx, \"main\", &sentry.SentryMetricAlertArgs{\n\t\t\tOrganization:     pulumi.Any(mainSentryProject.Organization),\n\t\t\tProject:          pulumi.Any(mainSentryProject.Id),\n\t\t\tName:             pulumi.String(\"My metric alert\"),\n\t\t\tDataset:          pulumi.String(\"events\"),\n\t\t\tQuery:            pulumi.String(\"\"),\n\t\t\tAggregate:        pulumi.String(\"count()\"),\n\t\t\tTimeWindow:       pulumi.Float64(60),\n\t\t\tThresholdType:    pulumi.Int(0),\n\t\t\tResolveThreshold: pulumi.Float64(0),\n\t\t\tTriggers: sentry.SentryMetricAlertTriggerArray{\n\t\t\t\t&sentry.SentryMetricAlertTriggerArgs{\n\t\t\t\t\tActions: sentry.SentryMetricAlertTriggerActionArray{\n\t\t\t\t\t\t&sentry.SentryMetricAlertTriggerActionArgs{\n\t\t\t\t\t\t\tType:             pulumi.String(\"email\"),\n\t\t\t\t\t\t\tTargetType:       pulumi.String(\"team\"),\n\t\t\t\t\t\t\tTargetIdentifier: pulumi.Any(mainSentryTeam.TeamId),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tAlertThreshold: pulumi.Float64(300),\n\t\t\t\t\tLabel:          pulumi.String(\"critical\"),\n\t\t\t\t\tThresholdType:  pulumi.Int(0),\n\t\t\t\t},\n\t\t\t\t&sentry.SentryMetricAlertTriggerArgs{\n\t\t\t\t\tActions: sentry.SentryMetricAlertTriggerActionArray{\n\t\t\t\t\t\t&sentry.SentryMetricAlertTriggerActionArgs{\n\t\t\t\t\t\t\tType:             pulumi.String(\"slack\"),\n\t\t\t\t\t\t\tTargetType:       pulumi.String(\"specific\"),\n\t\t\t\t\t\t\tTargetIdentifier: pulumi.String(\"#slack-channel\"),\n\t\t\t\t\t\t\tIntegrationId:    pulumi.String(slack.Id),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tAlertThreshold: pulumi.Float64(300),\n\t\t\t\t\tLabel:          pulumi.String(\"critical\"),\n\t\t\t\t\tThresholdType:  pulumi.Int(0),\n\t\t\t\t},\n\t\t\t\t&sentry.SentryMetricAlertTriggerArgs{\n\t\t\t\t\tAlertThreshold: pulumi.Float64(100),\n\t\t\t\t\tLabel:          pulumi.String(\"warning\"),\n\t\t\t\t\tThresholdType:  pulumi.Int(0),\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.sentry.SentryFunctions;\nimport com.pulumi.sentry.inputs.GetSentryOrganizationIntegrationArgs;\nimport com.pulumi.sentry.SentryMetricAlert;\nimport com.pulumi.sentry.SentryMetricAlertArgs;\nimport com.pulumi.sentry.inputs.SentryMetricAlertTriggerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var slack = SentryFunctions.getSentryOrganizationIntegration(GetSentryOrganizationIntegrationArgs.builder()\n            .organization(mainSentryProject.organization())\n            .providerKey(\"slack\")\n            .name(\"Slack Workspace\")\n            .build());\n\n        var main = new SentryMetricAlert(\"main\", SentryMetricAlertArgs.builder()\n            .organization(mainSentryProject.organization())\n            .project(mainSentryProject.id())\n            .name(\"My metric alert\")\n            .dataset(\"events\")\n            .query(\"\")\n            .aggregate(\"count()\")\n            .timeWindow(60)\n            .thresholdType(0)\n            .resolveThreshold(0)\n            .triggers(            \n                SentryMetricAlertTriggerArgs.builder()\n                    .actions(SentryMetricAlertTriggerActionArgs.builder()\n                        .type(\"email\")\n                        .targetType(\"team\")\n                        .targetIdentifier(mainSentryTeam.teamId())\n                        .build())\n                    .alertThreshold(300)\n                    .label(\"critical\")\n                    .thresholdType(0)\n                    .build(),\n                SentryMetricAlertTriggerArgs.builder()\n                    .actions(SentryMetricAlertTriggerActionArgs.builder()\n                        .type(\"slack\")\n                        .targetType(\"specific\")\n                        .targetIdentifier(\"#slack-channel\")\n                        .integrationId(slack.applyValue(getSentryOrganizationIntegrationResult -> getSentryOrganizationIntegrationResult.id()))\n                        .build())\n                    .alertThreshold(300)\n                    .label(\"critical\")\n                    .thresholdType(0)\n                    .build(),\n                SentryMetricAlertTriggerArgs.builder()\n                    .alertThreshold(100)\n                    .label(\"warning\")\n                    .thresholdType(0)\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: sentry:SentryMetricAlert\n    properties:\n      organization: ${mainSentryProject.organization}\n      project: ${mainSentryProject.id}\n      name: My metric alert\n      dataset: events\n      query:\n      aggregate: count()\n      timeWindow: 60\n      thresholdType: 0\n      resolveThreshold: 0\n      triggers:\n        - actions:\n            - type: email\n              targetType: team\n              targetIdentifier: ${mainSentryTeam.teamId}\n          alertThreshold: 300\n          label: critical\n          thresholdType: 0\n        - actions:\n            - type: slack\n              targetType: specific\n              targetIdentifier: '#slack-channel'\n              integrationId: ${slack.id}\n          alertThreshold: 300\n          label: critical\n          thresholdType: 0\n        - alertThreshold: 100\n          label: warning\n          thresholdType: 0\nvariables:\n  slack:\n    fn::invoke:\n      Function: sentry:getSentryOrganizationIntegration\n      Arguments:\n        organization: ${mainSentryProject.organization}\n        providerKey: slack\n        name: Slack Workspace\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nimport using the organization, project slugs and rule id from the URL:\n\nhttps://sentry.io/organizations/[org-slug]/projects/[project-slug]/\n\nhttps://sentry.io/organizations/[org-slug]/alerts/rules/details/[rule-id]/\n\nor\n\nhttps://sentry.io/organizations/[org-slug]/alerts/metric-rules/[project-slug]/[rule-id]/\n\n```sh\n$ pulumi import sentry:index/sentryMetricAlert:SentryMetricAlert default org-slug/project-slug/rule-id\n```\n\n",
      "properties": {
        "aggregate": {
          "type": "string",
          "description": "The aggregation criteria to apply\n"
        },
        "dataset": {
          "type": "string",
          "description": "The Sentry Alert category\n"
        },
        "environment": {
          "type": "string",
          "description": "Perform Alert rule in a specific environment\n"
        },
        "eventTypes": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The events type of dataset.\n"
        },
        "internalId": {
          "type": "string",
          "description": "The internal ID for this metric alert.\n"
        },
        "name": {
          "type": "string",
          "description": "The metric alert name.\n"
        },
        "organization": {
          "type": "string",
          "description": "The slug of the organization the metric alert belongs to.\n"
        },
        "owner": {
          "type": "string",
          "description": "Specifies the owner id of this Alert rule\n"
        },
        "project": {
          "type": "string",
          "description": "The slug of the project to create the metric alert for.\n"
        },
        "query": {
          "type": "string",
          "description": "The query filter to apply\n"
        },
        "resolveThreshold": {
          "type": "number",
          "description": "The value at which the Alert rule resolves\n"
        },
        "thresholdType": {
          "type": "integer",
          "description": "The type of threshold\n"
        },
        "timeWindow": {
          "type": "number",
          "description": "The period to evaluate the Alert rule in minutes\n"
        },
        "triggers": {
          "type": "array",
          "items": {
            "$ref": "#/types/sentry:index%2FSentryMetricAlertTrigger:SentryMetricAlertTrigger"
          }
        }
      },
      "type": "object",
      "required": [
        "aggregate",
        "environment",
        "internalId",
        "name",
        "organization",
        "owner",
        "project",
        "query",
        "thresholdType",
        "timeWindow",
        "triggers"
      ],
      "inputProperties": {
        "aggregate": {
          "type": "string",
          "description": "The aggregation criteria to apply\n"
        },
        "dataset": {
          "type": "string",
          "description": "The Sentry Alert category\n"
        },
        "environment": {
          "type": "string",
          "description": "Perform Alert rule in a specific environment\n"
        },
        "eventTypes": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The events type of dataset.\n"
        },
        "name": {
          "type": "string",
          "description": "The metric alert name.\n"
        },
        "organization": {
          "type": "string",
          "description": "The slug of the organization the metric alert belongs to.\n"
        },
        "owner": {
          "type": "string",
          "description": "Specifies the owner id of this Alert rule\n"
        },
        "project": {
          "type": "string",
          "description": "The slug of the project to create the metric alert for.\n"
        },
        "query": {
          "type": "string",
          "description": "The query filter to apply\n"
        },
        "resolveThreshold": {
          "type": "number",
          "description": "The value at which the Alert rule resolves\n"
        },
        "thresholdType": {
          "type": "integer",
          "description": "The type of threshold\n"
        },
        "timeWindow": {
          "type": "number",
          "description": "The period to evaluate the Alert rule in minutes\n"
        },
        "triggers": {
          "type": "array",
          "items": {
            "$ref": "#/types/sentry:index%2FSentryMetricAlertTrigger:SentryMetricAlertTrigger"
          }
        }
      },
      "requiredInputs": [
        "aggregate",
        "organization",
        "project",
        "query",
        "thresholdType",
        "timeWindow",
        "triggers"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering SentryMetricAlert resources.\n",
        "properties": {
          "aggregate": {
            "type": "string",
            "description": "The aggregation criteria to apply\n"
          },
          "dataset": {
            "type": "string",
            "description": "The Sentry Alert category\n"
          },
          "environment": {
            "type": "string",
            "description": "Perform Alert rule in a specific environment\n"
          },
          "eventTypes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "The events type of dataset.\n"
          },
          "internalId": {
            "type": "string",
            "description": "The internal ID for this metric alert.\n"
          },
          "name": {
            "type": "string",
            "description": "The metric alert name.\n"
          },
          "organization": {
            "type": "string",
            "description": "The slug of the organization the metric alert belongs to.\n"
          },
          "owner": {
            "type": "string",
            "description": "Specifies the owner id of this Alert rule\n"
          },
          "project": {
            "type": "string",
            "description": "The slug of the project to create the metric alert for.\n"
          },
          "query": {
            "type": "string",
            "description": "The query filter to apply\n"
          },
          "resolveThreshold": {
            "type": "number",
            "description": "The value at which the Alert rule resolves\n"
          },
          "thresholdType": {
            "type": "integer",
            "description": "The type of threshold\n"
          },
          "timeWindow": {
            "type": "number",
            "description": "The period to evaluate the Alert rule in minutes\n"
          },
          "triggers": {
            "type": "array",
            "items": {
              "$ref": "#/types/sentry:index%2FSentryMetricAlertTrigger:SentryMetricAlertTrigger"
            }
          }
        },
        "type": "object"
      }
    },
    "sentry:index/sentryOrganization:SentryOrganization": {
      "description": "Sentry Organization resource.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as sentry from \"@pulumiverse/sentry\";\n\n// Create an organization\nconst _default = new sentry.SentryOrganization(\"default\", {\n    name: \"My Organization\",\n    slug: \"my-organization\",\n    agreeTerms: true,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_sentry as sentry\n\n# Create an organization\ndefault = sentry.SentryOrganization(\"default\",\n    name=\"My Organization\",\n    slug=\"my-organization\",\n    agree_terms=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Sentry = Pulumiverse.Sentry;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create an organization\n    var @default = new Sentry.SentryOrganization(\"default\", new()\n    {\n        Name = \"My Organization\",\n        Slug = \"my-organization\",\n        AgreeTerms = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-sentry/sdk/go/sentry\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Create an organization\n\t\t_, err := sentry.NewSentryOrganization(ctx, \"default\", &sentry.SentryOrganizationArgs{\n\t\t\tName:       pulumi.String(\"My Organization\"),\n\t\t\tSlug:       pulumi.String(\"my-organization\"),\n\t\t\tAgreeTerms: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.sentry.SentryOrganization;\nimport com.pulumi.sentry.SentryOrganizationArgs;\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        // Create an organization\n        var default_ = new SentryOrganization(\"default\", SentryOrganizationArgs.builder()\n            .name(\"My Organization\")\n            .slug(\"my-organization\")\n            .agreeTerms(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an organization\n  default:\n    type: sentry:SentryOrganization\n    properties:\n      name: My Organization\n      slug: my-organization\n      agreeTerms: true\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nimport using the organization slug from the URL:\n\nhttps://sentry.io/organizations/[org-slug]/issues/\n\n```sh\n$ pulumi import sentry:index/sentryOrganization:SentryOrganization default org-slug\n```\n\n",
      "properties": {
        "agreeTerms": {
          "type": "boolean",
          "description": "You agree to the applicable terms of service and privacy policy.\n"
        },
        "internalId": {
          "type": "string",
          "description": "The internal ID for this organization.\n"
        },
        "name": {
          "type": "string",
          "description": "The human readable name for the organization.\n"
        },
        "slug": {
          "type": "string",
          "description": "The unique URL slug for this organization.\n"
        }
      },
      "type": "object",
      "required": [
        "agreeTerms",
        "internalId",
        "name",
        "slug"
      ],
      "inputProperties": {
        "agreeTerms": {
          "type": "boolean",
          "description": "You agree to the applicable terms of service and privacy policy.\n"
        },
        "name": {
          "type": "string",
          "description": "The human readable name for the organization.\n"
        },
        "slug": {
          "type": "string",
          "description": "The unique URL slug for this organization.\n"
        }
      },
      "requiredInputs": [
        "agreeTerms"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering SentryOrganization resources.\n",
        "properties": {
          "agreeTerms": {
            "type": "boolean",
            "description": "You agree to the applicable terms of service and privacy policy.\n"
          },
          "internalId": {
            "type": "string",
            "description": "The internal ID for this organization.\n"
          },
          "name": {
            "type": "string",
            "description": "The human readable name for the organization.\n"
          },
          "slug": {
            "type": "string",
            "description": "The unique URL slug for this organization.\n"
          }
        },
        "type": "object"
      }
    },
    "sentry:index/sentryOrganizationCodeMapping:SentryOrganizationCodeMapping": {
      "description": "Sentry Organization Code Mapping resource.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as sentry from \"@pulumi/sentry\";\nimport * as sentry from \"@pulumiverse/sentry\";\n\n// Retrieve the Github organization integration\nconst github = sentry.getSentryOrganizationIntegration({\n    organization: \"my-organization\",\n    providerKey: \"github\",\n    name: \"my-github-organization\",\n});\nconst _this = new sentry.SentryProject(\"this\", {\n    organization: \"my-organization\",\n    team: \"my-team\",\n    name: \"Web App\",\n    slug: \"web-app\",\n    platform: \"javascript\",\n    resolveAge: 720,\n});\nconst thisSentryOrganizationRepositoryGithub = new sentry.SentryOrganizationRepositoryGithub(\"this\", {\n    organization: \"my-organization\",\n    integrationId: github.then(github => github.internalId),\n    identifier: \"my-github-organization/my-github-repo\",\n});\nconst thisSentryOrganizationCodeMapping = new sentry.SentryOrganizationCodeMapping(\"this\", {\n    organization: \"my-organization\",\n    integrationId: github.then(github => github.internalId),\n    repositoryId: thisSentryOrganizationRepositoryGithub.internalId,\n    projectId: _this.internalId,\n    defaultBranch: \"main\",\n    stackRoot: \"/\",\n    sourceRoot: \"src/\",\n});\n```\n```python\nimport pulumi\nimport pulumi_sentry as sentry\nimport pulumiverse_sentry as sentry\n\n# Retrieve the Github organization integration\ngithub = sentry.get_sentry_organization_integration(organization=\"my-organization\",\n    provider_key=\"github\",\n    name=\"my-github-organization\")\nthis = sentry.SentryProject(\"this\",\n    organization=\"my-organization\",\n    team=\"my-team\",\n    name=\"Web App\",\n    slug=\"web-app\",\n    platform=\"javascript\",\n    resolve_age=720)\nthis_sentry_organization_repository_github = sentry.SentryOrganizationRepositoryGithub(\"this\",\n    organization=\"my-organization\",\n    integration_id=github.internal_id,\n    identifier=\"my-github-organization/my-github-repo\")\nthis_sentry_organization_code_mapping = sentry.SentryOrganizationCodeMapping(\"this\",\n    organization=\"my-organization\",\n    integration_id=github.internal_id,\n    repository_id=this_sentry_organization_repository_github.internal_id,\n    project_id=this.internal_id,\n    default_branch=\"main\",\n    stack_root=\"/\",\n    source_root=\"src/\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Sentry = Pulumi.Sentry;\nusing Sentry = Pulumiverse.Sentry;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Retrieve the Github organization integration\n    var github = Sentry.GetSentryOrganizationIntegration.Invoke(new()\n    {\n        Organization = \"my-organization\",\n        ProviderKey = \"github\",\n        Name = \"my-github-organization\",\n    });\n\n    var @this = new Sentry.SentryProject(\"this\", new()\n    {\n        Organization = \"my-organization\",\n        Team = \"my-team\",\n        Name = \"Web App\",\n        Slug = \"web-app\",\n        Platform = \"javascript\",\n        ResolveAge = 720,\n    });\n\n    var thisSentryOrganizationRepositoryGithub = new Sentry.SentryOrganizationRepositoryGithub(\"this\", new()\n    {\n        Organization = \"my-organization\",\n        IntegrationId = github.Apply(getSentryOrganizationIntegrationResult => getSentryOrganizationIntegrationResult.InternalId),\n        Identifier = \"my-github-organization/my-github-repo\",\n    });\n\n    var thisSentryOrganizationCodeMapping = new Sentry.SentryOrganizationCodeMapping(\"this\", new()\n    {\n        Organization = \"my-organization\",\n        IntegrationId = github.Apply(getSentryOrganizationIntegrationResult => getSentryOrganizationIntegrationResult.InternalId),\n        RepositoryId = thisSentryOrganizationRepositoryGithub.InternalId,\n        ProjectId = @this.InternalId,\n        DefaultBranch = \"main\",\n        StackRoot = \"/\",\n        SourceRoot = \"src/\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-sentry/sdk/go/sentry\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Retrieve the Github organization integration\n\t\tgithub, err := sentry.GetSentryOrganizationIntegration(ctx, &sentry.GetSentryOrganizationIntegrationArgs{\n\t\t\tOrganization: \"my-organization\",\n\t\t\tProviderKey:  \"github\",\n\t\t\tName:         \"my-github-organization\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tthis, err := sentry.NewSentryProject(ctx, \"this\", &sentry.SentryProjectArgs{\n\t\t\tOrganization: pulumi.String(\"my-organization\"),\n\t\t\tTeam:         pulumi.String(\"my-team\"),\n\t\t\tName:         pulumi.String(\"Web App\"),\n\t\t\tSlug:         pulumi.String(\"web-app\"),\n\t\t\tPlatform:     pulumi.String(\"javascript\"),\n\t\t\tResolveAge:   pulumi.Int(720),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tthisSentryOrganizationRepositoryGithub, err := sentry.NewSentryOrganizationRepositoryGithub(ctx, \"this\", &sentry.SentryOrganizationRepositoryGithubArgs{\n\t\t\tOrganization:  pulumi.String(\"my-organization\"),\n\t\t\tIntegrationId: pulumi.String(github.InternalId),\n\t\t\tIdentifier:    pulumi.String(\"my-github-organization/my-github-repo\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = sentry.NewSentryOrganizationCodeMapping(ctx, \"this\", &sentry.SentryOrganizationCodeMappingArgs{\n\t\t\tOrganization:  pulumi.String(\"my-organization\"),\n\t\t\tIntegrationId: pulumi.String(github.InternalId),\n\t\t\tRepositoryId:  thisSentryOrganizationRepositoryGithub.InternalId,\n\t\t\tProjectId:     this.InternalId,\n\t\t\tDefaultBranch: pulumi.String(\"main\"),\n\t\t\tStackRoot:     pulumi.String(\"/\"),\n\t\t\tSourceRoot:    pulumi.String(\"src/\"),\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.sentry.SentryFunctions;\nimport com.pulumi.sentry.inputs.GetSentryOrganizationIntegrationArgs;\nimport com.pulumi.sentry.SentryProject;\nimport com.pulumi.sentry.SentryProjectArgs;\nimport com.pulumi.sentry.SentryOrganizationRepositoryGithub;\nimport com.pulumi.sentry.SentryOrganizationRepositoryGithubArgs;\nimport com.pulumi.sentry.SentryOrganizationCodeMapping;\nimport com.pulumi.sentry.SentryOrganizationCodeMappingArgs;\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        // Retrieve the Github organization integration\n        final var github = SentryFunctions.getSentryOrganizationIntegration(GetSentryOrganizationIntegrationArgs.builder()\n            .organization(\"my-organization\")\n            .providerKey(\"github\")\n            .name(\"my-github-organization\")\n            .build());\n\n        var this_ = new SentryProject(\"this\", SentryProjectArgs.builder()\n            .organization(\"my-organization\")\n            .team(\"my-team\")\n            .name(\"Web App\")\n            .slug(\"web-app\")\n            .platform(\"javascript\")\n            .resolveAge(720)\n            .build());\n\n        var thisSentryOrganizationRepositoryGithub = new SentryOrganizationRepositoryGithub(\"thisSentryOrganizationRepositoryGithub\", SentryOrganizationRepositoryGithubArgs.builder()\n            .organization(\"my-organization\")\n            .integrationId(github.applyValue(getSentryOrganizationIntegrationResult -> getSentryOrganizationIntegrationResult.internalId()))\n            .identifier(\"my-github-organization/my-github-repo\")\n            .build());\n\n        var thisSentryOrganizationCodeMapping = new SentryOrganizationCodeMapping(\"thisSentryOrganizationCodeMapping\", SentryOrganizationCodeMappingArgs.builder()\n            .organization(\"my-organization\")\n            .integrationId(github.applyValue(getSentryOrganizationIntegrationResult -> getSentryOrganizationIntegrationResult.internalId()))\n            .repositoryId(thisSentryOrganizationRepositoryGithub.internalId())\n            .projectId(this_.internalId())\n            .defaultBranch(\"main\")\n            .stackRoot(\"/\")\n            .sourceRoot(\"src/\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  this:\n    type: sentry:SentryProject\n    properties:\n      organization: my-organization\n      team: my-team\n      name: Web App\n      slug: web-app\n      platform: javascript\n      resolveAge: 720\n  thisSentryOrganizationRepositoryGithub:\n    type: sentry:SentryOrganizationRepositoryGithub\n    name: this\n    properties:\n      organization: my-organization\n      integrationId: ${github.internalId}\n      identifier: my-github-organization/my-github-repo\n  thisSentryOrganizationCodeMapping:\n    type: sentry:SentryOrganizationCodeMapping\n    name: this\n    properties:\n      organization: my-organization\n      integrationId: ${github.internalId}\n      repositoryId: ${thisSentryOrganizationRepositoryGithub.internalId}\n      projectId: ${this.internalId}\n      defaultBranch: main\n      stackRoot: /\n      sourceRoot: src/\nvariables:\n  # Retrieve the Github organization integration\n  github:\n    fn::invoke:\n      Function: sentry:getSentryOrganizationIntegration\n      Arguments:\n        organization: my-organization\n        providerKey: github\n        name: my-github-organization\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nimport using the organization slug from the URL:\n\nhttps://sentry.io/settings/[org-slug]/integrations/github/[org-integration-id]/\n\nand inspect network tab for request to https://sentry.io/api/0/organizations/[org-slug]/code-mappings/\n\nfind the corresponding list element and reference [code-mapping-id] from the key \"id\"\n\n```sh\n$ pulumi import sentry:index/sentryOrganizationCodeMapping:SentryOrganizationCodeMapping this org-slug/31347\n```\n\n",
      "properties": {
        "defaultBranch": {
          "type": "string",
          "description": "Default branch of your code we fall back to if you do not have commit tracking set up.\n"
        },
        "integrationId": {
          "type": "string",
          "description": "Sentry Organization Integration ID.\n"
        },
        "internalId": {
          "type": "string",
          "description": "The internal ID for this resource.\n"
        },
        "organization": {
          "type": "string",
          "description": "The slug of the organization the code mapping is under.\n"
        },
        "projectId": {
          "type": "string",
          "description": "Sentry Project ID.\n"
        },
        "repositoryId": {
          "type": "string",
          "description": "Sentry Organization Repository ID.\n"
        },
        "sourceRoot": {
          "type": "string",
          "description": "https://docs.sentry.io/product/integrations/source-code-mgmt/github/#stack-trace-linking\n"
        },
        "stackRoot": {
          "type": "string",
          "description": "https://docs.sentry.io/product/integrations/source-code-mgmt/github/#stack-trace-linking\n"
        }
      },
      "type": "object",
      "required": [
        "defaultBranch",
        "integrationId",
        "internalId",
        "organization",
        "projectId",
        "repositoryId"
      ],
      "inputProperties": {
        "defaultBranch": {
          "type": "string",
          "description": "Default branch of your code we fall back to if you do not have commit tracking set up.\n"
        },
        "integrationId": {
          "type": "string",
          "description": "Sentry Organization Integration ID.\n"
        },
        "organization": {
          "type": "string",
          "description": "The slug of the organization the code mapping is under.\n"
        },
        "projectId": {
          "type": "string",
          "description": "Sentry Project ID.\n"
        },
        "repositoryId": {
          "type": "string",
          "description": "Sentry Organization Repository ID.\n"
        },
        "sourceRoot": {
          "type": "string",
          "description": "https://docs.sentry.io/product/integrations/source-code-mgmt/github/#stack-trace-linking\n"
        },
        "stackRoot": {
          "type": "string",
          "description": "https://docs.sentry.io/product/integrations/source-code-mgmt/github/#stack-trace-linking\n"
        }
      },
      "requiredInputs": [
        "defaultBranch",
        "integrationId",
        "organization",
        "projectId",
        "repositoryId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering SentryOrganizationCodeMapping resources.\n",
        "properties": {
          "defaultBranch": {
            "type": "string",
            "description": "Default branch of your code we fall back to if you do not have commit tracking set up.\n"
          },
          "integrationId": {
            "type": "string",
            "description": "Sentry Organization Integration ID.\n"
          },
          "internalId": {
            "type": "string",
            "description": "The internal ID for this resource.\n"
          },
          "organization": {
            "type": "string",
            "description": "The slug of the organization the code mapping is under.\n"
          },
          "projectId": {
            "type": "string",
            "description": "Sentry Project ID.\n"
          },
          "repositoryId": {
            "type": "string",
            "description": "Sentry Organization Repository ID.\n"
          },
          "sourceRoot": {
            "type": "string",
            "description": "https://docs.sentry.io/product/integrations/source-code-mgmt/github/#stack-trace-linking\n"
          },
          "stackRoot": {
            "type": "string",
            "description": "https://docs.sentry.io/product/integrations/source-code-mgmt/github/#stack-trace-linking\n"
          }
        },
        "type": "object"
      }
    },
    "sentry:index/sentryOrganizationMember:SentryOrganizationMember": {
      "description": "## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as sentry from \"@pulumiverse/sentry\";\n\n// Create an organization member\nconst johnDoe = new sentry.SentryOrganizationMember(\"john_doe\", {\n    organization: \"my-organization\",\n    email: \"test@example.com\",\n    role: \"member\",\n    teams: [\"my-team\"],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_sentry as sentry\n\n# Create an organization member\njohn_doe = sentry.SentryOrganizationMember(\"john_doe\",\n    organization=\"my-organization\",\n    email=\"test@example.com\",\n    role=\"member\",\n    teams=[\"my-team\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Sentry = Pulumiverse.Sentry;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create an organization member\n    var johnDoe = new Sentry.SentryOrganizationMember(\"john_doe\", new()\n    {\n        Organization = \"my-organization\",\n        Email = \"test@example.com\",\n        Role = \"member\",\n        Teams = new[]\n        {\n            \"my-team\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-sentry/sdk/go/sentry\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Create an organization member\n\t\t_, err := sentry.NewSentryOrganizationMember(ctx, \"john_doe\", &sentry.SentryOrganizationMemberArgs{\n\t\t\tOrganization: pulumi.String(\"my-organization\"),\n\t\t\tEmail:        pulumi.String(\"test@example.com\"),\n\t\t\tRole:         pulumi.String(\"member\"),\n\t\t\tTeams: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"my-team\"),\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.sentry.SentryOrganizationMember;\nimport com.pulumi.sentry.SentryOrganizationMemberArgs;\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        // Create an organization member\n        var johnDoe = new SentryOrganizationMember(\"johnDoe\", SentryOrganizationMemberArgs.builder()\n            .organization(\"my-organization\")\n            .email(\"test@example.com\")\n            .role(\"member\")\n            .teams(\"my-team\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an organization member\n  johnDoe:\n    type: sentry:SentryOrganizationMember\n    name: john_doe\n    properties:\n      organization: my-organization\n      email: test@example.com\n      role: member\n      teams:\n        - my-team\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nimport using the organization, membership id from the URL:\n\nhttps://sentry.io/settings/[org-slug]/members/[member-id]/\n\n```sh\n$ pulumi import sentry:index/sentryOrganizationMember:SentryOrganizationMember john_doe org-slug/member-id\n```\n\n",
      "properties": {
        "email": {
          "type": "string",
          "description": "The email of the organization member.\n"
        },
        "expired": {
          "type": "boolean",
          "description": "The invite has expired.\n"
        },
        "internalId": {
          "type": "string",
          "description": "The internal ID for this organization membership.\n"
        },
        "organization": {
          "type": "string",
          "description": "The slug of the organization the user should be invited to.\n"
        },
        "pending": {
          "type": "boolean",
          "description": "The invite is pending.\n"
        },
        "role": {
          "type": "string",
          "description": "This is the role of the organization member.\n"
        },
        "teams": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The teams the organization member should be added to.\n"
        }
      },
      "type": "object",
      "required": [
        "email",
        "expired",
        "internalId",
        "organization",
        "pending",
        "role"
      ],
      "inputProperties": {
        "email": {
          "type": "string",
          "description": "The email of the organization member.\n"
        },
        "organization": {
          "type": "string",
          "description": "The slug of the organization the user should be invited to.\n"
        },
        "role": {
          "type": "string",
          "description": "This is the role of the organization member.\n"
        },
        "teams": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The teams the organization member should be added to.\n"
        }
      },
      "requiredInputs": [
        "email",
        "organization",
        "role"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering SentryOrganizationMember resources.\n",
        "properties": {
          "email": {
            "type": "string",
            "description": "The email of the organization member.\n"
          },
          "expired": {
            "type": "boolean",
            "description": "The invite has expired.\n"
          },
          "internalId": {
            "type": "string",
            "description": "The internal ID for this organization membership.\n"
          },
          "organization": {
            "type": "string",
            "description": "The slug of the organization the user should be invited to.\n"
          },
          "pending": {
            "type": "boolean",
            "description": "The invite is pending.\n"
          },
          "role": {
            "type": "string",
            "description": "This is the role of the organization member.\n"
          },
          "teams": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "The teams the organization member should be added to.\n"
          }
        },
        "type": "object"
      }
    },
    "sentry:index/sentryOrganizationRepositoryGithub:SentryOrganizationRepositoryGithub": {
      "description": "Sentry Github Organization Repository resource.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as sentry from \"@pulumi/sentry\";\nimport * as sentry from \"@pulumiverse/sentry\";\n\n// Retrieve the Github organization integration\nconst github = sentry.getSentryOrganizationIntegration({\n    organization: \"my-organization\",\n    providerKey: \"github\",\n    name: \"my-github-organization\",\n});\nconst _this = new sentry.SentryOrganizationRepositoryGithub(\"this\", {\n    organization: \"my-organization\",\n    integrationId: github.then(github => github.internalId),\n    identifier: \"my-github-organization/my-github-repo\",\n});\n```\n```python\nimport pulumi\nimport pulumi_sentry as sentry\nimport pulumiverse_sentry as sentry\n\n# Retrieve the Github organization integration\ngithub = sentry.get_sentry_organization_integration(organization=\"my-organization\",\n    provider_key=\"github\",\n    name=\"my-github-organization\")\nthis = sentry.SentryOrganizationRepositoryGithub(\"this\",\n    organization=\"my-organization\",\n    integration_id=github.internal_id,\n    identifier=\"my-github-organization/my-github-repo\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Sentry = Pulumi.Sentry;\nusing Sentry = Pulumiverse.Sentry;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Retrieve the Github organization integration\n    var github = Sentry.GetSentryOrganizationIntegration.Invoke(new()\n    {\n        Organization = \"my-organization\",\n        ProviderKey = \"github\",\n        Name = \"my-github-organization\",\n    });\n\n    var @this = new Sentry.SentryOrganizationRepositoryGithub(\"this\", new()\n    {\n        Organization = \"my-organization\",\n        IntegrationId = github.Apply(getSentryOrganizationIntegrationResult => getSentryOrganizationIntegrationResult.InternalId),\n        Identifier = \"my-github-organization/my-github-repo\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-sentry/sdk/go/sentry\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Retrieve the Github organization integration\n\t\tgithub, err := sentry.GetSentryOrganizationIntegration(ctx, &sentry.GetSentryOrganizationIntegrationArgs{\n\t\t\tOrganization: \"my-organization\",\n\t\t\tProviderKey:  \"github\",\n\t\t\tName:         \"my-github-organization\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = sentry.NewSentryOrganizationRepositoryGithub(ctx, \"this\", &sentry.SentryOrganizationRepositoryGithubArgs{\n\t\t\tOrganization:  pulumi.String(\"my-organization\"),\n\t\t\tIntegrationId: pulumi.String(github.InternalId),\n\t\t\tIdentifier:    pulumi.String(\"my-github-organization/my-github-repo\"),\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.sentry.SentryFunctions;\nimport com.pulumi.sentry.inputs.GetSentryOrganizationIntegrationArgs;\nimport com.pulumi.sentry.SentryOrganizationRepositoryGithub;\nimport com.pulumi.sentry.SentryOrganizationRepositoryGithubArgs;\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        // Retrieve the Github organization integration\n        final var github = SentryFunctions.getSentryOrganizationIntegration(GetSentryOrganizationIntegrationArgs.builder()\n            .organization(\"my-organization\")\n            .providerKey(\"github\")\n            .name(\"my-github-organization\")\n            .build());\n\n        var this_ = new SentryOrganizationRepositoryGithub(\"this\", SentryOrganizationRepositoryGithubArgs.builder()\n            .organization(\"my-organization\")\n            .integrationId(github.applyValue(getSentryOrganizationIntegrationResult -> getSentryOrganizationIntegrationResult.internalId()))\n            .identifier(\"my-github-organization/my-github-repo\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  this:\n    type: sentry:SentryOrganizationRepositoryGithub\n    properties:\n      organization: my-organization\n      integrationId: ${github.internalId}\n      identifier: my-github-organization/my-github-repo\nvariables:\n  # Retrieve the Github organization integration\n  github:\n    fn::invoke:\n      Function: sentry:getSentryOrganizationIntegration\n      Arguments:\n        organization: my-organization\n        providerKey: github\n        name: my-github-organization\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nimport using the organization slug from the URL:\n\nhttps://sentry.io/organizations/[org-slug]/\n\n[github-org] and [github-repo] are the slugs to your repo\n\n```sh\n$ pulumi import sentry:index/sentryOrganizationRepositoryGithub:SentryOrganizationRepositoryGithub this org-slug/github-org/github-repo\n```\n\n",
      "properties": {
        "identifier": {
          "type": "string",
          "description": "The repo identifier. For Github it is {github*org}/{github*repo}.\n"
        },
        "integrationId": {
          "type": "string",
          "description": "The organization integration ID for Github.\n"
        },
        "internalId": {
          "type": "string",
          "description": "The internal ID for this organization repository.\n"
        },
        "organization": {
          "type": "string",
          "description": "The slug of the Sentry organization this resource belongs to.\n"
        }
      },
      "type": "object",
      "required": [
        "identifier",
        "integrationId",
        "internalId",
        "organization"
      ],
      "inputProperties": {
        "identifier": {
          "type": "string",
          "description": "The repo identifier. For Github it is {github*org}/{github*repo}.\n",
          "willReplaceOnChanges": true
        },
        "integrationId": {
          "type": "string",
          "description": "The organization integration ID for Github.\n",
          "willReplaceOnChanges": true
        },
        "organization": {
          "type": "string",
          "description": "The slug of the Sentry organization this resource belongs to.\n",
          "willReplaceOnChanges": true
        }
      },
      "requiredInputs": [
        "identifier",
        "integrationId",
        "organization"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering SentryOrganizationRepositoryGithub resources.\n",
        "properties": {
          "identifier": {
            "type": "string",
            "description": "The repo identifier. For Github it is {github*org}/{github*repo}.\n",
            "willReplaceOnChanges": true
          },
          "integrationId": {
            "type": "string",
            "description": "The organization integration ID for Github.\n",
            "willReplaceOnChanges": true
          },
          "internalId": {
            "type": "string",
            "description": "The internal ID for this organization repository.\n"
          },
          "organization": {
            "type": "string",
            "description": "The slug of the Sentry organization this resource belongs to.\n",
            "willReplaceOnChanges": true
          }
        },
        "type": "object"
      }
    },
    "sentry:index/sentryPlugin:SentryPlugin": {
      "description": "Sentry Plugin resource.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as sentry from \"@pulumiverse/sentry\";\n\n// Create a plugin\nconst _default = new sentry.SentryPlugin(\"default\", {\n    organization: \"my-organization\",\n    project: \"web-app\",\n    plugin: \"slack\",\n    config: {\n        webhook: \"slack://webhook\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumiverse_sentry as sentry\n\n# Create a plugin\ndefault = sentry.SentryPlugin(\"default\",\n    organization=\"my-organization\",\n    project=\"web-app\",\n    plugin=\"slack\",\n    config={\n        \"webhook\": \"slack://webhook\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Sentry = Pulumiverse.Sentry;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create a plugin\n    var @default = new Sentry.SentryPlugin(\"default\", new()\n    {\n        Organization = \"my-organization\",\n        Project = \"web-app\",\n        Plugin = \"slack\",\n        Config = \n        {\n            { \"webhook\", \"slack://webhook\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-sentry/sdk/go/sentry\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Create a plugin\n\t\t_, err := sentry.NewSentryPlugin(ctx, \"default\", &sentry.SentryPluginArgs{\n\t\t\tOrganization: pulumi.String(\"my-organization\"),\n\t\t\tProject:      pulumi.String(\"web-app\"),\n\t\t\tPlugin:       pulumi.String(\"slack\"),\n\t\t\tConfig: pulumi.StringMap{\n\t\t\t\t\"webhook\": pulumi.String(\"slack://webhook\"),\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.sentry.SentryPlugin;\nimport com.pulumi.sentry.SentryPluginArgs;\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        // Create a plugin\n        var default_ = new SentryPlugin(\"default\", SentryPluginArgs.builder()\n            .organization(\"my-organization\")\n            .project(\"web-app\")\n            .plugin(\"slack\")\n            .config(Map.of(\"webhook\", \"slack://webhook\"))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create a plugin\n  default:\n    type: sentry:SentryPlugin\n    properties:\n      organization: my-organization\n      project: web-app\n      plugin: slack\n      config:\n        webhook: slack://webhook\n```\n<!--End PulumiCodeChooser -->\n",
      "properties": {
        "config": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Plugin config.\n"
        },
        "organization": {
          "type": "string",
          "description": "The slug of the organization the project belongs to.\n"
        },
        "plugin": {
          "type": "string",
          "description": "Plugin ID.\n"
        },
        "project": {
          "type": "string",
          "description": "The slug of the project to create the plugin for.\n"
        }
      },
      "type": "object",
      "required": [
        "organization",
        "plugin",
        "project"
      ],
      "inputProperties": {
        "config": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Plugin config.\n"
        },
        "organization": {
          "type": "string",
          "description": "The slug of the organization the project belongs to.\n"
        },
        "plugin": {
          "type": "string",
          "description": "Plugin ID.\n"
        },
        "project": {
          "type": "string",
          "description": "The slug of the project to create the plugin for.\n"
        }
      },
      "requiredInputs": [
        "organization",
        "plugin",
        "project"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering SentryPlugin resources.\n",
        "properties": {
          "config": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Plugin config.\n"
          },
          "organization": {
            "type": "string",
            "description": "The slug of the organization the project belongs to.\n"
          },
          "plugin": {
            "type": "string",
            "description": "Plugin ID.\n"
          },
          "project": {
            "type": "string",
            "description": "The slug of the project to create the plugin for.\n"
          }
        },
        "type": "object"
      }
    },
    "sentry:index/sentryProject:SentryProject": {
      "description": "Sentry Project resource.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as sentry from \"@pulumiverse/sentry\";\n\n// Create a project\nconst _default = new sentry.SentryProject(\"default\", {\n    organization: \"my-organization\",\n    teams: [\n        \"my-first-team\",\n        \"my-second-team\",\n    ],\n    name: \"Web App\",\n    slug: \"web-app\",\n    platform: \"javascript\",\n    resolveAge: 720,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_sentry as sentry\n\n# Create a project\ndefault = sentry.SentryProject(\"default\",\n    organization=\"my-organization\",\n    teams=[\n        \"my-first-team\",\n        \"my-second-team\",\n    ],\n    name=\"Web App\",\n    slug=\"web-app\",\n    platform=\"javascript\",\n    resolve_age=720)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Sentry = Pulumiverse.Sentry;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create a project\n    var @default = new Sentry.SentryProject(\"default\", new()\n    {\n        Organization = \"my-organization\",\n        Teams = new[]\n        {\n            \"my-first-team\",\n            \"my-second-team\",\n        },\n        Name = \"Web App\",\n        Slug = \"web-app\",\n        Platform = \"javascript\",\n        ResolveAge = 720,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-sentry/sdk/go/sentry\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Create a project\n\t\t_, err := sentry.NewSentryProject(ctx, \"default\", &sentry.SentryProjectArgs{\n\t\t\tOrganization: pulumi.String(\"my-organization\"),\n\t\t\tTeams: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"my-first-team\"),\n\t\t\t\tpulumi.String(\"my-second-team\"),\n\t\t\t},\n\t\t\tName:       pulumi.String(\"Web App\"),\n\t\t\tSlug:       pulumi.String(\"web-app\"),\n\t\t\tPlatform:   pulumi.String(\"javascript\"),\n\t\t\tResolveAge: pulumi.Int(720),\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.sentry.SentryProject;\nimport com.pulumi.sentry.SentryProjectArgs;\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        // Create a project\n        var default_ = new SentryProject(\"default\", SentryProjectArgs.builder()\n            .organization(\"my-organization\")\n            .teams(            \n                \"my-first-team\",\n                \"my-second-team\")\n            .name(\"Web App\")\n            .slug(\"web-app\")\n            .platform(\"javascript\")\n            .resolveAge(720)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create a project\n  default:\n    type: sentry:SentryProject\n    properties:\n      organization: my-organization\n      teams:\n        - my-first-team\n        - my-second-team\n      name: Web App\n      slug: web-app\n      platform: javascript\n      resolveAge: 720\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nimport using the organization and team slugs from the URL:\n\nhttps://sentry.io/settings/[org-slug]/projects/[project-slug]/\n\n```sh\n$ pulumi import sentry:index/sentryProject:SentryProject default org-slug/project-slug\n```\n\n",
      "properties": {
        "color": {
          "type": "string"
        },
        "digestsMaxDelay": {
          "type": "integer",
          "description": "The maximum amount of time (in seconds) to wait between scheduling digests for delivery.\n"
        },
        "digestsMinDelay": {
          "type": "integer",
          "description": "The minimum amount of time (in seconds) to wait between scheduling digests for delivery after the initial scheduling.\n"
        },
        "features": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "internalId": {
          "type": "string",
          "description": "The internal ID for this project.\n"
        },
        "isBookmarked": {
          "type": "boolean",
          "deprecationMessage": "is_bookmarked is no longer used"
        },
        "isPublic": {
          "type": "boolean"
        },
        "name": {
          "type": "string",
          "description": "The name for the project.\n"
        },
        "organization": {
          "type": "string",
          "description": "The slug of the organization the project belongs to.\n"
        },
        "platform": {
          "type": "string",
          "description": "The optional platform for this project.\n"
        },
        "projectId": {
          "type": "string",
          "description": "Use `internal_id` instead.\n",
          "deprecationMessage": "Use `internal_id` instead."
        },
        "resolveAge": {
          "type": "integer",
          "description": "Hours in which an issue is automatically resolve if not seen after this amount of time.\n"
        },
        "slug": {
          "type": "string",
          "description": "The optional slug for this project.\n"
        },
        "status": {
          "type": "string"
        },
        "team": {
          "type": "string",
          "description": "The slug of the team to create the project for. **Deprecated** Use `teams` instead.\n",
          "deprecationMessage": "Use `teams` instead."
        },
        "teams": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The slugs of the teams to create the project for.\n"
        }
      },
      "type": "object",
      "required": [
        "color",
        "digestsMaxDelay",
        "digestsMinDelay",
        "features",
        "internalId",
        "isBookmarked",
        "isPublic",
        "name",
        "organization",
        "platform",
        "projectId",
        "resolveAge",
        "slug",
        "status"
      ],
      "inputProperties": {
        "digestsMaxDelay": {
          "type": "integer",
          "description": "The maximum amount of time (in seconds) to wait between scheduling digests for delivery.\n"
        },
        "digestsMinDelay": {
          "type": "integer",
          "description": "The minimum amount of time (in seconds) to wait between scheduling digests for delivery after the initial scheduling.\n"
        },
        "name": {
          "type": "string",
          "description": "The name for the project.\n"
        },
        "organization": {
          "type": "string",
          "description": "The slug of the organization the project belongs to.\n"
        },
        "platform": {
          "type": "string",
          "description": "The optional platform for this project.\n"
        },
        "resolveAge": {
          "type": "integer",
          "description": "Hours in which an issue is automatically resolve if not seen after this amount of time.\n"
        },
        "slug": {
          "type": "string",
          "description": "The optional slug for this project.\n"
        },
        "team": {
          "type": "string",
          "description": "The slug of the team to create the project for. **Deprecated** Use `teams` instead.\n",
          "deprecationMessage": "Use `teams` instead."
        },
        "teams": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The slugs of the teams to create the project for.\n"
        }
      },
      "requiredInputs": [
        "organization"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering SentryProject resources.\n",
        "properties": {
          "color": {
            "type": "string"
          },
          "digestsMaxDelay": {
            "type": "integer",
            "description": "The maximum amount of time (in seconds) to wait between scheduling digests for delivery.\n"
          },
          "digestsMinDelay": {
            "type": "integer",
            "description": "The minimum amount of time (in seconds) to wait between scheduling digests for delivery after the initial scheduling.\n"
          },
          "features": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "internalId": {
            "type": "string",
            "description": "The internal ID for this project.\n"
          },
          "isBookmarked": {
            "type": "boolean",
            "deprecationMessage": "is_bookmarked is no longer used"
          },
          "isPublic": {
            "type": "boolean"
          },
          "name": {
            "type": "string",
            "description": "The name for the project.\n"
          },
          "organization": {
            "type": "string",
            "description": "The slug of the organization the project belongs to.\n"
          },
          "platform": {
            "type": "string",
            "description": "The optional platform for this project.\n"
          },
          "projectId": {
            "type": "string",
            "description": "Use `internal_id` instead.\n",
            "deprecationMessage": "Use `internal_id` instead."
          },
          "resolveAge": {
            "type": "integer",
            "description": "Hours in which an issue is automatically resolve if not seen after this amount of time.\n"
          },
          "slug": {
            "type": "string",
            "description": "The optional slug for this project.\n"
          },
          "status": {
            "type": "string"
          },
          "team": {
            "type": "string",
            "description": "The slug of the team to create the project for. **Deprecated** Use `teams` instead.\n",
            "deprecationMessage": "Use `teams` instead."
          },
          "teams": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "The slugs of the teams to create the project for.\n"
          }
        },
        "type": "object"
      }
    },
    "sentry:index/sentryRule:SentryRule": {
      "description": "> **WARNING:** This resource is deprecated and will be removed in the next major version. Use the `sentry.SentryIssueAlert` resource instead.\n",
      "properties": {
        "actionMatch": {
          "type": "string",
          "description": "Trigger actions when an event is captured by Sentry and `any` or `all` of the specified conditions happen.\n"
        },
        "actions": {
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "description": "List of actions.\n"
        },
        "conditions": {
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "description": "List of conditions.\n"
        },
        "environment": {
          "type": "string",
          "description": "Perform issue alert in a specific environment.\n"
        },
        "filterMatch": {
          "type": "string",
          "description": "Trigger actions if `all`, `any`, or `none` of the specified filters match.\n"
        },
        "filters": {
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "description": "List of filters.\n"
        },
        "frequency": {
          "type": "integer",
          "description": "Perform actions at most once every `X` minutes for this issue. Defaults to `30`.\n"
        },
        "internalId": {
          "type": "string",
          "description": "The internal ID for this issue alert.\n"
        },
        "name": {
          "type": "string",
          "description": "The issue alert name.\n"
        },
        "organization": {
          "type": "string",
          "description": "The slug of the organization the issue alert belongs to.\n"
        },
        "project": {
          "type": "string",
          "description": "The slug of the project to create the issue alert for.\n"
        },
        "projects": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Use `project` (singular) instead.\n",
          "deprecationMessage": "Use `project` (singular) instead."
        }
      },
      "type": "object",
      "required": [
        "actionMatch",
        "actions",
        "conditions",
        "environment",
        "filterMatch",
        "frequency",
        "internalId",
        "name",
        "organization",
        "project",
        "projects"
      ],
      "inputProperties": {
        "actionMatch": {
          "type": "string",
          "description": "Trigger actions when an event is captured by Sentry and `any` or `all` of the specified conditions happen.\n"
        },
        "actions": {
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "description": "List of actions.\n"
        },
        "conditions": {
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "description": "List of conditions.\n"
        },
        "environment": {
          "type": "string",
          "description": "Perform issue alert in a specific environment.\n"
        },
        "filterMatch": {
          "type": "string",
          "description": "Trigger actions if `all`, `any`, or `none` of the specified filters match.\n"
        },
        "filters": {
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "description": "List of filters.\n"
        },
        "frequency": {
          "type": "integer",
          "description": "Perform actions at most once every `X` minutes for this issue. Defaults to `30`.\n"
        },
        "name": {
          "type": "string",
          "description": "The issue alert name.\n"
        },
        "organization": {
          "type": "string",
          "description": "The slug of the organization the issue alert belongs to.\n"
        },
        "project": {
          "type": "string",
          "description": "The slug of the project to create the issue alert for.\n"
        }
      },
      "requiredInputs": [
        "actionMatch",
        "actions",
        "conditions",
        "filterMatch",
        "frequency",
        "organization",
        "project"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering SentryRule resources.\n",
        "properties": {
          "actionMatch": {
            "type": "string",
            "description": "Trigger actions when an event is captured by Sentry and `any` or `all` of the specified conditions happen.\n"
          },
          "actions": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              }
            },
            "description": "List of actions.\n"
          },
          "conditions": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              }
            },
            "description": "List of conditions.\n"
          },
          "environment": {
            "type": "string",
            "description": "Perform issue alert in a specific environment.\n"
          },
          "filterMatch": {
            "type": "string",
            "description": "Trigger actions if `all`, `any`, or `none` of the specified filters match.\n"
          },
          "filters": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              }
            },
            "description": "List of filters.\n"
          },
          "frequency": {
            "type": "integer",
            "description": "Perform actions at most once every `X` minutes for this issue. Defaults to `30`.\n"
          },
          "internalId": {
            "type": "string",
            "description": "The internal ID for this issue alert.\n"
          },
          "name": {
            "type": "string",
            "description": "The issue alert name.\n"
          },
          "organization": {
            "type": "string",
            "description": "The slug of the organization the issue alert belongs to.\n"
          },
          "project": {
            "type": "string",
            "description": "The slug of the project to create the issue alert for.\n"
          },
          "projects": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Use `project` (singular) instead.\n",
            "deprecationMessage": "Use `project` (singular) instead."
          }
        },
        "type": "object"
      }
    },
    "sentry:index/sentryTeam:SentryTeam": {
      "description": "Sentry Team resource.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as sentry from \"@pulumiverse/sentry\";\n\n// Create a team\nconst _default = new sentry.SentryTeam(\"default\", {\n    organization: \"my-organization\",\n    name: \"my-team\",\n    slug: \"my-team\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_sentry as sentry\n\n# Create a team\ndefault = sentry.SentryTeam(\"default\",\n    organization=\"my-organization\",\n    name=\"my-team\",\n    slug=\"my-team\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Sentry = Pulumiverse.Sentry;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create a team\n    var @default = new Sentry.SentryTeam(\"default\", new()\n    {\n        Organization = \"my-organization\",\n        Name = \"my-team\",\n        Slug = \"my-team\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-sentry/sdk/go/sentry\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Create a team\n\t\t_, err := sentry.NewSentryTeam(ctx, \"default\", &sentry.SentryTeamArgs{\n\t\t\tOrganization: pulumi.String(\"my-organization\"),\n\t\t\tName:         pulumi.String(\"my-team\"),\n\t\t\tSlug:         pulumi.String(\"my-team\"),\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.sentry.SentryTeam;\nimport com.pulumi.sentry.SentryTeamArgs;\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        // Create a team\n        var default_ = new SentryTeam(\"default\", SentryTeamArgs.builder()\n            .organization(\"my-organization\")\n            .name(\"my-team\")\n            .slug(\"my-team\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create a team\n  default:\n    type: sentry:SentryTeam\n    properties:\n      organization: my-organization\n      name: my-team\n      slug: my-team\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nimport using the organization and team slugs from the URL:\n\nhttps://sentry.io/settings/[org-slug]/teams/[team-slug]/members/\n\n```sh\n$ pulumi import sentry:index/sentryTeam:SentryTeam default org-slug/team-slug\n```\n\n",
      "properties": {
        "hasAccess": {
          "type": "boolean"
        },
        "internalId": {
          "type": "string",
          "description": "The internal ID for this team.\n"
        },
        "isMember": {
          "type": "boolean"
        },
        "isPending": {
          "type": "boolean"
        },
        "name": {
          "type": "string",
          "description": "The name of the team.\n"
        },
        "organization": {
          "type": "string",
          "description": "The slug of the organization the team should be created for.\n"
        },
        "slug": {
          "type": "string",
          "description": "The optional slug for this team.\n"
        },
        "teamId": {
          "type": "string",
          "description": "Use `internal_id` instead.\n",
          "deprecationMessage": "Use `internal_id` instead."
        }
      },
      "type": "object",
      "required": [
        "hasAccess",
        "internalId",
        "isMember",
        "isPending",
        "name",
        "organization",
        "slug",
        "teamId"
      ],
      "inputProperties": {
        "name": {
          "type": "string",
          "description": "The name of the team.\n"
        },
        "organization": {
          "type": "string",
          "description": "The slug of the organization the team should be created for.\n"
        },
        "slug": {
          "type": "string",
          "description": "The optional slug for this team.\n"
        }
      },
      "requiredInputs": [
        "organization"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering SentryTeam resources.\n",
        "properties": {
          "hasAccess": {
            "type": "boolean"
          },
          "internalId": {
            "type": "string",
            "description": "The internal ID for this team.\n"
          },
          "isMember": {
            "type": "boolean"
          },
          "isPending": {
            "type": "boolean"
          },
          "name": {
            "type": "string",
            "description": "The name of the team.\n"
          },
          "organization": {
            "type": "string",
            "description": "The slug of the organization the team should be created for.\n"
          },
          "slug": {
            "type": "string",
            "description": "The optional slug for this team.\n"
          },
          "teamId": {
            "type": "string",
            "description": "Use `internal_id` instead.\n",
            "deprecationMessage": "Use `internal_id` instead."
          }
        },
        "type": "object"
      }
    }
  },
  "functions": {
    "sentry:index/getSentryDashboard:getSentryDashboard": {
      "description": "## Example Usage\n\n",
      "inputs": {
        "description": "A collection of arguments for invoking getSentryDashboard.\n",
        "properties": {
          "internalId": {
            "type": "string",
            "description": "The internal ID for this dashboard.\n"
          },
          "organization": {
            "type": "string",
            "description": "The slug of the organization the dashboard belongs to.\n"
          }
        },
        "type": "object",
        "required": [
          "internalId",
          "organization"
        ]
      },
      "outputs": {
        "description": "A collection of values returned by getSentryDashboard.\n",
        "properties": {
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "internalId": {
            "description": "The internal ID for this dashboard.\n",
            "type": "string"
          },
          "organization": {
            "description": "The slug of the organization the dashboard belongs to.\n",
            "type": "string"
          },
          "title": {
            "description": "Dashboard title.\n",
            "type": "string"
          },
          "widgets": {
            "description": "Dashboard widgets.\n",
            "items": {
              "$ref": "#/types/sentry:index%2FgetSentryDashboardWidget:getSentryDashboardWidget"
            },
            "type": "array"
          }
        },
        "required": [
          "id",
          "internalId",
          "organization",
          "title",
          "widgets"
        ],
        "type": "object"
      }
    },
    "sentry:index/getSentryIssueAlert:getSentryIssueAlert": {
      "description": "Sentry Issue Alert data source. As the object structure of `conditions`, `filters`, and `actions` are undocumented, a tip is to set up an Issue Alert via the Web UI, and use this data source to copy its object structure to your resources.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as sentry from \"@pulumi/sentry\";\nimport * as sentry from \"@pulumiverse/sentry\";\n\n// Retrieve an Issue Alert\n// URL format: https://sentry.io/organizations/[organization]/alerts/rules/[project]/[internal_id]/details/\nconst original = sentry.getSentryIssueAlert({\n    organization: \"my-organization\",\n    project: \"my-project\",\n    internalId: \"42\",\n});\n// Create a copy of an Issue Alert\nconst copy = new sentry.SentryIssueAlert(\"copy\", {\n    organization: original.then(original =\u003e original.organization),\n    project: original.then(original =\u003e original.project),\n    name: original.then(original =\u003e `${original.name}-copy`),\n    actionMatch: original.then(original =\u003e original.actionMatch),\n    filterMatch: original.then(original =\u003e original.filterMatch),\n    frequency: original.then(original =\u003e original.frequency),\n    conditions: original.then(original =\u003e original.conditions),\n    filters: original.then(original =\u003e original.filters),\n    actions: original.then(original =\u003e original.actions),\n});\n```\n```python\nimport pulumi\nimport pulumi_sentry as sentry\nimport pulumiverse_sentry as sentry\n\n# Retrieve an Issue Alert\n# URL format: https://sentry.io/organizations/[organization]/alerts/rules/[project]/[internal_id]/details/\noriginal = sentry.get_sentry_issue_alert(organization=\"my-organization\",\n    project=\"my-project\",\n    internal_id=\"42\")\n# Create a copy of an Issue Alert\ncopy = sentry.SentryIssueAlert(\"copy\",\n    organization=original.organization,\n    project=original.project,\n    name=f\"{original.name}-copy\",\n    action_match=original.action_match,\n    filter_match=original.filter_match,\n    frequency=original.frequency,\n    conditions=original.conditions,\n    filters=original.filters,\n    actions=original.actions)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Sentry = Pulumi.Sentry;\nusing Sentry = Pulumiverse.Sentry;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Retrieve an Issue Alert\n    // URL format: https://sentry.io/organizations/[organization]/alerts/rules/[project]/[internal_id]/details/\n    var original = Sentry.GetSentryIssueAlert.Invoke(new()\n    {\n        Organization = \"my-organization\",\n        Project = \"my-project\",\n        InternalId = \"42\",\n    });\n\n    // Create a copy of an Issue Alert\n    var copy = new Sentry.SentryIssueAlert(\"copy\", new()\n    {\n        Organization = original.Apply(getSentryIssueAlertResult =\u003e getSentryIssueAlertResult.Organization),\n        Project = original.Apply(getSentryIssueAlertResult =\u003e getSentryIssueAlertResult.Project),\n        Name = $\"{original.Apply(getSentryIssueAlertResult =\u003e getSentryIssueAlertResult.Name)}-copy\",\n        ActionMatch = original.Apply(getSentryIssueAlertResult =\u003e getSentryIssueAlertResult.ActionMatch),\n        FilterMatch = original.Apply(getSentryIssueAlertResult =\u003e getSentryIssueAlertResult.FilterMatch),\n        Frequency = original.Apply(getSentryIssueAlertResult =\u003e getSentryIssueAlertResult.Frequency),\n        Conditions = original.Apply(getSentryIssueAlertResult =\u003e getSentryIssueAlertResult.Conditions),\n        Filters = original.Apply(getSentryIssueAlertResult =\u003e getSentryIssueAlertResult.Filters),\n        Actions = original.Apply(getSentryIssueAlertResult =\u003e getSentryIssueAlertResult.Actions),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-sentry/sdk/go/sentry\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Retrieve an Issue Alert\n\t\t// URL format: https://sentry.io/organizations/[organization]/alerts/rules/[project]/[internal_id]/details/\n\t\toriginal, err := sentry.LookupSentryIssueAlert(ctx, \u0026sentry.LookupSentryIssueAlertArgs{\n\t\t\tOrganization: \"my-organization\",\n\t\t\tProject:      \"my-project\",\n\t\t\tInternalId:   \"42\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Create a copy of an Issue Alert\n\t\t_, err = sentry.NewSentryIssueAlert(ctx, \"copy\", \u0026sentry.SentryIssueAlertArgs{\n\t\t\tOrganization: pulumi.String(original.Organization),\n\t\t\tProject:      pulumi.String(original.Project),\n\t\t\tName:         pulumi.Sprintf(\"%v-copy\", original.Name),\n\t\t\tActionMatch:  pulumi.String(original.ActionMatch),\n\t\t\tFilterMatch:  pulumi.String(original.FilterMatch),\n\t\t\tFrequency:    pulumi.Int(original.Frequency),\n\t\t\tConditions:   interface{}(original.Conditions),\n\t\t\tFilters:      interface{}(original.Filters),\n\t\t\tActions:      interface{}(original.Actions),\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.sentry.SentryFunctions;\nimport com.pulumi.sentry.inputs.GetSentryIssueAlertArgs;\nimport com.pulumi.sentry.SentryIssueAlert;\nimport com.pulumi.sentry.SentryIssueAlertArgs;\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        // Retrieve an Issue Alert\n        // URL format: https://sentry.io/organizations/[organization]/alerts/rules/[project]/[internal_id]/details/\n        final var original = SentryFunctions.getSentryIssueAlert(GetSentryIssueAlertArgs.builder()\n            .organization(\"my-organization\")\n            .project(\"my-project\")\n            .internalId(\"42\")\n            .build());\n\n        // Create a copy of an Issue Alert\n        var copy = new SentryIssueAlert(\"copy\", SentryIssueAlertArgs.builder()\n            .organization(original.applyValue(getSentryIssueAlertResult -\u003e getSentryIssueAlertResult.organization()))\n            .project(original.applyValue(getSentryIssueAlertResult -\u003e getSentryIssueAlertResult.project()))\n            .name(String.format(\"%s-copy\", original.applyValue(getSentryIssueAlertResult -\u003e getSentryIssueAlertResult.name())))\n            .actionMatch(original.applyValue(getSentryIssueAlertResult -\u003e getSentryIssueAlertResult.actionMatch()))\n            .filterMatch(original.applyValue(getSentryIssueAlertResult -\u003e getSentryIssueAlertResult.filterMatch()))\n            .frequency(original.applyValue(getSentryIssueAlertResult -\u003e getSentryIssueAlertResult.frequency()))\n            .conditions(original.applyValue(getSentryIssueAlertResult -\u003e getSentryIssueAlertResult.conditions()))\n            .filters(original.applyValue(getSentryIssueAlertResult -\u003e getSentryIssueAlertResult.filters()))\n            .actions(original.applyValue(getSentryIssueAlertResult -\u003e getSentryIssueAlertResult.actions()))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create a copy of an Issue Alert\n  copy:\n    type: sentry:SentryIssueAlert\n    properties:\n      organization: ${original.organization}\n      project: ${original.project}\n      name: ${original.name}-copy\n      actionMatch: ${original.actionMatch}\n      filterMatch: ${original.filterMatch}\n      frequency: ${original.frequency}\n      conditions: ${original.conditions}\n      filters: ${original.filters}\n      actions: ${original.actions}\nvariables:\n  # Retrieve an Issue Alert\n  # URL format: https://sentry.io/organizations/[organization]/alerts/rules/[project]/[internal_id]/details/\n  original:\n    fn::invoke:\n      Function: sentry:getSentryIssueAlert\n      Arguments:\n        organization: my-organization\n        project: my-project\n        internalId: '42'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getSentryIssueAlert.\n",
        "properties": {
          "internalId": {
            "type": "string",
            "description": "The internal ID for this issue alert.\n"
          },
          "organization": {
            "type": "string",
            "description": "The slug of the organization the issue alert belongs to.\n"
          },
          "project": {
            "type": "string",
            "description": "The slug of the project the issue alert belongs to.\n"
          }
        },
        "type": "object",
        "required": [
          "internalId",
          "organization",
          "project"
        ]
      },
      "outputs": {
        "description": "A collection of values returned by getSentryIssueAlert.\n",
        "properties": {
          "actionMatch": {
            "description": "Trigger actions when an event is captured by Sentry and `any` or `all` of the specified conditions happen.\n",
            "type": "string"
          },
          "actions": {
            "description": "List of actions.\n",
            "items": {
              "additionalProperties": {
                "type": "string"
              },
              "type": "object"
            },
            "type": "array"
          },
          "conditions": {
            "description": "List of conditions.\n",
            "items": {
              "additionalProperties": {
                "type": "string"
              },
              "type": "object"
            },
            "type": "array"
          },
          "environment": {
            "description": "Perform issue alert in a specific environment.\n",
            "type": "string"
          },
          "filterMatch": {
            "description": "Trigger actions if `all`, `any`, or `none` of the specified filters match.\n",
            "type": "string"
          },
          "filters": {
            "description": "List of filters.\n",
            "items": {
              "additionalProperties": {
                "type": "string"
              },
              "type": "object"
            },
            "type": "array"
          },
          "frequency": {
            "description": "Perform actions at most once every `X` minutes for this issue. Defaults to `30`.\n",
            "type": "integer"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "internalId": {
            "description": "The internal ID for this issue alert.\n",
            "type": "string"
          },
          "name": {
            "description": "The issue alert name.\n",
            "type": "string"
          },
          "organization": {
            "description": "The slug of the organization the issue alert belongs to.\n",
            "type": "string"
          },
          "project": {
            "description": "The slug of the project the issue alert belongs to.\n",
            "type": "string"
          }
        },
        "required": [
          "actionMatch",
          "actions",
          "conditions",
          "environment",
          "filterMatch",
          "filters",
          "frequency",
          "id",
          "internalId",
          "name",
          "organization",
          "project"
        ],
        "type": "object"
      }
    },
    "sentry:index/getSentryKey:getSentryKey": {
      "description": "Sentry Key data source.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as sentry from \"@pulumi/sentry\";\n\n// Retrieve a project key by name\nconst default = sentry.getSentryKey({\n    organization: \"my-organization\",\n    project: \"web-app\",\n    name: \"Default\",\n});\n// Retrieve the first key of a project\nconst first = sentry.getSentryKey({\n    organization: \"my-organization\",\n    project: \"web-app\",\n    first: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_sentry as sentry\n\n# Retrieve a project key by name\ndefault = sentry.get_sentry_key(organization=\"my-organization\",\n    project=\"web-app\",\n    name=\"Default\")\n# Retrieve the first key of a project\nfirst = sentry.get_sentry_key(organization=\"my-organization\",\n    project=\"web-app\",\n    first=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Sentry = Pulumi.Sentry;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Retrieve a project key by name\n    var @default = Sentry.GetSentryKey.Invoke(new()\n    {\n        Organization = \"my-organization\",\n        Project = \"web-app\",\n        Name = \"Default\",\n    });\n\n    // Retrieve the first key of a project\n    var first = Sentry.GetSentryKey.Invoke(new()\n    {\n        Organization = \"my-organization\",\n        Project = \"web-app\",\n        First = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-sentry/sdk/go/sentry\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Retrieve a project key by name\n\t\t_, err := sentry.LookupSentryKey(ctx, \u0026sentry.LookupSentryKeyArgs{\n\t\t\tOrganization: \"my-organization\",\n\t\t\tProject:      \"web-app\",\n\t\t\tName:         pulumi.StringRef(\"Default\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Retrieve the first key of a project\n\t\t_, err = sentry.LookupSentryKey(ctx, \u0026sentry.LookupSentryKeyArgs{\n\t\t\tOrganization: \"my-organization\",\n\t\t\tProject:      \"web-app\",\n\t\t\tFirst:        pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.sentry.SentryFunctions;\nimport com.pulumi.sentry.inputs.GetSentryKeyArgs;\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        // Retrieve a project key by name\n        final var default = SentryFunctions.getSentryKey(GetSentryKeyArgs.builder()\n            .organization(\"my-organization\")\n            .project(\"web-app\")\n            .name(\"Default\")\n            .build());\n\n        // Retrieve the first key of a project\n        final var first = SentryFunctions.getSentryKey(GetSentryKeyArgs.builder()\n            .organization(\"my-organization\")\n            .project(\"web-app\")\n            .first(true)\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # Retrieve a project key by name\n  default:\n    fn::invoke:\n      Function: sentry:getSentryKey\n      Arguments:\n        organization: my-organization\n        project: web-app\n        name: Default\n  # Retrieve the first key of a project\n  first:\n    fn::invoke:\n      Function: sentry:getSentryKey\n      Arguments:\n        organization: my-organization\n        project: web-app\n        first: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getSentryKey.\n",
        "properties": {
          "first": {
            "type": "boolean",
            "description": "Boolean flag indicating that we want the first key of the returned keys.\n",
            "willReplaceOnChanges": true
          },
          "name": {
            "type": "string",
            "description": "The name of the key to retrieve.\n",
            "willReplaceOnChanges": true
          },
          "organization": {
            "type": "string",
            "description": "The slug of the organization the key should be created for.\n",
            "willReplaceOnChanges": true
          },
          "project": {
            "type": "string",
            "description": "The slug of the project the key should be created for.\n",
            "willReplaceOnChanges": true
          }
        },
        "type": "object",
        "required": [
          "organization",
          "project"
        ]
      },
      "outputs": {
        "description": "A collection of values returned by getSentryKey.\n",
        "properties": {
          "dsnCsp": {
            "description": "DSN for the Content Security Policy (CSP) for the key.\n",
            "type": "string"
          },
          "dsnPublic": {
            "description": "DSN for the key.\n",
            "type": "string"
          },
          "dsnSecret": {
            "deprecationMessage": "DSN (Deprecated) for the key.",
            "secret": true,
            "type": "string"
          },
          "first": {
            "description": "Boolean flag indicating that we want the first key of the returned keys.\n",
            "type": "boolean"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "isActive": {
            "description": "Flag indicating the key is active.\n",
            "type": "boolean"
          },
          "name": {
            "description": "The name of the key to retrieve.\n",
            "type": "string"
          },
          "organization": {
            "description": "The slug of the organization the key should be created for.\n",
            "type": "string"
          },
          "project": {
            "description": "The slug of the project the key should be created for.\n",
            "type": "string"
          },
          "projectId": {
            "description": "The ID of the project that the key belongs to.\n",
            "type": "integer"
          },
          "public": {
            "description": "Public key portion of the client key.\n",
            "type": "string"
          },
          "rateLimitCount": {
            "description": "Number of events that can be reported within the rate limit window.\n",
            "type": "integer"
          },
          "rateLimitWindow": {
            "description": "Length of time that will be considered when checking the rate limit.\n",
            "type": "integer"
          },
          "secret": {
            "description": "Secret key portion of the client key.\n",
            "secret": true,
            "type": "string"
          }
        },
        "required": [
          "dsnCsp",
          "dsnPublic",
          "dsnSecret",
          "id",
          "isActive",
          "organization",
          "project",
          "projectId",
          "public",
          "rateLimitCount",
          "rateLimitWindow",
          "secret"
        ],
        "type": "object"
      }
    },
    "sentry:index/getSentryMetricAlert:getSentryMetricAlert": {
      "description": "## Example Usage\n\n",
      "inputs": {
        "description": "A collection of arguments for invoking getSentryMetricAlert.\n",
        "properties": {
          "internalId": {
            "type": "string",
            "description": "The internal ID for this metric alert.\n"
          },
          "organization": {
            "type": "string",
            "description": "The slug of the organization the metric alert belongs to.\n"
          },
          "project": {
            "type": "string",
            "description": "The slug of the project the metric alert belongs to.\n"
          }
        },
        "type": "object",
        "required": [
          "internalId",
          "organization",
          "project"
        ]
      },
      "outputs": {
        "description": "A collection of values returned by getSentryMetricAlert.\n",
        "properties": {
          "aggregate": {
            "type": "string"
          },
          "dataset": {
            "type": "string"
          },
          "environment": {
            "type": "string"
          },
          "eventTypes": {
            "description": "The events type of dataset.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "internalId": {
            "description": "The internal ID for this metric alert.\n",
            "type": "string"
          },
          "name": {
            "description": "The metric alert name.\n",
            "type": "string"
          },
          "organization": {
            "description": "The slug of the organization the metric alert belongs to.\n",
            "type": "string"
          },
          "owner": {
            "type": "string"
          },
          "project": {
            "description": "The slug of the project the metric alert belongs to.\n",
            "type": "string"
          },
          "query": {
            "type": "string"
          },
          "resolveThreshold": {
            "type": "number"
          },
          "thresholdType": {
            "type": "integer"
          },
          "timeWindow": {
            "type": "number"
          },
          "triggers": {
            "items": {
              "$ref": "#/types/sentry:index%2FgetSentryMetricAlertTrigger:getSentryMetricAlertTrigger"
            },
            "type": "array"
          }
        },
        "required": [
          "aggregate",
          "dataset",
          "environment",
          "eventTypes",
          "id",
          "internalId",
          "name",
          "organization",
          "owner",
          "project",
          "query",
          "resolveThreshold",
          "thresholdType",
          "timeWindow",
          "triggers"
        ],
        "type": "object"
      }
    },
    "sentry:index/getSentryOrganization:getSentryOrganization": {
      "description": "Sentry Organization data source.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as sentry from \"@pulumi/sentry\";\n\n// Retrieve an organization\nconst org = sentry.getSentryOrganization({\n    slug: \"my-organization\",\n});\n```\n```python\nimport pulumi\nimport pulumi_sentry as sentry\n\n# Retrieve an organization\norg = sentry.get_sentry_organization(slug=\"my-organization\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Sentry = Pulumi.Sentry;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Retrieve an organization\n    var org = Sentry.GetSentryOrganization.Invoke(new()\n    {\n        Slug = \"my-organization\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-sentry/sdk/go/sentry\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Retrieve an organization\n\t\t_, err := sentry.LookupSentryOrganization(ctx, \u0026sentry.LookupSentryOrganizationArgs{\n\t\t\tSlug: \"my-organization\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.sentry.SentryFunctions;\nimport com.pulumi.sentry.inputs.GetSentryOrganizationArgs;\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        // Retrieve an organization\n        final var org = SentryFunctions.getSentryOrganization(GetSentryOrganizationArgs.builder()\n            .slug(\"my-organization\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # Retrieve an organization\n  org:\n    fn::invoke:\n      Function: sentry:getSentryOrganization\n      Arguments:\n        slug: my-organization\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getSentryOrganization.\n",
        "properties": {
          "slug": {
            "type": "string",
            "description": "The unique URL slug for this organization.\n"
          }
        },
        "type": "object",
        "required": [
          "slug"
        ]
      },
      "outputs": {
        "description": "A collection of values returned by getSentryOrganization.\n",
        "properties": {
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "internalId": {
            "description": "The internal ID for this organization.\n",
            "type": "string"
          },
          "name": {
            "description": "The human readable name for this organization.\n",
            "type": "string"
          },
          "slug": {
            "description": "The unique URL slug for this organization.\n",
            "type": "string"
          }
        },
        "required": [
          "id",
          "internalId",
          "name",
          "slug"
        ],
        "type": "object"
      }
    },
    "sentry:index/getSentryOrganizationIntegration:getSentryOrganizationIntegration": {
      "description": "Sentry Organization Integration data source.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as sentry from \"@pulumi/sentry\";\n\n// Retrieve a Github organization integration\nconst github = sentry.getSentryOrganizationIntegration({\n    organization: \"my-organization\",\n    providerKey: \"github\",\n    name: \"my-github-organization\",\n});\n// Retrieve a Slack integration\nconst slack = sentry.getSentryOrganizationIntegration({\n    organization: \"my-organization\",\n    providerKey: \"slack\",\n    name: \"Slack Workspace\",\n});\n```\n```python\nimport pulumi\nimport pulumi_sentry as sentry\n\n# Retrieve a Github organization integration\ngithub = sentry.get_sentry_organization_integration(organization=\"my-organization\",\n    provider_key=\"github\",\n    name=\"my-github-organization\")\n# Retrieve a Slack integration\nslack = sentry.get_sentry_organization_integration(organization=\"my-organization\",\n    provider_key=\"slack\",\n    name=\"Slack Workspace\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Sentry = Pulumi.Sentry;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Retrieve a Github organization integration\n    var github = Sentry.GetSentryOrganizationIntegration.Invoke(new()\n    {\n        Organization = \"my-organization\",\n        ProviderKey = \"github\",\n        Name = \"my-github-organization\",\n    });\n\n    // Retrieve a Slack integration\n    var slack = Sentry.GetSentryOrganizationIntegration.Invoke(new()\n    {\n        Organization = \"my-organization\",\n        ProviderKey = \"slack\",\n        Name = \"Slack Workspace\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-sentry/sdk/go/sentry\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Retrieve a Github organization integration\n\t\t_, err := sentry.GetSentryOrganizationIntegration(ctx, \u0026sentry.GetSentryOrganizationIntegrationArgs{\n\t\t\tOrganization: \"my-organization\",\n\t\t\tProviderKey:  \"github\",\n\t\t\tName:         \"my-github-organization\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Retrieve a Slack integration\n\t\t_, err = sentry.GetSentryOrganizationIntegration(ctx, \u0026sentry.GetSentryOrganizationIntegrationArgs{\n\t\t\tOrganization: \"my-organization\",\n\t\t\tProviderKey:  \"slack\",\n\t\t\tName:         \"Slack Workspace\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.sentry.SentryFunctions;\nimport com.pulumi.sentry.inputs.GetSentryOrganizationIntegrationArgs;\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        // Retrieve a Github organization integration\n        final var github = SentryFunctions.getSentryOrganizationIntegration(GetSentryOrganizationIntegrationArgs.builder()\n            .organization(\"my-organization\")\n            .providerKey(\"github\")\n            .name(\"my-github-organization\")\n            .build());\n\n        // Retrieve a Slack integration\n        final var slack = SentryFunctions.getSentryOrganizationIntegration(GetSentryOrganizationIntegrationArgs.builder()\n            .organization(\"my-organization\")\n            .providerKey(\"slack\")\n            .name(\"Slack Workspace\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # Retrieve a Github organization integration\n  github:\n    fn::invoke:\n      Function: sentry:getSentryOrganizationIntegration\n      Arguments:\n        organization: my-organization\n        providerKey: github\n        name: my-github-organization\n  # Retrieve a Slack integration\n  slack:\n    fn::invoke:\n      Function: sentry:getSentryOrganizationIntegration\n      Arguments:\n        organization: my-organization\n        providerKey: slack\n        name: Slack Workspace\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getSentryOrganizationIntegration.\n",
        "properties": {
          "name": {
            "type": "string",
            "description": "The name of the organization integration.\n"
          },
          "organization": {
            "type": "string",
            "description": "The slug of the organization the integration belongs to.\n"
          },
          "providerKey": {
            "type": "string",
            "description": "The key of the organization integration provider.\n"
          }
        },
        "type": "object",
        "required": [
          "name",
          "organization",
          "providerKey"
        ]
      },
      "outputs": {
        "description": "A collection of values returned by getSentryOrganizationIntegration.\n",
        "properties": {
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "internalId": {
            "description": "The internal ID for this organization integration.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the organization integration.\n",
            "type": "string"
          },
          "organization": {
            "description": "The slug of the organization the integration belongs to.\n",
            "type": "string"
          },
          "providerKey": {
            "description": "The key of the organization integration provider.\n",
            "type": "string"
          }
        },
        "required": [
          "id",
          "internalId",
          "name",
          "organization",
          "providerKey"
        ],
        "type": "object"
      }
    },
    "sentry:index/getSentryTeam:getSentryTeam": {
      "description": "Sentry Team data source.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as sentry from \"@pulumi/sentry\";\n\n// Retrieve a team\nconst default = sentry.getSentryTeam({\n    organization: \"my-organization\",\n    slug: \"my-team\",\n});\n```\n```python\nimport pulumi\nimport pulumi_sentry as sentry\n\n# Retrieve a team\ndefault = sentry.get_sentry_team(organization=\"my-organization\",\n    slug=\"my-team\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Sentry = Pulumi.Sentry;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Retrieve a team\n    var @default = Sentry.GetSentryTeam.Invoke(new()\n    {\n        Organization = \"my-organization\",\n        Slug = \"my-team\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-sentry/sdk/go/sentry\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Retrieve a team\n\t\t_, err := sentry.LookupSentryTeam(ctx, \u0026sentry.LookupSentryTeamArgs{\n\t\t\tOrganization: \"my-organization\",\n\t\t\tSlug:         \"my-team\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.sentry.SentryFunctions;\nimport com.pulumi.sentry.inputs.GetSentryTeamArgs;\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        // Retrieve a team\n        final var default = SentryFunctions.getSentryTeam(GetSentryTeamArgs.builder()\n            .organization(\"my-organization\")\n            .slug(\"my-team\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # Retrieve a team\n  default:\n    fn::invoke:\n      Function: sentry:getSentryTeam\n      Arguments:\n        organization: my-organization\n        slug: my-team\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getSentryTeam.\n",
        "properties": {
          "organization": {
            "type": "string",
            "description": "The slug of the organization the team should be created for.\n"
          },
          "slug": {
            "type": "string",
            "description": "The unique URL slug for this team.\n"
          }
        },
        "type": "object",
        "required": [
          "organization",
          "slug"
        ]
      },
      "outputs": {
        "description": "A collection of values returned by getSentryTeam.\n",
        "properties": {
          "hasAccess": {
            "type": "boolean"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "internalId": {
            "description": "The internal ID for this team.\n",
            "type": "string"
          },
          "isMember": {
            "type": "boolean"
          },
          "isPending": {
            "type": "boolean"
          },
          "name": {
            "description": "The human readable name for this organization.\n",
            "type": "string"
          },
          "organization": {
            "description": "The slug of the organization the team should be created for.\n",
            "type": "string"
          },
          "slug": {
            "description": "The unique URL slug for this team.\n",
            "type": "string"
          }
        },
        "required": [
          "hasAccess",
          "id",
          "internalId",
          "isMember",
          "isPending",
          "name",
          "organization",
          "slug"
        ],
        "type": "object"
      }
    }
  }
}
