diff --git a/provider/cmd/pulumi-resource-grafana/bridge-metadata.json b/provider/cmd/pulumi-resource-grafana/bridge-metadata.json index 27a0f5f9..c8f9f099 100644 --- a/provider/cmd/pulumi-resource-grafana/bridge-metadata.json +++ b/provider/cmd/pulumi-resource-grafana/bridge-metadata.json @@ -674,7 +674,14 @@ } }, "grafana_oncall_user_notification_rule": { - "current": "grafana:index/oncallUserNotificationRule:OncallUserNotificationRule" + "current": "grafana:onCall/userNotificationRule:UserNotificationRule", + "past": [ + { + "name": "grafana:index/oncallUserNotificationRule:OncallUserNotificationRule", + "inCodegen": true, + "majorVersion": 0 + } + ] }, "grafana_organization": { "current": "grafana:oss/organization:Organization", @@ -1847,6 +1854,11 @@ "grafana:index/oncallSchedule:OncallSchedule" ] }, + "grafana_oncall_user_notification_rule": { + "aliases": [ + "grafana:index/oncallUserNotificationRule:OncallUserNotificationRule" + ] + }, "grafana_organization": { "aliases": [ "grafana:index/organization:Organization" @@ -2182,6 +2194,7 @@ "grafana:onCall/outgoingWebhook:OutgoingWebhook": 0, "grafana:onCall/route:Route": 0, "grafana:onCall/schedule:Schedule": 0, + "grafana:onCall/userNotificationRule:UserNotificationRule": 1, "grafana:oss/annotation:Annotation": 0, "grafana:oss/dashboard:Dashboard": 0, "grafana:oss/dashboardPermission:DashboardPermission": 0, diff --git a/provider/cmd/pulumi-resource-grafana/schema.json b/provider/cmd/pulumi-resource-grafana/schema.json index 888d4a92..1a3d5529 100644 --- a/provider/cmd/pulumi-resource-grafana/schema.json +++ b/provider/cmd/pulumi-resource-grafana/schema.json @@ -11760,11 +11760,6 @@ }, "type": "object" }, - "aliases": [ - { - "type": "grafana:index/cloudAccessPolicy:CloudAccessPolicy" - } - ], "deprecationMessage": "grafana.index/cloudaccesspolicy.CloudAccessPolicy has been deprecated in favor of grafana.cloud/accesspolicy.AccessPolicy" }, "grafana:index/cloudAccessPolicyToken:CloudAccessPolicyToken": { @@ -11883,11 +11878,6 @@ }, "type": "object" }, - "aliases": [ - { - "type": "grafana:index/cloudAccessPolicyToken:CloudAccessPolicyToken" - } - ], "deprecationMessage": "grafana.index/cloudaccesspolicytoken.CloudAccessPolicyToken has been deprecated in favor of grafana.cloud/accesspolicytoken.AccessPolicyToken" }, "grafana:index/cloudOrgMember:CloudOrgMember": { @@ -11961,11 +11951,6 @@ }, "type": "object" }, - "aliases": [ - { - "type": "grafana:index/cloudOrgMember:CloudOrgMember" - } - ], "deprecationMessage": "grafana.index/cloudorgmember.CloudOrgMember has been deprecated in favor of grafana.cloud/orgmember.OrgMember" }, "grafana:index/cloudPluginInstallation:CloudPluginInstallation": { @@ -12032,11 +12017,6 @@ }, "type": "object" }, - "aliases": [ - { - "type": "grafana:index/cloudPluginInstallation:CloudPluginInstallation" - } - ], "deprecationMessage": "grafana.index/cloudplugininstallation.CloudPluginInstallation has been deprecated in favor of grafana.cloud/plugininstallation.PluginInstallation" }, "grafana:index/cloudStack:CloudStack": { @@ -12423,11 +12403,6 @@ }, "type": "object" }, - "aliases": [ - { - "type": "grafana:index/cloudStack:CloudStack" - } - ], "deprecationMessage": "grafana.index/cloudstack.CloudStack has been deprecated in favor of grafana.cloud/stack.Stack" }, "grafana:index/cloudStackServiceAccount:CloudStackServiceAccount": { @@ -12504,11 +12479,6 @@ }, "type": "object" }, - "aliases": [ - { - "type": "grafana:index/cloudStackServiceAccount:CloudStackServiceAccount" - } - ], "deprecationMessage": "grafana.index/cloudstackserviceaccount.CloudStackServiceAccount has been deprecated in favor of grafana.cloud/stackserviceaccount.StackServiceAccount" }, "grafana:index/cloudStackServiceAccountToken:CloudStackServiceAccountToken": { @@ -12599,11 +12569,6 @@ }, "type": "object" }, - "aliases": [ - { - "type": "grafana:index/cloudStackServiceAccountToken:CloudStackServiceAccountToken" - } - ], "deprecationMessage": "grafana.index/cloudstackserviceaccounttoken.CloudStackServiceAccountToken has been deprecated in favor of grafana.cloud/stackserviceaccounttoken.StackServiceAccountToken" }, "grafana:index/contactPoint:ContactPoint": { @@ -14542,11 +14507,6 @@ }, "type": "object" }, - "aliases": [ - { - "type": "grafana:index/machineLearningHoliday:MachineLearningHoliday" - } - ], "deprecationMessage": "grafana.index/machinelearningholiday.MachineLearningHoliday has been deprecated in favor of grafana.machinelearning/holiday.Holiday" }, "grafana:index/machineLearningJob:MachineLearningJob": { @@ -14742,11 +14702,6 @@ }, "type": "object" }, - "aliases": [ - { - "type": "grafana:index/machineLearningJob:MachineLearningJob" - } - ], "deprecationMessage": "grafana.index/machinelearningjob.MachineLearningJob has been deprecated in favor of grafana.machinelearning/job.Job" }, "grafana:index/machineLearningOutlierDetector:MachineLearningOutlierDetector": { @@ -14881,11 +14836,6 @@ }, "type": "object" }, - "aliases": [ - { - "type": "grafana:index/machineLearningOutlierDetector:MachineLearningOutlierDetector" - } - ], "deprecationMessage": "grafana.index/machinelearningoutlierdetector.MachineLearningOutlierDetector has been deprecated in favor of grafana.machinelearning/outlierdetector.OutlierDetector" }, "grafana:index/messageTemplate:MessageTemplate": { @@ -15385,11 +15335,6 @@ }, "type": "object" }, - "aliases": [ - { - "type": "grafana:index/oncallEscalation:OncallEscalation" - } - ], "deprecationMessage": "grafana.index/oncallescalation.OncallEscalation has been deprecated in favor of grafana.oncall/escalation.Escalation" }, "grafana:index/oncallEscalationChain:OncallEscalationChain": { @@ -15431,11 +15376,6 @@ }, "type": "object" }, - "aliases": [ - { - "type": "grafana:index/oncallEscalationChain:OncallEscalationChain" - } - ], "deprecationMessage": "grafana.index/oncallescalationchain.OncallEscalationChain has been deprecated in favor of grafana.oncall/escalationchain.EscalationChain" }, "grafana:index/oncallIntegration:OncallIntegration": { @@ -15530,11 +15470,6 @@ }, "type": "object" }, - "aliases": [ - { - "type": "grafana:index/oncallIntegration:OncallIntegration" - } - ], "deprecationMessage": "grafana.index/oncallintegration.OncallIntegration has been deprecated in favor of grafana.oncall/integration.Integration" }, "grafana:index/oncallOnCallShift:OncallOnCallShift": { @@ -15806,11 +15741,6 @@ }, "type": "object" }, - "aliases": [ - { - "type": "grafana:index/oncallOnCallShift:OncallOnCallShift" - } - ], "deprecationMessage": "grafana.index/oncalloncallshift.OncallOnCallShift has been deprecated in favor of grafana.oncall/oncallshift.OnCallShift" }, "grafana:index/oncallOutgoingWebhook:OncallOutgoingWebhook": { @@ -16015,11 +15945,6 @@ }, "type": "object" }, - "aliases": [ - { - "type": "grafana:index/oncallOutgoingWebhook:OncallOutgoingWebhook" - } - ], "deprecationMessage": "grafana.index/oncalloutgoingwebhook.OncallOutgoingWebhook has been deprecated in favor of grafana.oncall/outgoingwebhook.OutgoingWebhook" }, "grafana:index/oncallRoute:OncallRoute": { @@ -16144,11 +16069,6 @@ }, "type": "object" }, - "aliases": [ - { - "type": "grafana:index/oncallRoute:OncallRoute" - } - ], "deprecationMessage": "grafana.index/oncallroute.OncallRoute has been deprecated in favor of grafana.oncall/route.Route" }, "grafana:index/oncallSchedule:OncallSchedule": { @@ -16289,15 +16209,10 @@ }, "type": "object" }, - "aliases": [ - { - "type": "grafana:index/oncallSchedule:OncallSchedule" - } - ], "deprecationMessage": "grafana.index/oncallschedule.OncallSchedule has been deprecated in favor of grafana.oncall/schedule.Schedule" }, "grafana:index/oncallUserNotificationRule:OncallUserNotificationRule": { - "description": "* [HTTP API](https://grafana.com/docs/oncall/latest/oncall-api-reference/personal_notification_rules/)\n\n**Note**: you must be running Grafana OnCall \u003e= v1.8.0 to use this resource.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as grafana from \"@pulumi/grafana\";\nimport * as grafana from \"@pulumiverse/grafana\";\n\nconst myUser = grafana.onCall.getUser({\n username: \"my_username\",\n});\nconst myUserStep1 = new grafana.OncallUserNotificationRule(\"my_user_step_1\", {\n userId: myUser.then(myUser =\u003e myUser.id),\n position: 0,\n type: \"notify_by_mobile_app\",\n});\nconst myUserStep2 = new grafana.OncallUserNotificationRule(\"my_user_step_2\", {\n userId: myUser.then(myUser =\u003e myUser.id),\n position: 1,\n duration: 600,\n type: \"wait\",\n});\nconst myUserStep3 = new grafana.OncallUserNotificationRule(\"my_user_step_3\", {\n userId: myUser.then(myUser =\u003e myUser.id),\n position: 2,\n type: \"notify_by_phone_call\",\n});\nconst myUserStep4 = new grafana.OncallUserNotificationRule(\"my_user_step_4\", {\n userId: myUser.then(myUser =\u003e myUser.id),\n position: 3,\n duration: 300,\n type: \"wait\",\n});\nconst myUserStep5 = new grafana.OncallUserNotificationRule(\"my_user_step_5\", {\n userId: myUser.then(myUser =\u003e myUser.id),\n position: 4,\n type: \"notify_by_slack\",\n});\nconst myUserImportantStep1 = new grafana.OncallUserNotificationRule(\"my_user_important_step_1\", {\n userId: myUser.then(myUser =\u003e myUser.id),\n important: true,\n position: 0,\n type: \"notify_by_mobile_app_critical\",\n});\nconst myUserImportantStep2 = new grafana.OncallUserNotificationRule(\"my_user_important_step_2\", {\n userId: myUser.then(myUser =\u003e myUser.id),\n important: true,\n position: 1,\n duration: 300,\n type: \"wait\",\n});\nconst myUserImportantStep3 = new grafana.OncallUserNotificationRule(\"my_user_important_step_3\", {\n userId: myUser.then(myUser =\u003e myUser.id),\n important: true,\n position: 2,\n type: \"notify_by_mobile_app_critical\",\n});\n```\n```python\nimport pulumi\nimport pulumi_grafana as grafana\nimport pulumiverse_grafana as grafana\n\nmy_user = grafana.onCall.get_user(username=\"my_username\")\nmy_user_step1 = grafana.OncallUserNotificationRule(\"my_user_step_1\",\n user_id=my_user.id,\n position=0,\n type=\"notify_by_mobile_app\")\nmy_user_step2 = grafana.OncallUserNotificationRule(\"my_user_step_2\",\n user_id=my_user.id,\n position=1,\n duration=600,\n type=\"wait\")\nmy_user_step3 = grafana.OncallUserNotificationRule(\"my_user_step_3\",\n user_id=my_user.id,\n position=2,\n type=\"notify_by_phone_call\")\nmy_user_step4 = grafana.OncallUserNotificationRule(\"my_user_step_4\",\n user_id=my_user.id,\n position=3,\n duration=300,\n type=\"wait\")\nmy_user_step5 = grafana.OncallUserNotificationRule(\"my_user_step_5\",\n user_id=my_user.id,\n position=4,\n type=\"notify_by_slack\")\nmy_user_important_step1 = grafana.OncallUserNotificationRule(\"my_user_important_step_1\",\n user_id=my_user.id,\n important=True,\n position=0,\n type=\"notify_by_mobile_app_critical\")\nmy_user_important_step2 = grafana.OncallUserNotificationRule(\"my_user_important_step_2\",\n user_id=my_user.id,\n important=True,\n position=1,\n duration=300,\n type=\"wait\")\nmy_user_important_step3 = grafana.OncallUserNotificationRule(\"my_user_important_step_3\",\n user_id=my_user.id,\n important=True,\n position=2,\n type=\"notify_by_mobile_app_critical\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Grafana = Pulumi.Grafana;\nusing Grafana = Pulumiverse.Grafana;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var myUser = Grafana.OnCall.GetUser.Invoke(new()\n {\n Username = \"my_username\",\n });\n\n var myUserStep1 = new Grafana.OncallUserNotificationRule(\"my_user_step_1\", new()\n {\n UserId = myUser.Apply(getUserResult =\u003e getUserResult.Id),\n Position = 0,\n Type = \"notify_by_mobile_app\",\n });\n\n var myUserStep2 = new Grafana.OncallUserNotificationRule(\"my_user_step_2\", new()\n {\n UserId = myUser.Apply(getUserResult =\u003e getUserResult.Id),\n Position = 1,\n Duration = 600,\n Type = \"wait\",\n });\n\n var myUserStep3 = new Grafana.OncallUserNotificationRule(\"my_user_step_3\", new()\n {\n UserId = myUser.Apply(getUserResult =\u003e getUserResult.Id),\n Position = 2,\n Type = \"notify_by_phone_call\",\n });\n\n var myUserStep4 = new Grafana.OncallUserNotificationRule(\"my_user_step_4\", new()\n {\n UserId = myUser.Apply(getUserResult =\u003e getUserResult.Id),\n Position = 3,\n Duration = 300,\n Type = \"wait\",\n });\n\n var myUserStep5 = new Grafana.OncallUserNotificationRule(\"my_user_step_5\", new()\n {\n UserId = myUser.Apply(getUserResult =\u003e getUserResult.Id),\n Position = 4,\n Type = \"notify_by_slack\",\n });\n\n var myUserImportantStep1 = new Grafana.OncallUserNotificationRule(\"my_user_important_step_1\", new()\n {\n UserId = myUser.Apply(getUserResult =\u003e getUserResult.Id),\n Important = true,\n Position = 0,\n Type = \"notify_by_mobile_app_critical\",\n });\n\n var myUserImportantStep2 = new Grafana.OncallUserNotificationRule(\"my_user_important_step_2\", new()\n {\n UserId = myUser.Apply(getUserResult =\u003e getUserResult.Id),\n Important = true,\n Position = 1,\n Duration = 300,\n Type = \"wait\",\n });\n\n var myUserImportantStep3 = new Grafana.OncallUserNotificationRule(\"my_user_important_step_3\", new()\n {\n UserId = myUser.Apply(getUserResult =\u003e getUserResult.Id),\n Important = true,\n Position = 2,\n Type = \"notify_by_mobile_app_critical\",\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-grafana/sdk/go/grafana\"\n\t\"github.com/pulumiverse/pulumi-grafana/sdk/go/grafana/onCall\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmyUser, err := onCall.GetUser(ctx, \u0026oncall.GetUserArgs{\n\t\t\tUsername: \"my_username\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = grafana.NewOncallUserNotificationRule(ctx, \"my_user_step_1\", \u0026grafana.OncallUserNotificationRuleArgs{\n\t\t\tUserId: pulumi.String(myUser.Id),\n\t\t\tPosition: pulumi.Int(0),\n\t\t\tType: pulumi.String(\"notify_by_mobile_app\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = grafana.NewOncallUserNotificationRule(ctx, \"my_user_step_2\", \u0026grafana.OncallUserNotificationRuleArgs{\n\t\t\tUserId: pulumi.String(myUser.Id),\n\t\t\tPosition: pulumi.Int(1),\n\t\t\tDuration: pulumi.Int(600),\n\t\t\tType: pulumi.String(\"wait\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = grafana.NewOncallUserNotificationRule(ctx, \"my_user_step_3\", \u0026grafana.OncallUserNotificationRuleArgs{\n\t\t\tUserId: pulumi.String(myUser.Id),\n\t\t\tPosition: pulumi.Int(2),\n\t\t\tType: pulumi.String(\"notify_by_phone_call\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = grafana.NewOncallUserNotificationRule(ctx, \"my_user_step_4\", \u0026grafana.OncallUserNotificationRuleArgs{\n\t\t\tUserId: pulumi.String(myUser.Id),\n\t\t\tPosition: pulumi.Int(3),\n\t\t\tDuration: pulumi.Int(300),\n\t\t\tType: pulumi.String(\"wait\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = grafana.NewOncallUserNotificationRule(ctx, \"my_user_step_5\", \u0026grafana.OncallUserNotificationRuleArgs{\n\t\t\tUserId: pulumi.String(myUser.Id),\n\t\t\tPosition: pulumi.Int(4),\n\t\t\tType: pulumi.String(\"notify_by_slack\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = grafana.NewOncallUserNotificationRule(ctx, \"my_user_important_step_1\", \u0026grafana.OncallUserNotificationRuleArgs{\n\t\t\tUserId: pulumi.String(myUser.Id),\n\t\t\tImportant: pulumi.Bool(true),\n\t\t\tPosition: pulumi.Int(0),\n\t\t\tType: pulumi.String(\"notify_by_mobile_app_critical\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = grafana.NewOncallUserNotificationRule(ctx, \"my_user_important_step_2\", \u0026grafana.OncallUserNotificationRuleArgs{\n\t\t\tUserId: pulumi.String(myUser.Id),\n\t\t\tImportant: pulumi.Bool(true),\n\t\t\tPosition: pulumi.Int(1),\n\t\t\tDuration: pulumi.Int(300),\n\t\t\tType: pulumi.String(\"wait\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = grafana.NewOncallUserNotificationRule(ctx, \"my_user_important_step_3\", \u0026grafana.OncallUserNotificationRuleArgs{\n\t\t\tUserId: pulumi.String(myUser.Id),\n\t\t\tImportant: pulumi.Bool(true),\n\t\t\tPosition: pulumi.Int(2),\n\t\t\tType: pulumi.String(\"notify_by_mobile_app_critical\"),\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.grafana.onCall.OnCallFunctions;\nimport com.pulumi.grafana.onCall.inputs.GetUserArgs;\nimport com.pulumi.grafana.OncallUserNotificationRule;\nimport com.pulumi.grafana.OncallUserNotificationRuleArgs;\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 myUser = OnCallFunctions.getUser(GetUserArgs.builder()\n .username(\"my_username\")\n .build());\n\n var myUserStep1 = new OncallUserNotificationRule(\"myUserStep1\", OncallUserNotificationRuleArgs.builder()\n .userId(myUser.applyValue(getUserResult -\u003e getUserResult.id()))\n .position(0)\n .type(\"notify_by_mobile_app\")\n .build());\n\n var myUserStep2 = new OncallUserNotificationRule(\"myUserStep2\", OncallUserNotificationRuleArgs.builder()\n .userId(myUser.applyValue(getUserResult -\u003e getUserResult.id()))\n .position(1)\n .duration(600)\n .type(\"wait\")\n .build());\n\n var myUserStep3 = new OncallUserNotificationRule(\"myUserStep3\", OncallUserNotificationRuleArgs.builder()\n .userId(myUser.applyValue(getUserResult -\u003e getUserResult.id()))\n .position(2)\n .type(\"notify_by_phone_call\")\n .build());\n\n var myUserStep4 = new OncallUserNotificationRule(\"myUserStep4\", OncallUserNotificationRuleArgs.builder()\n .userId(myUser.applyValue(getUserResult -\u003e getUserResult.id()))\n .position(3)\n .duration(300)\n .type(\"wait\")\n .build());\n\n var myUserStep5 = new OncallUserNotificationRule(\"myUserStep5\", OncallUserNotificationRuleArgs.builder()\n .userId(myUser.applyValue(getUserResult -\u003e getUserResult.id()))\n .position(4)\n .type(\"notify_by_slack\")\n .build());\n\n var myUserImportantStep1 = new OncallUserNotificationRule(\"myUserImportantStep1\", OncallUserNotificationRuleArgs.builder()\n .userId(myUser.applyValue(getUserResult -\u003e getUserResult.id()))\n .important(true)\n .position(0)\n .type(\"notify_by_mobile_app_critical\")\n .build());\n\n var myUserImportantStep2 = new OncallUserNotificationRule(\"myUserImportantStep2\", OncallUserNotificationRuleArgs.builder()\n .userId(myUser.applyValue(getUserResult -\u003e getUserResult.id()))\n .important(true)\n .position(1)\n .duration(300)\n .type(\"wait\")\n .build());\n\n var myUserImportantStep3 = new OncallUserNotificationRule(\"myUserImportantStep3\", OncallUserNotificationRuleArgs.builder()\n .userId(myUser.applyValue(getUserResult -\u003e getUserResult.id()))\n .important(true)\n .position(2)\n .type(\"notify_by_mobile_app_critical\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n myUserStep1:\n type: grafana:OncallUserNotificationRule\n name: my_user_step_1\n properties:\n userId: ${myUser.id}\n position: 0\n type: notify_by_mobile_app\n myUserStep2:\n type: grafana:OncallUserNotificationRule\n name: my_user_step_2\n properties:\n userId: ${myUser.id}\n position: 1\n duration: 600 # 10 minutes\n type: wait\n myUserStep3:\n type: grafana:OncallUserNotificationRule\n name: my_user_step_3\n properties:\n userId: ${myUser.id}\n position: 2\n type: notify_by_phone_call\n myUserStep4:\n type: grafana:OncallUserNotificationRule\n name: my_user_step_4\n properties:\n userId: ${myUser.id}\n position: 3\n duration: 300 # 5 minutes\n type: wait\n myUserStep5:\n type: grafana:OncallUserNotificationRule\n name: my_user_step_5\n properties:\n userId: ${myUser.id}\n position: 4\n type: notify_by_slack\n myUserImportantStep1:\n type: grafana:OncallUserNotificationRule\n name: my_user_important_step_1\n properties:\n userId: ${myUser.id}\n important: true\n position: 0\n type: notify_by_mobile_app_critical\n myUserImportantStep2:\n type: grafana:OncallUserNotificationRule\n name: my_user_important_step_2\n properties:\n userId: ${myUser.id}\n important: true\n position: 1\n duration: 300 # 5 minutes\n type: wait\n myUserImportantStep3:\n type: grafana:OncallUserNotificationRule\n name: my_user_important_step_3\n properties:\n userId: ${myUser.id}\n important: true\n position: 2\n type: notify_by_mobile_app_critical\nvariables:\n myUser:\n fn::invoke:\n Function: grafana:onCall:getUser\n Arguments:\n username: my_username\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n```sh\n$ pulumi import grafana:index/oncallUserNotificationRule:OncallUserNotificationRule name \"{{ id }}\"\n```\n\n", + "description": "* [HTTP API](https://grafana.com/docs/oncall/latest/oncall-api-reference/personal_notification_rules/)\n\n**Note**: you must be running Grafana OnCall \u003e= v1.8.0 to use this resource.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as grafana from \"@pulumi/grafana\";\nimport * as grafana from \"@pulumiverse/grafana\";\n\nconst myUser = grafana.onCall.getUser({\n username: \"my_username\",\n});\nconst myUserStep1 = new grafana.oncall.UserNotificationRule(\"my_user_step_1\", {\n userId: myUser.then(myUser =\u003e myUser.id),\n position: 0,\n type: \"notify_by_mobile_app\",\n});\nconst myUserStep2 = new grafana.oncall.UserNotificationRule(\"my_user_step_2\", {\n userId: myUser.then(myUser =\u003e myUser.id),\n position: 1,\n duration: 600,\n type: \"wait\",\n});\nconst myUserStep3 = new grafana.oncall.UserNotificationRule(\"my_user_step_3\", {\n userId: myUser.then(myUser =\u003e myUser.id),\n position: 2,\n type: \"notify_by_phone_call\",\n});\nconst myUserStep4 = new grafana.oncall.UserNotificationRule(\"my_user_step_4\", {\n userId: myUser.then(myUser =\u003e myUser.id),\n position: 3,\n duration: 300,\n type: \"wait\",\n});\nconst myUserStep5 = new grafana.oncall.UserNotificationRule(\"my_user_step_5\", {\n userId: myUser.then(myUser =\u003e myUser.id),\n position: 4,\n type: \"notify_by_slack\",\n});\nconst myUserImportantStep1 = new grafana.oncall.UserNotificationRule(\"my_user_important_step_1\", {\n userId: myUser.then(myUser =\u003e myUser.id),\n important: true,\n position: 0,\n type: \"notify_by_mobile_app_critical\",\n});\nconst myUserImportantStep2 = new grafana.oncall.UserNotificationRule(\"my_user_important_step_2\", {\n userId: myUser.then(myUser =\u003e myUser.id),\n important: true,\n position: 1,\n duration: 300,\n type: \"wait\",\n});\nconst myUserImportantStep3 = new grafana.oncall.UserNotificationRule(\"my_user_important_step_3\", {\n userId: myUser.then(myUser =\u003e myUser.id),\n important: true,\n position: 2,\n type: \"notify_by_mobile_app_critical\",\n});\n```\n```python\nimport pulumi\nimport pulumi_grafana as grafana\nimport pulumiverse_grafana as grafana\n\nmy_user = grafana.onCall.get_user(username=\"my_username\")\nmy_user_step1 = grafana.on_call.UserNotificationRule(\"my_user_step_1\",\n user_id=my_user.id,\n position=0,\n type=\"notify_by_mobile_app\")\nmy_user_step2 = grafana.on_call.UserNotificationRule(\"my_user_step_2\",\n user_id=my_user.id,\n position=1,\n duration=600,\n type=\"wait\")\nmy_user_step3 = grafana.on_call.UserNotificationRule(\"my_user_step_3\",\n user_id=my_user.id,\n position=2,\n type=\"notify_by_phone_call\")\nmy_user_step4 = grafana.on_call.UserNotificationRule(\"my_user_step_4\",\n user_id=my_user.id,\n position=3,\n duration=300,\n type=\"wait\")\nmy_user_step5 = grafana.on_call.UserNotificationRule(\"my_user_step_5\",\n user_id=my_user.id,\n position=4,\n type=\"notify_by_slack\")\nmy_user_important_step1 = grafana.on_call.UserNotificationRule(\"my_user_important_step_1\",\n user_id=my_user.id,\n important=True,\n position=0,\n type=\"notify_by_mobile_app_critical\")\nmy_user_important_step2 = grafana.on_call.UserNotificationRule(\"my_user_important_step_2\",\n user_id=my_user.id,\n important=True,\n position=1,\n duration=300,\n type=\"wait\")\nmy_user_important_step3 = grafana.on_call.UserNotificationRule(\"my_user_important_step_3\",\n user_id=my_user.id,\n important=True,\n position=2,\n type=\"notify_by_mobile_app_critical\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Grafana = Pulumi.Grafana;\nusing Grafana = Pulumiverse.Grafana;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var myUser = Grafana.OnCall.GetUser.Invoke(new()\n {\n Username = \"my_username\",\n });\n\n var myUserStep1 = new Grafana.OnCall.UserNotificationRule(\"my_user_step_1\", new()\n {\n UserId = myUser.Apply(getUserResult =\u003e getUserResult.Id),\n Position = 0,\n Type = \"notify_by_mobile_app\",\n });\n\n var myUserStep2 = new Grafana.OnCall.UserNotificationRule(\"my_user_step_2\", new()\n {\n UserId = myUser.Apply(getUserResult =\u003e getUserResult.Id),\n Position = 1,\n Duration = 600,\n Type = \"wait\",\n });\n\n var myUserStep3 = new Grafana.OnCall.UserNotificationRule(\"my_user_step_3\", new()\n {\n UserId = myUser.Apply(getUserResult =\u003e getUserResult.Id),\n Position = 2,\n Type = \"notify_by_phone_call\",\n });\n\n var myUserStep4 = new Grafana.OnCall.UserNotificationRule(\"my_user_step_4\", new()\n {\n UserId = myUser.Apply(getUserResult =\u003e getUserResult.Id),\n Position = 3,\n Duration = 300,\n Type = \"wait\",\n });\n\n var myUserStep5 = new Grafana.OnCall.UserNotificationRule(\"my_user_step_5\", new()\n {\n UserId = myUser.Apply(getUserResult =\u003e getUserResult.Id),\n Position = 4,\n Type = \"notify_by_slack\",\n });\n\n var myUserImportantStep1 = new Grafana.OnCall.UserNotificationRule(\"my_user_important_step_1\", new()\n {\n UserId = myUser.Apply(getUserResult =\u003e getUserResult.Id),\n Important = true,\n Position = 0,\n Type = \"notify_by_mobile_app_critical\",\n });\n\n var myUserImportantStep2 = new Grafana.OnCall.UserNotificationRule(\"my_user_important_step_2\", new()\n {\n UserId = myUser.Apply(getUserResult =\u003e getUserResult.Id),\n Important = true,\n Position = 1,\n Duration = 300,\n Type = \"wait\",\n });\n\n var myUserImportantStep3 = new Grafana.OnCall.UserNotificationRule(\"my_user_important_step_3\", new()\n {\n UserId = myUser.Apply(getUserResult =\u003e getUserResult.Id),\n Important = true,\n Position = 2,\n Type = \"notify_by_mobile_app_critical\",\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-grafana/sdk/go/grafana/onCall\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmyUser, err := onCall.GetUser(ctx, \u0026oncall.GetUserArgs{\n\t\t\tUsername: \"my_username\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = onCall.NewUserNotificationRule(ctx, \"my_user_step_1\", \u0026onCall.UserNotificationRuleArgs{\n\t\t\tUserId: pulumi.String(myUser.Id),\n\t\t\tPosition: pulumi.Int(0),\n\t\t\tType: pulumi.String(\"notify_by_mobile_app\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = onCall.NewUserNotificationRule(ctx, \"my_user_step_2\", \u0026onCall.UserNotificationRuleArgs{\n\t\t\tUserId: pulumi.String(myUser.Id),\n\t\t\tPosition: pulumi.Int(1),\n\t\t\tDuration: pulumi.Int(600),\n\t\t\tType: pulumi.String(\"wait\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = onCall.NewUserNotificationRule(ctx, \"my_user_step_3\", \u0026onCall.UserNotificationRuleArgs{\n\t\t\tUserId: pulumi.String(myUser.Id),\n\t\t\tPosition: pulumi.Int(2),\n\t\t\tType: pulumi.String(\"notify_by_phone_call\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = onCall.NewUserNotificationRule(ctx, \"my_user_step_4\", \u0026onCall.UserNotificationRuleArgs{\n\t\t\tUserId: pulumi.String(myUser.Id),\n\t\t\tPosition: pulumi.Int(3),\n\t\t\tDuration: pulumi.Int(300),\n\t\t\tType: pulumi.String(\"wait\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = onCall.NewUserNotificationRule(ctx, \"my_user_step_5\", \u0026onCall.UserNotificationRuleArgs{\n\t\t\tUserId: pulumi.String(myUser.Id),\n\t\t\tPosition: pulumi.Int(4),\n\t\t\tType: pulumi.String(\"notify_by_slack\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = onCall.NewUserNotificationRule(ctx, \"my_user_important_step_1\", \u0026onCall.UserNotificationRuleArgs{\n\t\t\tUserId: pulumi.String(myUser.Id),\n\t\t\tImportant: pulumi.Bool(true),\n\t\t\tPosition: pulumi.Int(0),\n\t\t\tType: pulumi.String(\"notify_by_mobile_app_critical\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = onCall.NewUserNotificationRule(ctx, \"my_user_important_step_2\", \u0026onCall.UserNotificationRuleArgs{\n\t\t\tUserId: pulumi.String(myUser.Id),\n\t\t\tImportant: pulumi.Bool(true),\n\t\t\tPosition: pulumi.Int(1),\n\t\t\tDuration: pulumi.Int(300),\n\t\t\tType: pulumi.String(\"wait\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = onCall.NewUserNotificationRule(ctx, \"my_user_important_step_3\", \u0026onCall.UserNotificationRuleArgs{\n\t\t\tUserId: pulumi.String(myUser.Id),\n\t\t\tImportant: pulumi.Bool(true),\n\t\t\tPosition: pulumi.Int(2),\n\t\t\tType: pulumi.String(\"notify_by_mobile_app_critical\"),\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.grafana.onCall.OnCallFunctions;\nimport com.pulumi.grafana.onCall.inputs.GetUserArgs;\nimport com.pulumi.grafana.onCall.UserNotificationRule;\nimport com.pulumi.grafana.onCall.UserNotificationRuleArgs;\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 myUser = OnCallFunctions.getUser(GetUserArgs.builder()\n .username(\"my_username\")\n .build());\n\n var myUserStep1 = new UserNotificationRule(\"myUserStep1\", UserNotificationRuleArgs.builder()\n .userId(myUser.applyValue(getUserResult -\u003e getUserResult.id()))\n .position(0)\n .type(\"notify_by_mobile_app\")\n .build());\n\n var myUserStep2 = new UserNotificationRule(\"myUserStep2\", UserNotificationRuleArgs.builder()\n .userId(myUser.applyValue(getUserResult -\u003e getUserResult.id()))\n .position(1)\n .duration(600)\n .type(\"wait\")\n .build());\n\n var myUserStep3 = new UserNotificationRule(\"myUserStep3\", UserNotificationRuleArgs.builder()\n .userId(myUser.applyValue(getUserResult -\u003e getUserResult.id()))\n .position(2)\n .type(\"notify_by_phone_call\")\n .build());\n\n var myUserStep4 = new UserNotificationRule(\"myUserStep4\", UserNotificationRuleArgs.builder()\n .userId(myUser.applyValue(getUserResult -\u003e getUserResult.id()))\n .position(3)\n .duration(300)\n .type(\"wait\")\n .build());\n\n var myUserStep5 = new UserNotificationRule(\"myUserStep5\", UserNotificationRuleArgs.builder()\n .userId(myUser.applyValue(getUserResult -\u003e getUserResult.id()))\n .position(4)\n .type(\"notify_by_slack\")\n .build());\n\n var myUserImportantStep1 = new UserNotificationRule(\"myUserImportantStep1\", UserNotificationRuleArgs.builder()\n .userId(myUser.applyValue(getUserResult -\u003e getUserResult.id()))\n .important(true)\n .position(0)\n .type(\"notify_by_mobile_app_critical\")\n .build());\n\n var myUserImportantStep2 = new UserNotificationRule(\"myUserImportantStep2\", UserNotificationRuleArgs.builder()\n .userId(myUser.applyValue(getUserResult -\u003e getUserResult.id()))\n .important(true)\n .position(1)\n .duration(300)\n .type(\"wait\")\n .build());\n\n var myUserImportantStep3 = new UserNotificationRule(\"myUserImportantStep3\", UserNotificationRuleArgs.builder()\n .userId(myUser.applyValue(getUserResult -\u003e getUserResult.id()))\n .important(true)\n .position(2)\n .type(\"notify_by_mobile_app_critical\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n myUserStep1:\n type: grafana:onCall:UserNotificationRule\n name: my_user_step_1\n properties:\n userId: ${myUser.id}\n position: 0\n type: notify_by_mobile_app\n myUserStep2:\n type: grafana:onCall:UserNotificationRule\n name: my_user_step_2\n properties:\n userId: ${myUser.id}\n position: 1\n duration: 600 # 10 minutes\n type: wait\n myUserStep3:\n type: grafana:onCall:UserNotificationRule\n name: my_user_step_3\n properties:\n userId: ${myUser.id}\n position: 2\n type: notify_by_phone_call\n myUserStep4:\n type: grafana:onCall:UserNotificationRule\n name: my_user_step_4\n properties:\n userId: ${myUser.id}\n position: 3\n duration: 300 # 5 minutes\n type: wait\n myUserStep5:\n type: grafana:onCall:UserNotificationRule\n name: my_user_step_5\n properties:\n userId: ${myUser.id}\n position: 4\n type: notify_by_slack\n myUserImportantStep1:\n type: grafana:onCall:UserNotificationRule\n name: my_user_important_step_1\n properties:\n userId: ${myUser.id}\n important: true\n position: 0\n type: notify_by_mobile_app_critical\n myUserImportantStep2:\n type: grafana:onCall:UserNotificationRule\n name: my_user_important_step_2\n properties:\n userId: ${myUser.id}\n important: true\n position: 1\n duration: 300 # 5 minutes\n type: wait\n myUserImportantStep3:\n type: grafana:onCall:UserNotificationRule\n name: my_user_important_step_3\n properties:\n userId: ${myUser.id}\n important: true\n position: 2\n type: notify_by_mobile_app_critical\nvariables:\n myUser:\n fn::invoke:\n Function: grafana:onCall:getUser\n Arguments:\n username: my_username\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n```sh\n$ pulumi import grafana:index/oncallUserNotificationRule:OncallUserNotificationRule name \"{{ id }}\"\n```\n\n", "properties": { "duration": { "type": "integer", @@ -16376,7 +16291,8 @@ } }, "type": "object" - } + }, + "deprecationMessage": "grafana.index/oncallusernotificationrule.OncallUserNotificationRule has been deprecated in favor of grafana.oncall/usernotificationrule.UserNotificationRule" }, "grafana:index/organization:Organization": { "description": "* [Official documentation](https://grafana.com/docs/grafana/latest/administration/organization-management/)\n* [HTTP API](https://grafana.com/docs/grafana/latest/developers/http_api/org/)\n\nThis resource represents an instance-scoped resource and uses Grafana's admin APIs.\nIt does not work with API tokens or service accounts which are org-scoped.\nYou must use basic auth.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as grafana from \"@pulumiverse/grafana\";\n\nconst test = new grafana.oss.Organization(\"test\", {\n name: \"Test Organization\",\n adminUser: \"admin\",\n createUsers: true,\n admins: [\"admin@example.com\"],\n editors: [\n \"editor-01@example.com\",\n \"editor-02@example.com\",\n ],\n viewers: [\n \"viewer-01@example.com\",\n \"viewer-02@example.com\",\n ],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_grafana as grafana\n\ntest = grafana.oss.Organization(\"test\",\n name=\"Test Organization\",\n admin_user=\"admin\",\n create_users=True,\n admins=[\"admin@example.com\"],\n editors=[\n \"editor-01@example.com\",\n \"editor-02@example.com\",\n ],\n viewers=[\n \"viewer-01@example.com\",\n \"viewer-02@example.com\",\n ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Grafana = Pulumiverse.Grafana;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var test = new Grafana.Oss.Organization(\"test\", new()\n {\n Name = \"Test Organization\",\n AdminUser = \"admin\",\n CreateUsers = true,\n Admins = new[]\n {\n \"admin@example.com\",\n },\n Editors = new[]\n {\n \"editor-01@example.com\",\n \"editor-02@example.com\",\n },\n Viewers = new[]\n {\n \"viewer-01@example.com\",\n \"viewer-02@example.com\",\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-grafana/sdk/go/grafana/oss\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := oss.NewOrganization(ctx, \"test\", \u0026oss.OrganizationArgs{\n\t\t\tName: pulumi.String(\"Test Organization\"),\n\t\t\tAdminUser: pulumi.String(\"admin\"),\n\t\t\tCreateUsers: pulumi.Bool(true),\n\t\t\tAdmins: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"admin@example.com\"),\n\t\t\t},\n\t\t\tEditors: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"editor-01@example.com\"),\n\t\t\t\tpulumi.String(\"editor-02@example.com\"),\n\t\t\t},\n\t\t\tViewers: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"viewer-01@example.com\"),\n\t\t\t\tpulumi.String(\"viewer-02@example.com\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.grafana.oss.Organization;\nimport com.pulumi.grafana.oss.OrganizationArgs;\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 test = new Organization(\"test\", OrganizationArgs.builder()\n .name(\"Test Organization\")\n .adminUser(\"admin\")\n .createUsers(true)\n .admins(\"admin@example.com\")\n .editors( \n \"editor-01@example.com\",\n \"editor-02@example.com\")\n .viewers( \n \"viewer-01@example.com\",\n \"viewer-02@example.com\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n test:\n type: grafana:oss:Organization\n properties:\n name: Test Organization\n adminUser: admin\n createUsers: true\n admins:\n - admin@example.com\n editors:\n - editor-01@example.com\n - editor-02@example.com\n viewers:\n - viewer-01@example.com\n - viewer-02@example.com\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n```sh\n$ pulumi import grafana:index/organization:Organization name \"{{ id }}\"\n```\n\n", @@ -18106,11 +18022,6 @@ }, "type": "object" }, - "aliases": [ - { - "type": "grafana:index/syntheticMonitoringCheck:SyntheticMonitoringCheck" - } - ], "deprecationMessage": "grafana.index/syntheticmonitoringcheck.SyntheticMonitoringCheck has been deprecated in favor of grafana.syntheticmonitoring/check.Check" }, "grafana:index/syntheticMonitoringInstallation:SyntheticMonitoringInstallation": { @@ -18188,11 +18099,6 @@ }, "type": "object" }, - "aliases": [ - { - "type": "grafana:index/syntheticMonitoringInstallation:SyntheticMonitoringInstallation" - } - ], "deprecationMessage": "grafana.index/syntheticmonitoringinstallation.SyntheticMonitoringInstallation has been deprecated in favor of grafana.syntheticmonitoring/installation.Installation" }, "grafana:index/syntheticMonitoringProbe:SyntheticMonitoringProbe": { @@ -18331,11 +18237,6 @@ }, "type": "object" }, - "aliases": [ - { - "type": "grafana:index/syntheticMonitoringProbe:SyntheticMonitoringProbe" - } - ], "deprecationMessage": "grafana.index/syntheticmonitoringprobe.SyntheticMonitoringProbe has been deprecated in favor of grafana.syntheticmonitoring/probe.Probe" }, "grafana:index/team:Team": { @@ -20149,6 +20050,93 @@ } ] }, + "grafana:onCall/userNotificationRule:UserNotificationRule": { + "description": "* [HTTP API](https://grafana.com/docs/oncall/latest/oncall-api-reference/personal_notification_rules/)\n\n**Note**: you must be running Grafana OnCall \u003e= v1.8.0 to use this resource.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as grafana from \"@pulumi/grafana\";\nimport * as grafana from \"@pulumiverse/grafana\";\n\nconst myUser = grafana.onCall.getUser({\n username: \"my_username\",\n});\nconst myUserStep1 = new grafana.oncall.UserNotificationRule(\"my_user_step_1\", {\n userId: myUser.then(myUser =\u003e myUser.id),\n position: 0,\n type: \"notify_by_mobile_app\",\n});\nconst myUserStep2 = new grafana.oncall.UserNotificationRule(\"my_user_step_2\", {\n userId: myUser.then(myUser =\u003e myUser.id),\n position: 1,\n duration: 600,\n type: \"wait\",\n});\nconst myUserStep3 = new grafana.oncall.UserNotificationRule(\"my_user_step_3\", {\n userId: myUser.then(myUser =\u003e myUser.id),\n position: 2,\n type: \"notify_by_phone_call\",\n});\nconst myUserStep4 = new grafana.oncall.UserNotificationRule(\"my_user_step_4\", {\n userId: myUser.then(myUser =\u003e myUser.id),\n position: 3,\n duration: 300,\n type: \"wait\",\n});\nconst myUserStep5 = new grafana.oncall.UserNotificationRule(\"my_user_step_5\", {\n userId: myUser.then(myUser =\u003e myUser.id),\n position: 4,\n type: \"notify_by_slack\",\n});\nconst myUserImportantStep1 = new grafana.oncall.UserNotificationRule(\"my_user_important_step_1\", {\n userId: myUser.then(myUser =\u003e myUser.id),\n important: true,\n position: 0,\n type: \"notify_by_mobile_app_critical\",\n});\nconst myUserImportantStep2 = new grafana.oncall.UserNotificationRule(\"my_user_important_step_2\", {\n userId: myUser.then(myUser =\u003e myUser.id),\n important: true,\n position: 1,\n duration: 300,\n type: \"wait\",\n});\nconst myUserImportantStep3 = new grafana.oncall.UserNotificationRule(\"my_user_important_step_3\", {\n userId: myUser.then(myUser =\u003e myUser.id),\n important: true,\n position: 2,\n type: \"notify_by_mobile_app_critical\",\n});\n```\n```python\nimport pulumi\nimport pulumi_grafana as grafana\nimport pulumiverse_grafana as grafana\n\nmy_user = grafana.onCall.get_user(username=\"my_username\")\nmy_user_step1 = grafana.on_call.UserNotificationRule(\"my_user_step_1\",\n user_id=my_user.id,\n position=0,\n type=\"notify_by_mobile_app\")\nmy_user_step2 = grafana.on_call.UserNotificationRule(\"my_user_step_2\",\n user_id=my_user.id,\n position=1,\n duration=600,\n type=\"wait\")\nmy_user_step3 = grafana.on_call.UserNotificationRule(\"my_user_step_3\",\n user_id=my_user.id,\n position=2,\n type=\"notify_by_phone_call\")\nmy_user_step4 = grafana.on_call.UserNotificationRule(\"my_user_step_4\",\n user_id=my_user.id,\n position=3,\n duration=300,\n type=\"wait\")\nmy_user_step5 = grafana.on_call.UserNotificationRule(\"my_user_step_5\",\n user_id=my_user.id,\n position=4,\n type=\"notify_by_slack\")\nmy_user_important_step1 = grafana.on_call.UserNotificationRule(\"my_user_important_step_1\",\n user_id=my_user.id,\n important=True,\n position=0,\n type=\"notify_by_mobile_app_critical\")\nmy_user_important_step2 = grafana.on_call.UserNotificationRule(\"my_user_important_step_2\",\n user_id=my_user.id,\n important=True,\n position=1,\n duration=300,\n type=\"wait\")\nmy_user_important_step3 = grafana.on_call.UserNotificationRule(\"my_user_important_step_3\",\n user_id=my_user.id,\n important=True,\n position=2,\n type=\"notify_by_mobile_app_critical\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Grafana = Pulumi.Grafana;\nusing Grafana = Pulumiverse.Grafana;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var myUser = Grafana.OnCall.GetUser.Invoke(new()\n {\n Username = \"my_username\",\n });\n\n var myUserStep1 = new Grafana.OnCall.UserNotificationRule(\"my_user_step_1\", new()\n {\n UserId = myUser.Apply(getUserResult =\u003e getUserResult.Id),\n Position = 0,\n Type = \"notify_by_mobile_app\",\n });\n\n var myUserStep2 = new Grafana.OnCall.UserNotificationRule(\"my_user_step_2\", new()\n {\n UserId = myUser.Apply(getUserResult =\u003e getUserResult.Id),\n Position = 1,\n Duration = 600,\n Type = \"wait\",\n });\n\n var myUserStep3 = new Grafana.OnCall.UserNotificationRule(\"my_user_step_3\", new()\n {\n UserId = myUser.Apply(getUserResult =\u003e getUserResult.Id),\n Position = 2,\n Type = \"notify_by_phone_call\",\n });\n\n var myUserStep4 = new Grafana.OnCall.UserNotificationRule(\"my_user_step_4\", new()\n {\n UserId = myUser.Apply(getUserResult =\u003e getUserResult.Id),\n Position = 3,\n Duration = 300,\n Type = \"wait\",\n });\n\n var myUserStep5 = new Grafana.OnCall.UserNotificationRule(\"my_user_step_5\", new()\n {\n UserId = myUser.Apply(getUserResult =\u003e getUserResult.Id),\n Position = 4,\n Type = \"notify_by_slack\",\n });\n\n var myUserImportantStep1 = new Grafana.OnCall.UserNotificationRule(\"my_user_important_step_1\", new()\n {\n UserId = myUser.Apply(getUserResult =\u003e getUserResult.Id),\n Important = true,\n Position = 0,\n Type = \"notify_by_mobile_app_critical\",\n });\n\n var myUserImportantStep2 = new Grafana.OnCall.UserNotificationRule(\"my_user_important_step_2\", new()\n {\n UserId = myUser.Apply(getUserResult =\u003e getUserResult.Id),\n Important = true,\n Position = 1,\n Duration = 300,\n Type = \"wait\",\n });\n\n var myUserImportantStep3 = new Grafana.OnCall.UserNotificationRule(\"my_user_important_step_3\", new()\n {\n UserId = myUser.Apply(getUserResult =\u003e getUserResult.Id),\n Important = true,\n Position = 2,\n Type = \"notify_by_mobile_app_critical\",\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-grafana/sdk/go/grafana/onCall\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmyUser, err := onCall.GetUser(ctx, \u0026oncall.GetUserArgs{\n\t\t\tUsername: \"my_username\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = onCall.NewUserNotificationRule(ctx, \"my_user_step_1\", \u0026onCall.UserNotificationRuleArgs{\n\t\t\tUserId: pulumi.String(myUser.Id),\n\t\t\tPosition: pulumi.Int(0),\n\t\t\tType: pulumi.String(\"notify_by_mobile_app\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = onCall.NewUserNotificationRule(ctx, \"my_user_step_2\", \u0026onCall.UserNotificationRuleArgs{\n\t\t\tUserId: pulumi.String(myUser.Id),\n\t\t\tPosition: pulumi.Int(1),\n\t\t\tDuration: pulumi.Int(600),\n\t\t\tType: pulumi.String(\"wait\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = onCall.NewUserNotificationRule(ctx, \"my_user_step_3\", \u0026onCall.UserNotificationRuleArgs{\n\t\t\tUserId: pulumi.String(myUser.Id),\n\t\t\tPosition: pulumi.Int(2),\n\t\t\tType: pulumi.String(\"notify_by_phone_call\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = onCall.NewUserNotificationRule(ctx, \"my_user_step_4\", \u0026onCall.UserNotificationRuleArgs{\n\t\t\tUserId: pulumi.String(myUser.Id),\n\t\t\tPosition: pulumi.Int(3),\n\t\t\tDuration: pulumi.Int(300),\n\t\t\tType: pulumi.String(\"wait\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = onCall.NewUserNotificationRule(ctx, \"my_user_step_5\", \u0026onCall.UserNotificationRuleArgs{\n\t\t\tUserId: pulumi.String(myUser.Id),\n\t\t\tPosition: pulumi.Int(4),\n\t\t\tType: pulumi.String(\"notify_by_slack\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = onCall.NewUserNotificationRule(ctx, \"my_user_important_step_1\", \u0026onCall.UserNotificationRuleArgs{\n\t\t\tUserId: pulumi.String(myUser.Id),\n\t\t\tImportant: pulumi.Bool(true),\n\t\t\tPosition: pulumi.Int(0),\n\t\t\tType: pulumi.String(\"notify_by_mobile_app_critical\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = onCall.NewUserNotificationRule(ctx, \"my_user_important_step_2\", \u0026onCall.UserNotificationRuleArgs{\n\t\t\tUserId: pulumi.String(myUser.Id),\n\t\t\tImportant: pulumi.Bool(true),\n\t\t\tPosition: pulumi.Int(1),\n\t\t\tDuration: pulumi.Int(300),\n\t\t\tType: pulumi.String(\"wait\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = onCall.NewUserNotificationRule(ctx, \"my_user_important_step_3\", \u0026onCall.UserNotificationRuleArgs{\n\t\t\tUserId: pulumi.String(myUser.Id),\n\t\t\tImportant: pulumi.Bool(true),\n\t\t\tPosition: pulumi.Int(2),\n\t\t\tType: pulumi.String(\"notify_by_mobile_app_critical\"),\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.grafana.onCall.OnCallFunctions;\nimport com.pulumi.grafana.onCall.inputs.GetUserArgs;\nimport com.pulumi.grafana.onCall.UserNotificationRule;\nimport com.pulumi.grafana.onCall.UserNotificationRuleArgs;\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 myUser = OnCallFunctions.getUser(GetUserArgs.builder()\n .username(\"my_username\")\n .build());\n\n var myUserStep1 = new UserNotificationRule(\"myUserStep1\", UserNotificationRuleArgs.builder()\n .userId(myUser.applyValue(getUserResult -\u003e getUserResult.id()))\n .position(0)\n .type(\"notify_by_mobile_app\")\n .build());\n\n var myUserStep2 = new UserNotificationRule(\"myUserStep2\", UserNotificationRuleArgs.builder()\n .userId(myUser.applyValue(getUserResult -\u003e getUserResult.id()))\n .position(1)\n .duration(600)\n .type(\"wait\")\n .build());\n\n var myUserStep3 = new UserNotificationRule(\"myUserStep3\", UserNotificationRuleArgs.builder()\n .userId(myUser.applyValue(getUserResult -\u003e getUserResult.id()))\n .position(2)\n .type(\"notify_by_phone_call\")\n .build());\n\n var myUserStep4 = new UserNotificationRule(\"myUserStep4\", UserNotificationRuleArgs.builder()\n .userId(myUser.applyValue(getUserResult -\u003e getUserResult.id()))\n .position(3)\n .duration(300)\n .type(\"wait\")\n .build());\n\n var myUserStep5 = new UserNotificationRule(\"myUserStep5\", UserNotificationRuleArgs.builder()\n .userId(myUser.applyValue(getUserResult -\u003e getUserResult.id()))\n .position(4)\n .type(\"notify_by_slack\")\n .build());\n\n var myUserImportantStep1 = new UserNotificationRule(\"myUserImportantStep1\", UserNotificationRuleArgs.builder()\n .userId(myUser.applyValue(getUserResult -\u003e getUserResult.id()))\n .important(true)\n .position(0)\n .type(\"notify_by_mobile_app_critical\")\n .build());\n\n var myUserImportantStep2 = new UserNotificationRule(\"myUserImportantStep2\", UserNotificationRuleArgs.builder()\n .userId(myUser.applyValue(getUserResult -\u003e getUserResult.id()))\n .important(true)\n .position(1)\n .duration(300)\n .type(\"wait\")\n .build());\n\n var myUserImportantStep3 = new UserNotificationRule(\"myUserImportantStep3\", UserNotificationRuleArgs.builder()\n .userId(myUser.applyValue(getUserResult -\u003e getUserResult.id()))\n .important(true)\n .position(2)\n .type(\"notify_by_mobile_app_critical\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n myUserStep1:\n type: grafana:onCall:UserNotificationRule\n name: my_user_step_1\n properties:\n userId: ${myUser.id}\n position: 0\n type: notify_by_mobile_app\n myUserStep2:\n type: grafana:onCall:UserNotificationRule\n name: my_user_step_2\n properties:\n userId: ${myUser.id}\n position: 1\n duration: 600 # 10 minutes\n type: wait\n myUserStep3:\n type: grafana:onCall:UserNotificationRule\n name: my_user_step_3\n properties:\n userId: ${myUser.id}\n position: 2\n type: notify_by_phone_call\n myUserStep4:\n type: grafana:onCall:UserNotificationRule\n name: my_user_step_4\n properties:\n userId: ${myUser.id}\n position: 3\n duration: 300 # 5 minutes\n type: wait\n myUserStep5:\n type: grafana:onCall:UserNotificationRule\n name: my_user_step_5\n properties:\n userId: ${myUser.id}\n position: 4\n type: notify_by_slack\n myUserImportantStep1:\n type: grafana:onCall:UserNotificationRule\n name: my_user_important_step_1\n properties:\n userId: ${myUser.id}\n important: true\n position: 0\n type: notify_by_mobile_app_critical\n myUserImportantStep2:\n type: grafana:onCall:UserNotificationRule\n name: my_user_important_step_2\n properties:\n userId: ${myUser.id}\n important: true\n position: 1\n duration: 300 # 5 minutes\n type: wait\n myUserImportantStep3:\n type: grafana:onCall:UserNotificationRule\n name: my_user_important_step_3\n properties:\n userId: ${myUser.id}\n important: true\n position: 2\n type: notify_by_mobile_app_critical\nvariables:\n myUser:\n fn::invoke:\n Function: grafana:onCall:getUser\n Arguments:\n username: my_username\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n```sh\n$ pulumi import grafana:onCall/userNotificationRule:UserNotificationRule name \"{{ id }}\"\n```\n\n", + "properties": { + "duration": { + "type": "integer", + "description": "A time in seconds to wait (when `type=wait`). Can be 60, 300, 900, 1800, 3600\n" + }, + "important": { + "type": "boolean", + "description": "Boolean value which indicates if a rule is “important”\n" + }, + "position": { + "type": "integer", + "description": "Personal notification rules execute one after another starting from position=0. A new escalation policy created with a position of an existing escalation policy will move the old one (and all following) down on the list.\n" + }, + "type": { + "type": "string", + "description": "The type of notification rule. Can be wait, notify*by*slack, notify*by*msteams, notify*by*sms, notify*by*phone*call, notify*by*telegram, notify*by*email, notify*by*mobile*app, notify*by*mobile*app*critical. NOTE: `notify_by_msteams` is only available for Grafana Cloud customers.\n" + }, + "userId": { + "type": "string", + "description": "User ID\n" + } + }, + "required": [ + "important", + "type", + "userId" + ], + "inputProperties": { + "duration": { + "type": "integer", + "description": "A time in seconds to wait (when `type=wait`). Can be 60, 300, 900, 1800, 3600\n" + }, + "important": { + "type": "boolean", + "description": "Boolean value which indicates if a rule is “important”\n" + }, + "position": { + "type": "integer", + "description": "Personal notification rules execute one after another starting from position=0. A new escalation policy created with a position of an existing escalation policy will move the old one (and all following) down on the list.\n" + }, + "type": { + "type": "string", + "description": "The type of notification rule. Can be wait, notify*by*slack, notify*by*msteams, notify*by*sms, notify*by*phone*call, notify*by*telegram, notify*by*email, notify*by*mobile*app, notify*by*mobile*app*critical. NOTE: `notify_by_msteams` is only available for Grafana Cloud customers.\n" + }, + "userId": { + "type": "string", + "description": "User ID\n" + } + }, + "requiredInputs": [ + "type", + "userId" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering UserNotificationRule resources.\n", + "properties": { + "duration": { + "type": "integer", + "description": "A time in seconds to wait (when `type=wait`). Can be 60, 300, 900, 1800, 3600\n" + }, + "important": { + "type": "boolean", + "description": "Boolean value which indicates if a rule is “important”\n" + }, + "position": { + "type": "integer", + "description": "Personal notification rules execute one after another starting from position=0. A new escalation policy created with a position of an existing escalation policy will move the old one (and all following) down on the list.\n" + }, + "type": { + "type": "string", + "description": "The type of notification rule. Can be wait, notify*by*slack, notify*by*msteams, notify*by*sms, notify*by*phone*call, notify*by*telegram, notify*by*email, notify*by*mobile*app, notify*by*mobile*app*critical. NOTE: `notify_by_msteams` is only available for Grafana Cloud customers.\n" + }, + "userId": { + "type": "string", + "description": "User ID\n" + } + }, + "type": "object" + }, + "aliases": [ + { + "type": "grafana:index/oncallUserNotificationRule:OncallUserNotificationRule" + } + ] + }, "grafana:oss/annotation:Annotation": { "description": "* [Official documentation](https://grafana.com/docs/grafana/latest/dashboards/build-dashboards/annotate-visualizations/)\n* [HTTP API](https://grafana.com/docs/grafana/latest/developers/http_api/annotations/)\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as grafana from \"@pulumiverse/grafana\";\n\nconst test = new grafana.oss.Annotation(\"test\", {text: \"basic text\"});\n```\n```python\nimport pulumi\nimport pulumiverse_grafana as grafana\n\ntest = grafana.oss.Annotation(\"test\", text=\"basic text\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Grafana = Pulumiverse.Grafana;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var test = new Grafana.Oss.Annotation(\"test\", new()\n {\n Text = \"basic text\",\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-grafana/sdk/go/grafana/oss\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := oss.NewAnnotation(ctx, \"test\", \u0026oss.AnnotationArgs{\n\t\t\tText: pulumi.String(\"basic text\"),\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.grafana.oss.Annotation;\nimport com.pulumi.grafana.oss.AnnotationArgs;\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 test = new Annotation(\"test\", AnnotationArgs.builder()\n .text(\"basic text\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n test:\n type: grafana:oss:Annotation\n properties:\n text: basic text\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n```sh\n$ pulumi import grafana:oss/annotation:Annotation name \"{{ id }}\"\n```\n\n```sh\n$ pulumi import grafana:oss/annotation:Annotation name \"{{ orgID }}:{{ id }}\"\n```\n\n", "properties": { diff --git a/provider/resources.go b/provider/resources.go index 4af5079a..a65f105c 100644 --- a/provider/resources.go +++ b/provider/resources.go @@ -260,85 +260,6 @@ func Provider() tfbridge.ProviderInfo { }, }, - // Cloud - "grafana_cloud_access_policy": { - Tok: grafanaResource(cloudMod, "AccessPolicy"), - Aliases: []tfbridge.AliasInfo{ - { - Type: grafanaResourceAlias(grafanaMod, "CloudAccessPolicy"), - }, - }, - Docs: &tfbridge.DocInfo{ - Source: "cloud_access_policy.md", - }, - }, - "grafana_cloud_access_policy_token": { - Tok: grafanaResource(cloudMod, "AccessPolicyToken"), - Aliases: []tfbridge.AliasInfo{ - { - Type: grafanaResourceAlias(grafanaMod, "CloudAccessPolicyToken"), - }, - }, - Docs: &tfbridge.DocInfo{ - Source: "cloud_access_policy_token.md", - }, - }, - "grafana_cloud_org_member": { - Tok: grafanaResource(cloudMod, "OrgMember"), - Aliases: []tfbridge.AliasInfo{ - { - Type: grafanaResourceAlias(grafanaMod, "CloudOrgMember"), - }, - }, - Docs: &tfbridge.DocInfo{ - Source: "cloud_org_member.md", - }, - }, - "grafana_cloud_plugin_installation": { - Tok: grafanaResource(cloudMod, "PluginInstallation"), - Aliases: []tfbridge.AliasInfo{ - { - Type: grafanaResourceAlias(grafanaMod, "CloudPluginInstallation"), - }, - }, - Docs: &tfbridge.DocInfo{ - Source: "cloud_plugin_installation.md", - }, - }, - "grafana_cloud_stack": { - Tok: grafanaResource(cloudMod, "Stack"), - Aliases: []tfbridge.AliasInfo{ - { - Type: grafanaResourceAlias(grafanaMod, "CloudStack"), - }, - }, - Docs: &tfbridge.DocInfo{ - Source: "cloud_stack.md", - }, - }, - "grafana_cloud_stack_service_account": { - Tok: grafanaResource(cloudMod, "StackServiceAccount"), - Aliases: []tfbridge.AliasInfo{ - { - Type: grafanaResourceAlias(grafanaMod, "CloudStackServiceAccount"), - }, - }, - Docs: &tfbridge.DocInfo{ - Source: "cloud_stack_service_account.md", - }, - }, - "grafana_cloud_stack_service_account_token": { - Tok: grafanaResource(cloudMod, "StackServiceAccountToken"), - Aliases: []tfbridge.AliasInfo{ - { - Type: grafanaResourceAlias(grafanaMod, "CloudStackServiceAccountToken"), - }, - }, - Docs: &tfbridge.DocInfo{ - Source: "cloud_stack_service_account_token.md", - }, - }, - // Enterprise "grafana_data_source_permission": { Tok: grafanaResource(enterpriseMod, "DataSourcePermission"), @@ -651,120 +572,6 @@ func Provider() tfbridge.ProviderInfo { }, }, - // Machine Learning - "grafana_machine_learning_holiday": { - Tok: grafanaResource(mlMod, "Holiday"), - Aliases: []tfbridge.AliasInfo{ - { - Type: grafanaResourceAlias(grafanaMod, "MachineLearningHoliday"), - }, - }, - Docs: &tfbridge.DocInfo{ - Source: "machine_learning_holiday.md", - }, - }, - "grafana_machine_learning_job": { - Tok: grafanaResource(mlMod, "Job"), - Aliases: []tfbridge.AliasInfo{ - { - Type: grafanaResourceAlias(grafanaMod, "MachineLearningJob"), - }, - }, - Docs: &tfbridge.DocInfo{ - Source: "machine_learning_job.md", - }, - }, - "grafana_machine_learning_outlier_detector": { - Tok: grafanaResource(mlMod, "OutlierDetector"), - Aliases: []tfbridge.AliasInfo{ - { - Type: grafanaResourceAlias(grafanaMod, "MachineLearningOutlierDetector"), - }, - }, - Docs: &tfbridge.DocInfo{ - Source: "machine_learning_outlier_detector.md", - }, - }, - - // OnCall - "grafana_oncall_escalation": { - Tok: grafanaResource(oncallMod, "Escalation"), - Aliases: []tfbridge.AliasInfo{ - { - Type: grafanaResourceAlias(grafanaMod, "OncallEscalation"), - }, - }, - Docs: &tfbridge.DocInfo{ - Source: "oncall_escalation.md", - }, - }, - "grafana_oncall_escalation_chain": { - Tok: grafanaResource(oncallMod, "EscalationChain"), - Aliases: []tfbridge.AliasInfo{ - { - Type: grafanaResourceAlias(grafanaMod, "OncallEscalationChain"), - }, - }, - Docs: &tfbridge.DocInfo{ - Source: "oncall_escalation_chain.md", - }, - }, - "grafana_oncall_integration": { - Tok: grafanaResource(oncallMod, "Integration"), - Aliases: []tfbridge.AliasInfo{ - { - Type: grafanaResourceAlias(grafanaMod, "OncallIntegration"), - }, - }, - Docs: &tfbridge.DocInfo{ - Source: "oncall_integration.md", - }, - }, - "grafana_oncall_on_call_shift": { - Tok: grafanaResource(oncallMod, "OnCallShift"), - Aliases: []tfbridge.AliasInfo{ - { - Type: grafanaResourceAlias(grafanaMod, "OncallOnCallShift"), - }, - }, - Docs: &tfbridge.DocInfo{ - Source: "oncall_on_call_shift.md", - }, - }, - "grafana_oncall_outgoing_webhook": { - Tok: grafanaResource(oncallMod, "OutgoingWebhook"), - Aliases: []tfbridge.AliasInfo{ - { - Type: grafanaResourceAlias(grafanaMod, "OncallOutgoingWebhook"), - }, - }, - Docs: &tfbridge.DocInfo{ - Source: "oncall_outgoing_webhook.md", - }, - }, - "grafana_oncall_route": { - Tok: grafanaResource(oncallMod, "Route"), - Aliases: []tfbridge.AliasInfo{ - { - Type: grafanaResourceAlias(grafanaMod, "OncallRoute"), - }, - }, - Docs: &tfbridge.DocInfo{ - Source: "oncall_route.md", - }, - }, - "grafana_oncall_schedule": { - Tok: grafanaResource(oncallMod, "Schedule"), - Aliases: []tfbridge.AliasInfo{ - { - Type: grafanaResourceAlias(grafanaMod, "OncallSchedule"), - }, - }, - Docs: &tfbridge.DocInfo{ - Source: "oncall_schedule.md", - }, - }, - // SLO "grafana_slo": { Tok: grafanaResource(sloMod, "SLO"), @@ -777,65 +584,8 @@ func Provider() tfbridge.ProviderInfo { Source: "slo.md", }, }, - - // Synthetic Monitoring - "grafana_synthetic_monitoring_check": { - Tok: grafanaResource(syntheticMonitoringMod, "Check"), - Aliases: []tfbridge.AliasInfo{ - { - Type: grafanaResourceAlias(grafanaMod, "SyntheticMonitoringCheck"), - }, - }, - Docs: &tfbridge.DocInfo{ - Source: "synthetic_monitoring_check.md", - }, - }, - "grafana_synthetic_monitoring_installation": { - Tok: grafanaResource(syntheticMonitoringMod, "Installation"), - Aliases: []tfbridge.AliasInfo{ - { - Type: grafanaResourceAlias(grafanaMod, "SyntheticMonitoringInstallation"), - }, - }, - Docs: &tfbridge.DocInfo{ - Source: "synthetic_monitoring_installation.md", - }, - }, - "grafana_synthetic_monitoring_probe": { - Tok: grafanaResource(syntheticMonitoringMod, "Probe"), - Aliases: []tfbridge.AliasInfo{ - { - Type: grafanaResourceAlias(grafanaMod, "SyntheticMonitoringProbe"), - }, - }, - Docs: &tfbridge.DocInfo{ - Source: "synthetic_monitoring_probe.md", - }, - }, }, DataSources: map[string]*tfbridge.DataSourceInfo{ - // Alerting - - // Cloud - "grafana_cloud_ips": { - Tok: grafanaDataSource(cloudMod, "getIps"), - Docs: &tfbridge.DocInfo{ - Source: "cloud_ips.md", - }, - }, - "grafana_cloud_organization": { - Tok: grafanaDataSource(cloudMod, "getOrganization"), - Docs: &tfbridge.DocInfo{ - Source: "cloud_organization.md", - }, - }, - "grafana_cloud_stack": { - Tok: grafanaDataSource(cloudMod, "getStack"), - Docs: &tfbridge.DocInfo{ - Source: "cloud_stack.md", - }, - }, - // Enterprise "grafana_role": { Tok: grafanaDataSource(enterpriseMod, "getRole"), @@ -918,58 +668,6 @@ func Provider() tfbridge.ProviderInfo { }, }, - // Machine Learning - - // OnCall - "grafana_oncall_escalation_chain": { - Tok: grafanaDataSource(oncallMod, "getEscalationChain"), - Docs: &tfbridge.DocInfo{ - Source: "oncall_escalation_chain.md", - }, - }, - "grafana_oncall_integration": { - Tok: grafanaDataSource(oncallMod, "getIntegration"), - Docs: &tfbridge.DocInfo{ - Source: "oncall_integration.md", - }, - }, - "grafana_oncall_outgoing_webhook": { - Tok: grafanaDataSource(oncallMod, "getOutgoingWebhook"), - Docs: &tfbridge.DocInfo{ - Source: "oncall_outgoing_webhook.md", - }, - }, - "grafana_oncall_schedule": { - Tok: grafanaDataSource(oncallMod, "getSchedule"), - Docs: &tfbridge.DocInfo{ - Source: "oncall_schedule.md", - }, - }, - "grafana_oncall_slack_channel": { - Tok: grafanaDataSource(oncallMod, "getSlackChannel"), - Docs: &tfbridge.DocInfo{ - Source: "oncall_slack_channel.md", - }, - }, - "grafana_oncall_team": { - Tok: grafanaDataSource(oncallMod, "getTeam"), - Docs: &tfbridge.DocInfo{ - Source: "oncall_team.md", - }, - }, - "grafana_oncall_user": { - Tok: grafanaDataSource(oncallMod, "getUser"), - Docs: &tfbridge.DocInfo{ - Source: "oncall_user.md", - }, - }, - "grafana_oncall_user_group": { - Tok: grafanaDataSource(oncallMod, "getUserGroup"), - Docs: &tfbridge.DocInfo{ - Source: "oncall_user_group.md", - }, - }, - // SLO "grafana_slos": { Tok: grafanaDataSource(sloMod, "getSlos"), @@ -977,20 +675,6 @@ func Provider() tfbridge.ProviderInfo { Source: "slos.md", }, }, - - // Synthetic Monitoring - "grafana_synthetic_monitoring_probe": { - Tok: grafanaDataSource(syntheticMonitoringMod, "getProbe"), - Docs: &tfbridge.DocInfo{ - Source: "synthetic_monitoring_probe.md", - }, - }, - "grafana_synthetic_monitoring_probes": { - Tok: grafanaDataSource(syntheticMonitoringMod, "getProbes"), - Docs: &tfbridge.DocInfo{ - Source: "synthetic_monitoring_probes.md", - }, - }, }, JavaScript: &tfbridge.JavaScriptInfo{ PackageName: "@pulumiverse/grafana", @@ -1037,10 +721,24 @@ func Provider() tfbridge.ProviderInfo { MetadataInfo: tfbridge.NewProviderMetadata(metadata), } - prov.MustComputeTokens(tks.SingleModule("grafana_", grafanaMod, tks.MakeStandard(grafanaPkg))) - + prov.MustComputeTokens( + tks.MappedModules( + "grafana_", + "index", + map[string]string{ + "alerting": alertingMod, + "cloud": cloudMod, + "enterprise": enterpriseMod, + "machine_learning": mlMod, + "oncall": oncallMod, + "oss": ossMod, + "slo": sloMod, + "synthetic_monitoring": syntheticMonitoringMod, + }, + tks.MakeStandard(grafanaPkg), + ), + ) prov.SetAutonaming(255, "-") - prov.MustApplyAutoAliases() return prov diff --git a/sdk/dotnet/CloudAccessPolicy.cs b/sdk/dotnet/CloudAccessPolicy.cs index 9a8cce6c..ec59e2a9 100644 --- a/sdk/dotnet/CloudAccessPolicy.cs +++ b/sdk/dotnet/CloudAccessPolicy.cs @@ -154,10 +154,6 @@ private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? { Version = Utilities.Version, PluginDownloadURL = "github://api.github.com/pulumiverse", - Aliases = - { - new global::Pulumi.Alias { Type = "grafana:index/cloudAccessPolicy:CloudAccessPolicy" }, - }, }; var merged = CustomResourceOptions.Merge(defaultOptions, options); // Override the ID if one was specified for consistency with other language SDKs. diff --git a/sdk/dotnet/CloudAccessPolicyToken.cs b/sdk/dotnet/CloudAccessPolicyToken.cs index c55a472d..7d845eed 100644 --- a/sdk/dotnet/CloudAccessPolicyToken.cs +++ b/sdk/dotnet/CloudAccessPolicyToken.cs @@ -154,10 +154,6 @@ private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? { Version = Utilities.Version, PluginDownloadURL = "github://api.github.com/pulumiverse", - Aliases = - { - new global::Pulumi.Alias { Type = "grafana:index/cloudAccessPolicyToken:CloudAccessPolicyToken" }, - }, AdditionalSecretOutputs = { "token", diff --git a/sdk/dotnet/CloudOrgMember.cs b/sdk/dotnet/CloudOrgMember.cs index d93a8b36..bd0d3bcf 100644 --- a/sdk/dotnet/CloudOrgMember.cs +++ b/sdk/dotnet/CloudOrgMember.cs @@ -71,10 +71,6 @@ private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? { Version = Utilities.Version, PluginDownloadURL = "github://api.github.com/pulumiverse", - Aliases = - { - new global::Pulumi.Alias { Type = "grafana:index/cloudOrgMember:CloudOrgMember" }, - }, }; var merged = CustomResourceOptions.Merge(defaultOptions, options); // Override the ID if one was specified for consistency with other language SDKs. diff --git a/sdk/dotnet/CloudPluginInstallation.cs b/sdk/dotnet/CloudPluginInstallation.cs index efa8f110..bd816977 100644 --- a/sdk/dotnet/CloudPluginInstallation.cs +++ b/sdk/dotnet/CloudPluginInstallation.cs @@ -93,10 +93,6 @@ private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? { Version = Utilities.Version, PluginDownloadURL = "github://api.github.com/pulumiverse", - Aliases = - { - new global::Pulumi.Alias { Type = "grafana:index/cloudPluginInstallation:CloudPluginInstallation" }, - }, }; var merged = CustomResourceOptions.Merge(defaultOptions, options); // Override the ID if one was specified for consistency with other language SDKs. diff --git a/sdk/dotnet/CloudStack.cs b/sdk/dotnet/CloudStack.cs index 545fe7ee..6a686c89 100644 --- a/sdk/dotnet/CloudStack.cs +++ b/sdk/dotnet/CloudStack.cs @@ -269,10 +269,6 @@ private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? { Version = Utilities.Version, PluginDownloadURL = "github://api.github.com/pulumiverse", - Aliases = - { - new global::Pulumi.Alias { Type = "grafana:index/cloudStack:CloudStack" }, - }, }; var merged = CustomResourceOptions.Merge(defaultOptions, options); // Override the ID if one was specified for consistency with other language SDKs. diff --git a/sdk/dotnet/CloudStackServiceAccount.cs b/sdk/dotnet/CloudStackServiceAccount.cs index db3f3e62..b50b5e47 100644 --- a/sdk/dotnet/CloudStackServiceAccount.cs +++ b/sdk/dotnet/CloudStackServiceAccount.cs @@ -98,10 +98,6 @@ private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? { Version = Utilities.Version, PluginDownloadURL = "github://api.github.com/pulumiverse", - Aliases = - { - new global::Pulumi.Alias { Type = "grafana:index/cloudStackServiceAccount:CloudStackServiceAccount" }, - }, }; var merged = CustomResourceOptions.Merge(defaultOptions, options); // Override the ID if one was specified for consistency with other language SDKs. diff --git a/sdk/dotnet/CloudStackServiceAccountToken.cs b/sdk/dotnet/CloudStackServiceAccountToken.cs index 42580cff..51cfdc6d 100644 --- a/sdk/dotnet/CloudStackServiceAccountToken.cs +++ b/sdk/dotnet/CloudStackServiceAccountToken.cs @@ -101,10 +101,6 @@ private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? { Version = Utilities.Version, PluginDownloadURL = "github://api.github.com/pulumiverse", - Aliases = - { - new global::Pulumi.Alias { Type = "grafana:index/cloudStackServiceAccountToken:CloudStackServiceAccountToken" }, - }, AdditionalSecretOutputs = { "key", diff --git a/sdk/dotnet/MachineLearningHoliday.cs b/sdk/dotnet/MachineLearningHoliday.cs index 0d59cd36..056bbc5b 100644 --- a/sdk/dotnet/MachineLearningHoliday.cs +++ b/sdk/dotnet/MachineLearningHoliday.cs @@ -79,10 +79,6 @@ private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? { Version = Utilities.Version, PluginDownloadURL = "github://api.github.com/pulumiverse", - Aliases = - { - new global::Pulumi.Alias { Type = "grafana:index/machineLearningHoliday:MachineLearningHoliday" }, - }, }; var merged = CustomResourceOptions.Merge(defaultOptions, options); // Override the ID if one was specified for consistency with other language SDKs. diff --git a/sdk/dotnet/MachineLearningJob.cs b/sdk/dotnet/MachineLearningJob.cs index 9a3aaf03..25dc2959 100644 --- a/sdk/dotnet/MachineLearningJob.cs +++ b/sdk/dotnet/MachineLearningJob.cs @@ -113,10 +113,6 @@ private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? { Version = Utilities.Version, PluginDownloadURL = "github://api.github.com/pulumiverse", - Aliases = - { - new global::Pulumi.Alias { Type = "grafana:index/machineLearningJob:MachineLearningJob" }, - }, }; var merged = CustomResourceOptions.Merge(defaultOptions, options); // Override the ID if one was specified for consistency with other language SDKs. diff --git a/sdk/dotnet/MachineLearningOutlierDetector.cs b/sdk/dotnet/MachineLearningOutlierDetector.cs index b29dc6e4..4d506eb8 100644 --- a/sdk/dotnet/MachineLearningOutlierDetector.cs +++ b/sdk/dotnet/MachineLearningOutlierDetector.cs @@ -99,10 +99,6 @@ private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? { Version = Utilities.Version, PluginDownloadURL = "github://api.github.com/pulumiverse", - Aliases = - { - new global::Pulumi.Alias { Type = "grafana:index/machineLearningOutlierDetector:MachineLearningOutlierDetector" }, - }, }; var merged = CustomResourceOptions.Merge(defaultOptions, options); // Override the ID if one was specified for consistency with other language SDKs. diff --git a/sdk/dotnet/OnCall/UserNotificationRule.cs b/sdk/dotnet/OnCall/UserNotificationRule.cs new file mode 100644 index 00000000..d66d3657 --- /dev/null +++ b/sdk/dotnet/OnCall/UserNotificationRule.cs @@ -0,0 +1,262 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; +using Pulumi; + +namespace Pulumiverse.Grafana.OnCall +{ + /// + /// * [HTTP API](https://grafana.com/docs/oncall/latest/oncall-api-reference/personal_notification_rules/) + /// + /// **Note**: you must be running Grafana OnCall >= v1.8.0 to use this resource. + /// + /// ## Example Usage + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Grafana = Pulumi.Grafana; + /// using Grafana = Pulumiverse.Grafana; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var myUser = Grafana.OnCall.GetUser.Invoke(new() + /// { + /// Username = "my_username", + /// }); + /// + /// var myUserStep1 = new Grafana.OnCall.UserNotificationRule("my_user_step_1", new() + /// { + /// UserId = myUser.Apply(getUserResult => getUserResult.Id), + /// Position = 0, + /// Type = "notify_by_mobile_app", + /// }); + /// + /// var myUserStep2 = new Grafana.OnCall.UserNotificationRule("my_user_step_2", new() + /// { + /// UserId = myUser.Apply(getUserResult => getUserResult.Id), + /// Position = 1, + /// Duration = 600, + /// Type = "wait", + /// }); + /// + /// var myUserStep3 = new Grafana.OnCall.UserNotificationRule("my_user_step_3", new() + /// { + /// UserId = myUser.Apply(getUserResult => getUserResult.Id), + /// Position = 2, + /// Type = "notify_by_phone_call", + /// }); + /// + /// var myUserStep4 = new Grafana.OnCall.UserNotificationRule("my_user_step_4", new() + /// { + /// UserId = myUser.Apply(getUserResult => getUserResult.Id), + /// Position = 3, + /// Duration = 300, + /// Type = "wait", + /// }); + /// + /// var myUserStep5 = new Grafana.OnCall.UserNotificationRule("my_user_step_5", new() + /// { + /// UserId = myUser.Apply(getUserResult => getUserResult.Id), + /// Position = 4, + /// Type = "notify_by_slack", + /// }); + /// + /// var myUserImportantStep1 = new Grafana.OnCall.UserNotificationRule("my_user_important_step_1", new() + /// { + /// UserId = myUser.Apply(getUserResult => getUserResult.Id), + /// Important = true, + /// Position = 0, + /// Type = "notify_by_mobile_app_critical", + /// }); + /// + /// var myUserImportantStep2 = new Grafana.OnCall.UserNotificationRule("my_user_important_step_2", new() + /// { + /// UserId = myUser.Apply(getUserResult => getUserResult.Id), + /// Important = true, + /// Position = 1, + /// Duration = 300, + /// Type = "wait", + /// }); + /// + /// var myUserImportantStep3 = new Grafana.OnCall.UserNotificationRule("my_user_important_step_3", new() + /// { + /// UserId = myUser.Apply(getUserResult => getUserResult.Id), + /// Important = true, + /// Position = 2, + /// Type = "notify_by_mobile_app_critical", + /// }); + /// + /// }); + /// ``` + /// + /// ## Import + /// + /// ```sh + /// $ pulumi import grafana:onCall/userNotificationRule:UserNotificationRule name "{{ id }}" + /// ``` + /// + [GrafanaResourceType("grafana:onCall/userNotificationRule:UserNotificationRule")] + public partial class UserNotificationRule : global::Pulumi.CustomResource + { + /// + /// A time in seconds to wait (when `type=wait`). Can be 60, 300, 900, 1800, 3600 + /// + [Output("duration")] + public Output Duration { get; private set; } = null!; + + /// + /// Boolean value which indicates if a rule is “important” + /// + [Output("important")] + public Output Important { get; private set; } = null!; + + /// + /// Personal notification rules execute one after another starting from position=0. A new escalation policy created with a position of an existing escalation policy will move the old one (and all following) down on the list. + /// + [Output("position")] + public Output Position { get; private set; } = null!; + + /// + /// The type of notification rule. Can be wait, notify*by*slack, notify*by*msteams, notify*by*sms, notify*by*phone*call, notify*by*telegram, notify*by*email, notify*by*mobile*app, notify*by*mobile*app*critical. NOTE: `notify_by_msteams` is only available for Grafana Cloud customers. + /// + [Output("type")] + public Output Type { get; private set; } = null!; + + /// + /// User ID + /// + [Output("userId")] + public Output UserId { get; private set; } = null!; + + + /// + /// Create a UserNotificationRule resource with the given unique name, arguments, and options. + /// + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public UserNotificationRule(string name, UserNotificationRuleArgs args, CustomResourceOptions? options = null) + : base("grafana:onCall/userNotificationRule:UserNotificationRule", name, args ?? new UserNotificationRuleArgs(), MakeResourceOptions(options, "")) + { + } + + private UserNotificationRule(string name, Input id, UserNotificationRuleState? state = null, CustomResourceOptions? options = null) + : base("grafana:onCall/userNotificationRule:UserNotificationRule", name, state, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + PluginDownloadURL = "github://api.github.com/pulumiverse", + Aliases = + { + new global::Pulumi.Alias { Type = "grafana:index/oncallUserNotificationRule:OncallUserNotificationRule" }, + }, + }; + var merged = CustomResourceOptions.Merge(defaultOptions, options); + // Override the ID if one was specified for consistency with other language SDKs. + merged.Id = id ?? merged.Id; + return merged; + } + /// + /// Get an existing UserNotificationRule resource's state with the given name, ID, and optional extra + /// properties used to qualify the lookup. + /// + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// Any extra arguments used during the lookup. + /// A bag of options that control this resource's behavior + public static UserNotificationRule Get(string name, Input id, UserNotificationRuleState? state = null, CustomResourceOptions? options = null) + { + return new UserNotificationRule(name, id, state, options); + } + } + + public sealed class UserNotificationRuleArgs : global::Pulumi.ResourceArgs + { + /// + /// A time in seconds to wait (when `type=wait`). Can be 60, 300, 900, 1800, 3600 + /// + [Input("duration")] + public Input? Duration { get; set; } + + /// + /// Boolean value which indicates if a rule is “important” + /// + [Input("important")] + public Input? Important { get; set; } + + /// + /// Personal notification rules execute one after another starting from position=0. A new escalation policy created with a position of an existing escalation policy will move the old one (and all following) down on the list. + /// + [Input("position")] + public Input? Position { get; set; } + + /// + /// The type of notification rule. Can be wait, notify*by*slack, notify*by*msteams, notify*by*sms, notify*by*phone*call, notify*by*telegram, notify*by*email, notify*by*mobile*app, notify*by*mobile*app*critical. NOTE: `notify_by_msteams` is only available for Grafana Cloud customers. + /// + [Input("type", required: true)] + public Input Type { get; set; } = null!; + + /// + /// User ID + /// + [Input("userId", required: true)] + public Input UserId { get; set; } = null!; + + public UserNotificationRuleArgs() + { + } + public static new UserNotificationRuleArgs Empty => new UserNotificationRuleArgs(); + } + + public sealed class UserNotificationRuleState : global::Pulumi.ResourceArgs + { + /// + /// A time in seconds to wait (when `type=wait`). Can be 60, 300, 900, 1800, 3600 + /// + [Input("duration")] + public Input? Duration { get; set; } + + /// + /// Boolean value which indicates if a rule is “important” + /// + [Input("important")] + public Input? Important { get; set; } + + /// + /// Personal notification rules execute one after another starting from position=0. A new escalation policy created with a position of an existing escalation policy will move the old one (and all following) down on the list. + /// + [Input("position")] + public Input? Position { get; set; } + + /// + /// The type of notification rule. Can be wait, notify*by*slack, notify*by*msteams, notify*by*sms, notify*by*phone*call, notify*by*telegram, notify*by*email, notify*by*mobile*app, notify*by*mobile*app*critical. NOTE: `notify_by_msteams` is only available for Grafana Cloud customers. + /// + [Input("type")] + public Input? Type { get; set; } + + /// + /// User ID + /// + [Input("userId")] + public Input? UserId { get; set; } + + public UserNotificationRuleState() + { + } + public static new UserNotificationRuleState Empty => new UserNotificationRuleState(); + } +} diff --git a/sdk/dotnet/OncallEscalation.cs b/sdk/dotnet/OncallEscalation.cs index c1534d12..69c0bd5b 100644 --- a/sdk/dotnet/OncallEscalation.cs +++ b/sdk/dotnet/OncallEscalation.cs @@ -126,10 +126,6 @@ private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? { Version = Utilities.Version, PluginDownloadURL = "github://api.github.com/pulumiverse", - Aliases = - { - new global::Pulumi.Alias { Type = "grafana:index/oncallEscalation:OncallEscalation" }, - }, }; var merged = CustomResourceOptions.Merge(defaultOptions, options); // Override the ID if one was specified for consistency with other language SDKs. diff --git a/sdk/dotnet/OncallEscalationChain.cs b/sdk/dotnet/OncallEscalationChain.cs index 4e799fd4..a5bf4c2c 100644 --- a/sdk/dotnet/OncallEscalationChain.cs +++ b/sdk/dotnet/OncallEscalationChain.cs @@ -77,10 +77,6 @@ private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? { Version = Utilities.Version, PluginDownloadURL = "github://api.github.com/pulumiverse", - Aliases = - { - new global::Pulumi.Alias { Type = "grafana:index/oncallEscalationChain:OncallEscalationChain" }, - }, }; var merged = CustomResourceOptions.Merge(defaultOptions, options); // Override the ID if one was specified for consistency with other language SDKs. diff --git a/sdk/dotnet/OncallIntegration.cs b/sdk/dotnet/OncallIntegration.cs index f60afbce..6a9b1864 100644 --- a/sdk/dotnet/OncallIntegration.cs +++ b/sdk/dotnet/OncallIntegration.cs @@ -125,10 +125,6 @@ private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? { Version = Utilities.Version, PluginDownloadURL = "github://api.github.com/pulumiverse", - Aliases = - { - new global::Pulumi.Alias { Type = "grafana:index/oncallIntegration:OncallIntegration" }, - }, }; var merged = CustomResourceOptions.Merge(defaultOptions, options); // Override the ID if one was specified for consistency with other language SDKs. diff --git a/sdk/dotnet/OncallOnCallShift.cs b/sdk/dotnet/OncallOnCallShift.cs index 10217373..4440ff48 100644 --- a/sdk/dotnet/OncallOnCallShift.cs +++ b/sdk/dotnet/OncallOnCallShift.cs @@ -143,10 +143,6 @@ private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? { Version = Utilities.Version, PluginDownloadURL = "github://api.github.com/pulumiverse", - Aliases = - { - new global::Pulumi.Alias { Type = "grafana:index/oncallOnCallShift:OncallOnCallShift" }, - }, }; var merged = CustomResourceOptions.Merge(defaultOptions, options); // Override the ID if one was specified for consistency with other language SDKs. diff --git a/sdk/dotnet/OncallOutgoingWebhook.cs b/sdk/dotnet/OncallOutgoingWebhook.cs index 2cfea884..79dc6a86 100644 --- a/sdk/dotnet/OncallOutgoingWebhook.cs +++ b/sdk/dotnet/OncallOutgoingWebhook.cs @@ -150,10 +150,6 @@ private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? { Version = Utilities.Version, PluginDownloadURL = "github://api.github.com/pulumiverse", - Aliases = - { - new global::Pulumi.Alias { Type = "grafana:index/oncallOutgoingWebhook:OncallOutgoingWebhook" }, - }, AdditionalSecretOutputs = { "authorizationHeader", diff --git a/sdk/dotnet/OncallRoute.cs b/sdk/dotnet/OncallRoute.cs index 5c52636a..4c912875 100644 --- a/sdk/dotnet/OncallRoute.cs +++ b/sdk/dotnet/OncallRoute.cs @@ -149,10 +149,6 @@ private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? { Version = Utilities.Version, PluginDownloadURL = "github://api.github.com/pulumiverse", - Aliases = - { - new global::Pulumi.Alias { Type = "grafana:index/oncallRoute:OncallRoute" }, - }, }; var merged = CustomResourceOptions.Merge(defaultOptions, options); // Override the ID if one was specified for consistency with other language SDKs. diff --git a/sdk/dotnet/OncallSchedule.cs b/sdk/dotnet/OncallSchedule.cs index 9112b312..7ade9dc6 100644 --- a/sdk/dotnet/OncallSchedule.cs +++ b/sdk/dotnet/OncallSchedule.cs @@ -101,10 +101,6 @@ private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? { Version = Utilities.Version, PluginDownloadURL = "github://api.github.com/pulumiverse", - Aliases = - { - new global::Pulumi.Alias { Type = "grafana:index/oncallSchedule:OncallSchedule" }, - }, }; var merged = CustomResourceOptions.Merge(defaultOptions, options); // Override the ID if one was specified for consistency with other language SDKs. diff --git a/sdk/dotnet/OncallUserNotificationRule.cs b/sdk/dotnet/OncallUserNotificationRule.cs index 3617e1a9..4ad649cf 100644 --- a/sdk/dotnet/OncallUserNotificationRule.cs +++ b/sdk/dotnet/OncallUserNotificationRule.cs @@ -31,14 +31,14 @@ namespace Pulumiverse.Grafana /// Username = "my_username", /// }); /// - /// var myUserStep1 = new Grafana.OncallUserNotificationRule("my_user_step_1", new() + /// var myUserStep1 = new Grafana.OnCall.UserNotificationRule("my_user_step_1", new() /// { /// UserId = myUser.Apply(getUserResult => getUserResult.Id), /// Position = 0, /// Type = "notify_by_mobile_app", /// }); /// - /// var myUserStep2 = new Grafana.OncallUserNotificationRule("my_user_step_2", new() + /// var myUserStep2 = new Grafana.OnCall.UserNotificationRule("my_user_step_2", new() /// { /// UserId = myUser.Apply(getUserResult => getUserResult.Id), /// Position = 1, @@ -46,14 +46,14 @@ namespace Pulumiverse.Grafana /// Type = "wait", /// }); /// - /// var myUserStep3 = new Grafana.OncallUserNotificationRule("my_user_step_3", new() + /// var myUserStep3 = new Grafana.OnCall.UserNotificationRule("my_user_step_3", new() /// { /// UserId = myUser.Apply(getUserResult => getUserResult.Id), /// Position = 2, /// Type = "notify_by_phone_call", /// }); /// - /// var myUserStep4 = new Grafana.OncallUserNotificationRule("my_user_step_4", new() + /// var myUserStep4 = new Grafana.OnCall.UserNotificationRule("my_user_step_4", new() /// { /// UserId = myUser.Apply(getUserResult => getUserResult.Id), /// Position = 3, @@ -61,14 +61,14 @@ namespace Pulumiverse.Grafana /// Type = "wait", /// }); /// - /// var myUserStep5 = new Grafana.OncallUserNotificationRule("my_user_step_5", new() + /// var myUserStep5 = new Grafana.OnCall.UserNotificationRule("my_user_step_5", new() /// { /// UserId = myUser.Apply(getUserResult => getUserResult.Id), /// Position = 4, /// Type = "notify_by_slack", /// }); /// - /// var myUserImportantStep1 = new Grafana.OncallUserNotificationRule("my_user_important_step_1", new() + /// var myUserImportantStep1 = new Grafana.OnCall.UserNotificationRule("my_user_important_step_1", new() /// { /// UserId = myUser.Apply(getUserResult => getUserResult.Id), /// Important = true, @@ -76,7 +76,7 @@ namespace Pulumiverse.Grafana /// Type = "notify_by_mobile_app_critical", /// }); /// - /// var myUserImportantStep2 = new Grafana.OncallUserNotificationRule("my_user_important_step_2", new() + /// var myUserImportantStep2 = new Grafana.OnCall.UserNotificationRule("my_user_important_step_2", new() /// { /// UserId = myUser.Apply(getUserResult => getUserResult.Id), /// Important = true, @@ -85,7 +85,7 @@ namespace Pulumiverse.Grafana /// Type = "wait", /// }); /// - /// var myUserImportantStep3 = new Grafana.OncallUserNotificationRule("my_user_important_step_3", new() + /// var myUserImportantStep3 = new Grafana.OnCall.UserNotificationRule("my_user_important_step_3", new() /// { /// UserId = myUser.Apply(getUserResult => getUserResult.Id), /// Important = true, @@ -102,6 +102,7 @@ namespace Pulumiverse.Grafana /// $ pulumi import grafana:index/oncallUserNotificationRule:OncallUserNotificationRule name "{{ id }}" /// ``` /// + [Obsolete(@"grafana.index/oncallusernotificationrule.OncallUserNotificationRule has been deprecated in favor of grafana.oncall/usernotificationrule.UserNotificationRule")] [GrafanaResourceType("grafana:index/oncallUserNotificationRule:OncallUserNotificationRule")] public partial class OncallUserNotificationRule : global::Pulumi.CustomResource { diff --git a/sdk/dotnet/SyntheticMonitoringCheck.cs b/sdk/dotnet/SyntheticMonitoringCheck.cs index 7e353d67..37560e37 100644 --- a/sdk/dotnet/SyntheticMonitoringCheck.cs +++ b/sdk/dotnet/SyntheticMonitoringCheck.cs @@ -668,10 +668,6 @@ private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? { Version = Utilities.Version, PluginDownloadURL = "github://api.github.com/pulumiverse", - Aliases = - { - new global::Pulumi.Alias { Type = "grafana:index/syntheticMonitoringCheck:SyntheticMonitoringCheck" }, - }, }; var merged = CustomResourceOptions.Merge(defaultOptions, options); // Override the ID if one was specified for consistency with other language SDKs. diff --git a/sdk/dotnet/SyntheticMonitoringInstallation.cs b/sdk/dotnet/SyntheticMonitoringInstallation.cs index 4fb5a818..ccfcef13 100644 --- a/sdk/dotnet/SyntheticMonitoringInstallation.cs +++ b/sdk/dotnet/SyntheticMonitoringInstallation.cs @@ -139,10 +139,6 @@ private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? { Version = Utilities.Version, PluginDownloadURL = "github://api.github.com/pulumiverse", - Aliases = - { - new global::Pulumi.Alias { Type = "grafana:index/syntheticMonitoringInstallation:SyntheticMonitoringInstallation" }, - }, AdditionalSecretOutputs = { "metricsPublisherKey", diff --git a/sdk/dotnet/SyntheticMonitoringProbe.cs b/sdk/dotnet/SyntheticMonitoringProbe.cs index 55e93ada..f412a6a3 100644 --- a/sdk/dotnet/SyntheticMonitoringProbe.cs +++ b/sdk/dotnet/SyntheticMonitoringProbe.cs @@ -135,10 +135,6 @@ private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? { Version = Utilities.Version, PluginDownloadURL = "github://api.github.com/pulumiverse", - Aliases = - { - new global::Pulumi.Alias { Type = "grafana:index/syntheticMonitoringProbe:SyntheticMonitoringProbe" }, - }, AdditionalSecretOutputs = { "authToken", diff --git a/sdk/go/grafana/cloudAccessPolicy.go b/sdk/go/grafana/cloudAccessPolicy.go index e27d20b2..7046bbec 100644 --- a/sdk/go/grafana/cloudAccessPolicy.go +++ b/sdk/go/grafana/cloudAccessPolicy.go @@ -123,12 +123,6 @@ func NewCloudAccessPolicy(ctx *pulumi.Context, if args.Scopes == nil { return nil, errors.New("invalid value for required argument 'Scopes'") } - aliases := pulumi.Aliases([]pulumi.Alias{ - { - Type: pulumi.String("grafana:index/cloudAccessPolicy:CloudAccessPolicy"), - }, - }) - opts = append(opts, aliases) opts = internal.PkgResourceDefaultOpts(opts) var resource CloudAccessPolicy err := ctx.RegisterResource("grafana:index/cloudAccessPolicy:CloudAccessPolicy", name, args, &resource, opts...) diff --git a/sdk/go/grafana/cloudAccessPolicyToken.go b/sdk/go/grafana/cloudAccessPolicyToken.go index d523b0a5..d012e9a8 100644 --- a/sdk/go/grafana/cloudAccessPolicyToken.go +++ b/sdk/go/grafana/cloudAccessPolicyToken.go @@ -120,12 +120,6 @@ func NewCloudAccessPolicyToken(ctx *pulumi.Context, if args.Region == nil { return nil, errors.New("invalid value for required argument 'Region'") } - aliases := pulumi.Aliases([]pulumi.Alias{ - { - Type: pulumi.String("grafana:index/cloudAccessPolicyToken:CloudAccessPolicyToken"), - }, - }) - opts = append(opts, aliases) secrets := pulumi.AdditionalSecretOutputs([]string{ "token", }) diff --git a/sdk/go/grafana/cloudOrgMember.go b/sdk/go/grafana/cloudOrgMember.go index 7a1a8301..6a5abe5e 100644 --- a/sdk/go/grafana/cloudOrgMember.go +++ b/sdk/go/grafana/cloudOrgMember.go @@ -50,12 +50,6 @@ func NewCloudOrgMember(ctx *pulumi.Context, if args.User == nil { return nil, errors.New("invalid value for required argument 'User'") } - aliases := pulumi.Aliases([]pulumi.Alias{ - { - Type: pulumi.String("grafana:index/cloudOrgMember:CloudOrgMember"), - }, - }) - opts = append(opts, aliases) opts = internal.PkgResourceDefaultOpts(opts) var resource CloudOrgMember err := ctx.RegisterResource("grafana:index/cloudOrgMember:CloudOrgMember", name, args, &resource, opts...) diff --git a/sdk/go/grafana/cloudPluginInstallation.go b/sdk/go/grafana/cloudPluginInstallation.go index 14e1b73e..abb9409a 100644 --- a/sdk/go/grafana/cloudPluginInstallation.go +++ b/sdk/go/grafana/cloudPluginInstallation.go @@ -84,12 +84,6 @@ func NewCloudPluginInstallation(ctx *pulumi.Context, if args.Version == nil { return nil, errors.New("invalid value for required argument 'Version'") } - aliases := pulumi.Aliases([]pulumi.Alias{ - { - Type: pulumi.String("grafana:index/cloudPluginInstallation:CloudPluginInstallation"), - }, - }) - opts = append(opts, aliases) opts = internal.PkgResourceDefaultOpts(opts) var resource CloudPluginInstallation err := ctx.RegisterResource("grafana:index/cloudPluginInstallation:CloudPluginInstallation", name, args, &resource, opts...) diff --git a/sdk/go/grafana/cloudStack.go b/sdk/go/grafana/cloudStack.go index 3b10b88f..1a873c3f 100644 --- a/sdk/go/grafana/cloudStack.go +++ b/sdk/go/grafana/cloudStack.go @@ -136,12 +136,6 @@ func NewCloudStack(ctx *pulumi.Context, if args.Slug == nil { return nil, errors.New("invalid value for required argument 'Slug'") } - aliases := pulumi.Aliases([]pulumi.Alias{ - { - Type: pulumi.String("grafana:index/cloudStack:CloudStack"), - }, - }) - opts = append(opts, aliases) opts = internal.PkgResourceDefaultOpts(opts) var resource CloudStack err := ctx.RegisterResource("grafana:index/cloudStack:CloudStack", name, args, &resource, opts...) diff --git a/sdk/go/grafana/cloudStackServiceAccount.go b/sdk/go/grafana/cloudStackServiceAccount.go index eb3ab795..d0c6977a 100644 --- a/sdk/go/grafana/cloudStackServiceAccount.go +++ b/sdk/go/grafana/cloudStackServiceAccount.go @@ -84,12 +84,6 @@ func NewCloudStackServiceAccount(ctx *pulumi.Context, if args.StackSlug == nil { return nil, errors.New("invalid value for required argument 'StackSlug'") } - aliases := pulumi.Aliases([]pulumi.Alias{ - { - Type: pulumi.String("grafana:index/cloudStackServiceAccount:CloudStackServiceAccount"), - }, - }) - opts = append(opts, aliases) opts = internal.PkgResourceDefaultOpts(opts) var resource CloudStackServiceAccount err := ctx.RegisterResource("grafana:index/cloudStackServiceAccount:CloudStackServiceAccount", name, args, &resource, opts...) diff --git a/sdk/go/grafana/cloudStackServiceAccountToken.go b/sdk/go/grafana/cloudStackServiceAccountToken.go index 58e123d9..d896f91e 100644 --- a/sdk/go/grafana/cloudStackServiceAccountToken.go +++ b/sdk/go/grafana/cloudStackServiceAccountToken.go @@ -85,12 +85,6 @@ func NewCloudStackServiceAccountToken(ctx *pulumi.Context, if args.StackSlug == nil { return nil, errors.New("invalid value for required argument 'StackSlug'") } - aliases := pulumi.Aliases([]pulumi.Alias{ - { - Type: pulumi.String("grafana:index/cloudStackServiceAccountToken:CloudStackServiceAccountToken"), - }, - }) - opts = append(opts, aliases) secrets := pulumi.AdditionalSecretOutputs([]string{ "key", }) diff --git a/sdk/go/grafana/machineLearningHoliday.go b/sdk/go/grafana/machineLearningHoliday.go index d3ebda3f..4e9a8407 100644 --- a/sdk/go/grafana/machineLearningHoliday.go +++ b/sdk/go/grafana/machineLearningHoliday.go @@ -44,12 +44,6 @@ func NewMachineLearningHoliday(ctx *pulumi.Context, args = &MachineLearningHolidayArgs{} } - aliases := pulumi.Aliases([]pulumi.Alias{ - { - Type: pulumi.String("grafana:index/machineLearningHoliday:MachineLearningHoliday"), - }, - }) - opts = append(opts, aliases) opts = internal.PkgResourceDefaultOpts(opts) var resource MachineLearningHoliday err := ctx.RegisterResource("grafana:index/machineLearningHoliday:MachineLearningHoliday", name, args, &resource, opts...) diff --git a/sdk/go/grafana/machineLearningJob.go b/sdk/go/grafana/machineLearningJob.go index 4889098a..e0585cf2 100644 --- a/sdk/go/grafana/machineLearningJob.go +++ b/sdk/go/grafana/machineLearningJob.go @@ -67,12 +67,6 @@ func NewMachineLearningJob(ctx *pulumi.Context, if args.QueryParams == nil { return nil, errors.New("invalid value for required argument 'QueryParams'") } - aliases := pulumi.Aliases([]pulumi.Alias{ - { - Type: pulumi.String("grafana:index/machineLearningJob:MachineLearningJob"), - }, - }) - opts = append(opts, aliases) opts = internal.PkgResourceDefaultOpts(opts) var resource MachineLearningJob err := ctx.RegisterResource("grafana:index/machineLearningJob:MachineLearningJob", name, args, &resource, opts...) diff --git a/sdk/go/grafana/machineLearningOutlierDetector.go b/sdk/go/grafana/machineLearningOutlierDetector.go index 3896a0e4..7631078b 100644 --- a/sdk/go/grafana/machineLearningOutlierDetector.go +++ b/sdk/go/grafana/machineLearningOutlierDetector.go @@ -68,12 +68,6 @@ func NewMachineLearningOutlierDetector(ctx *pulumi.Context, if args.QueryParams == nil { return nil, errors.New("invalid value for required argument 'QueryParams'") } - aliases := pulumi.Aliases([]pulumi.Alias{ - { - Type: pulumi.String("grafana:index/machineLearningOutlierDetector:MachineLearningOutlierDetector"), - }, - }) - opts = append(opts, aliases) opts = internal.PkgResourceDefaultOpts(opts) var resource MachineLearningOutlierDetector err := ctx.RegisterResource("grafana:index/machineLearningOutlierDetector:MachineLearningOutlierDetector", name, args, &resource, opts...) diff --git a/sdk/go/grafana/oncall/init.go b/sdk/go/grafana/oncall/init.go index 875ace1e..e04201b9 100644 --- a/sdk/go/grafana/oncall/init.go +++ b/sdk/go/grafana/oncall/init.go @@ -35,6 +35,8 @@ func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi r = &Route{} case "grafana:onCall/schedule:Schedule": r = &Schedule{} + case "grafana:onCall/userNotificationRule:UserNotificationRule": + r = &UserNotificationRule{} default: return nil, fmt.Errorf("unknown resource type: %s", typ) } @@ -83,4 +85,9 @@ func init() { "onCall/schedule", &module{version}, ) + pulumi.RegisterResourceModule( + "grafana", + "onCall/userNotificationRule", + &module{version}, + ) } diff --git a/sdk/go/grafana/oncall/userNotificationRule.go b/sdk/go/grafana/oncall/userNotificationRule.go new file mode 100644 index 00000000..ab33f2f4 --- /dev/null +++ b/sdk/go/grafana/oncall/userNotificationRule.go @@ -0,0 +1,392 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package oncall + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + "github.com/pulumiverse/pulumi-grafana/sdk/go/grafana/internal" +) + +// * [HTTP API](https://grafana.com/docs/oncall/latest/oncall-api-reference/personal_notification_rules/) +// +// **Note**: you must be running Grafana OnCall >= v1.8.0 to use this resource. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// "github.com/pulumiverse/pulumi-grafana/sdk/go/grafana/onCall" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// myUser, err := onCall.GetUser(ctx, &oncall.GetUserArgs{ +// Username: "my_username", +// }, nil) +// if err != nil { +// return err +// } +// _, err = onCall.NewUserNotificationRule(ctx, "my_user_step_1", &onCall.UserNotificationRuleArgs{ +// UserId: pulumi.String(myUser.Id), +// Position: pulumi.Int(0), +// Type: pulumi.String("notify_by_mobile_app"), +// }) +// if err != nil { +// return err +// } +// _, err = onCall.NewUserNotificationRule(ctx, "my_user_step_2", &onCall.UserNotificationRuleArgs{ +// UserId: pulumi.String(myUser.Id), +// Position: pulumi.Int(1), +// Duration: pulumi.Int(600), +// Type: pulumi.String("wait"), +// }) +// if err != nil { +// return err +// } +// _, err = onCall.NewUserNotificationRule(ctx, "my_user_step_3", &onCall.UserNotificationRuleArgs{ +// UserId: pulumi.String(myUser.Id), +// Position: pulumi.Int(2), +// Type: pulumi.String("notify_by_phone_call"), +// }) +// if err != nil { +// return err +// } +// _, err = onCall.NewUserNotificationRule(ctx, "my_user_step_4", &onCall.UserNotificationRuleArgs{ +// UserId: pulumi.String(myUser.Id), +// Position: pulumi.Int(3), +// Duration: pulumi.Int(300), +// Type: pulumi.String("wait"), +// }) +// if err != nil { +// return err +// } +// _, err = onCall.NewUserNotificationRule(ctx, "my_user_step_5", &onCall.UserNotificationRuleArgs{ +// UserId: pulumi.String(myUser.Id), +// Position: pulumi.Int(4), +// Type: pulumi.String("notify_by_slack"), +// }) +// if err != nil { +// return err +// } +// _, err = onCall.NewUserNotificationRule(ctx, "my_user_important_step_1", &onCall.UserNotificationRuleArgs{ +// UserId: pulumi.String(myUser.Id), +// Important: pulumi.Bool(true), +// Position: pulumi.Int(0), +// Type: pulumi.String("notify_by_mobile_app_critical"), +// }) +// if err != nil { +// return err +// } +// _, err = onCall.NewUserNotificationRule(ctx, "my_user_important_step_2", &onCall.UserNotificationRuleArgs{ +// UserId: pulumi.String(myUser.Id), +// Important: pulumi.Bool(true), +// Position: pulumi.Int(1), +// Duration: pulumi.Int(300), +// Type: pulumi.String("wait"), +// }) +// if err != nil { +// return err +// } +// _, err = onCall.NewUserNotificationRule(ctx, "my_user_important_step_3", &onCall.UserNotificationRuleArgs{ +// UserId: pulumi.String(myUser.Id), +// Important: pulumi.Bool(true), +// Position: pulumi.Int(2), +// Type: pulumi.String("notify_by_mobile_app_critical"), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// ```sh +// $ pulumi import grafana:onCall/userNotificationRule:UserNotificationRule name "{{ id }}" +// ``` +type UserNotificationRule struct { + pulumi.CustomResourceState + + // A time in seconds to wait (when `type=wait`). Can be 60, 300, 900, 1800, 3600 + Duration pulumi.IntPtrOutput `pulumi:"duration"` + // Boolean value which indicates if a rule is “important” + Important pulumi.BoolOutput `pulumi:"important"` + // Personal notification rules execute one after another starting from position=0. A new escalation policy created with a position of an existing escalation policy will move the old one (and all following) down on the list. + Position pulumi.IntPtrOutput `pulumi:"position"` + // The type of notification rule. Can be wait, notify*by*slack, notify*by*msteams, notify*by*sms, notify*by*phone*call, notify*by*telegram, notify*by*email, notify*by*mobile*app, notify*by*mobile*app*critical. NOTE: `notifyByMsteams` is only available for Grafana Cloud customers. + Type pulumi.StringOutput `pulumi:"type"` + // User ID + UserId pulumi.StringOutput `pulumi:"userId"` +} + +// NewUserNotificationRule registers a new resource with the given unique name, arguments, and options. +func NewUserNotificationRule(ctx *pulumi.Context, + name string, args *UserNotificationRuleArgs, opts ...pulumi.ResourceOption) (*UserNotificationRule, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.Type == nil { + return nil, errors.New("invalid value for required argument 'Type'") + } + if args.UserId == nil { + return nil, errors.New("invalid value for required argument 'UserId'") + } + aliases := pulumi.Aliases([]pulumi.Alias{ + { + Type: pulumi.String("grafana:index/oncallUserNotificationRule:OncallUserNotificationRule"), + }, + }) + opts = append(opts, aliases) + opts = internal.PkgResourceDefaultOpts(opts) + var resource UserNotificationRule + err := ctx.RegisterResource("grafana:onCall/userNotificationRule:UserNotificationRule", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetUserNotificationRule gets an existing UserNotificationRule resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetUserNotificationRule(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *UserNotificationRuleState, opts ...pulumi.ResourceOption) (*UserNotificationRule, error) { + var resource UserNotificationRule + err := ctx.ReadResource("grafana:onCall/userNotificationRule:UserNotificationRule", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering UserNotificationRule resources. +type userNotificationRuleState struct { + // A time in seconds to wait (when `type=wait`). Can be 60, 300, 900, 1800, 3600 + Duration *int `pulumi:"duration"` + // Boolean value which indicates if a rule is “important” + Important *bool `pulumi:"important"` + // Personal notification rules execute one after another starting from position=0. A new escalation policy created with a position of an existing escalation policy will move the old one (and all following) down on the list. + Position *int `pulumi:"position"` + // The type of notification rule. Can be wait, notify*by*slack, notify*by*msteams, notify*by*sms, notify*by*phone*call, notify*by*telegram, notify*by*email, notify*by*mobile*app, notify*by*mobile*app*critical. NOTE: `notifyByMsteams` is only available for Grafana Cloud customers. + Type *string `pulumi:"type"` + // User ID + UserId *string `pulumi:"userId"` +} + +type UserNotificationRuleState struct { + // A time in seconds to wait (when `type=wait`). Can be 60, 300, 900, 1800, 3600 + Duration pulumi.IntPtrInput + // Boolean value which indicates if a rule is “important” + Important pulumi.BoolPtrInput + // Personal notification rules execute one after another starting from position=0. A new escalation policy created with a position of an existing escalation policy will move the old one (and all following) down on the list. + Position pulumi.IntPtrInput + // The type of notification rule. Can be wait, notify*by*slack, notify*by*msteams, notify*by*sms, notify*by*phone*call, notify*by*telegram, notify*by*email, notify*by*mobile*app, notify*by*mobile*app*critical. NOTE: `notifyByMsteams` is only available for Grafana Cloud customers. + Type pulumi.StringPtrInput + // User ID + UserId pulumi.StringPtrInput +} + +func (UserNotificationRuleState) ElementType() reflect.Type { + return reflect.TypeOf((*userNotificationRuleState)(nil)).Elem() +} + +type userNotificationRuleArgs struct { + // A time in seconds to wait (when `type=wait`). Can be 60, 300, 900, 1800, 3600 + Duration *int `pulumi:"duration"` + // Boolean value which indicates if a rule is “important” + Important *bool `pulumi:"important"` + // Personal notification rules execute one after another starting from position=0. A new escalation policy created with a position of an existing escalation policy will move the old one (and all following) down on the list. + Position *int `pulumi:"position"` + // The type of notification rule. Can be wait, notify*by*slack, notify*by*msteams, notify*by*sms, notify*by*phone*call, notify*by*telegram, notify*by*email, notify*by*mobile*app, notify*by*mobile*app*critical. NOTE: `notifyByMsteams` is only available for Grafana Cloud customers. + Type string `pulumi:"type"` + // User ID + UserId string `pulumi:"userId"` +} + +// The set of arguments for constructing a UserNotificationRule resource. +type UserNotificationRuleArgs struct { + // A time in seconds to wait (when `type=wait`). Can be 60, 300, 900, 1800, 3600 + Duration pulumi.IntPtrInput + // Boolean value which indicates if a rule is “important” + Important pulumi.BoolPtrInput + // Personal notification rules execute one after another starting from position=0. A new escalation policy created with a position of an existing escalation policy will move the old one (and all following) down on the list. + Position pulumi.IntPtrInput + // The type of notification rule. Can be wait, notify*by*slack, notify*by*msteams, notify*by*sms, notify*by*phone*call, notify*by*telegram, notify*by*email, notify*by*mobile*app, notify*by*mobile*app*critical. NOTE: `notifyByMsteams` is only available for Grafana Cloud customers. + Type pulumi.StringInput + // User ID + UserId pulumi.StringInput +} + +func (UserNotificationRuleArgs) ElementType() reflect.Type { + return reflect.TypeOf((*userNotificationRuleArgs)(nil)).Elem() +} + +type UserNotificationRuleInput interface { + pulumi.Input + + ToUserNotificationRuleOutput() UserNotificationRuleOutput + ToUserNotificationRuleOutputWithContext(ctx context.Context) UserNotificationRuleOutput +} + +func (*UserNotificationRule) ElementType() reflect.Type { + return reflect.TypeOf((**UserNotificationRule)(nil)).Elem() +} + +func (i *UserNotificationRule) ToUserNotificationRuleOutput() UserNotificationRuleOutput { + return i.ToUserNotificationRuleOutputWithContext(context.Background()) +} + +func (i *UserNotificationRule) ToUserNotificationRuleOutputWithContext(ctx context.Context) UserNotificationRuleOutput { + return pulumi.ToOutputWithContext(ctx, i).(UserNotificationRuleOutput) +} + +// UserNotificationRuleArrayInput is an input type that accepts UserNotificationRuleArray and UserNotificationRuleArrayOutput values. +// You can construct a concrete instance of `UserNotificationRuleArrayInput` via: +// +// UserNotificationRuleArray{ UserNotificationRuleArgs{...} } +type UserNotificationRuleArrayInput interface { + pulumi.Input + + ToUserNotificationRuleArrayOutput() UserNotificationRuleArrayOutput + ToUserNotificationRuleArrayOutputWithContext(context.Context) UserNotificationRuleArrayOutput +} + +type UserNotificationRuleArray []UserNotificationRuleInput + +func (UserNotificationRuleArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*UserNotificationRule)(nil)).Elem() +} + +func (i UserNotificationRuleArray) ToUserNotificationRuleArrayOutput() UserNotificationRuleArrayOutput { + return i.ToUserNotificationRuleArrayOutputWithContext(context.Background()) +} + +func (i UserNotificationRuleArray) ToUserNotificationRuleArrayOutputWithContext(ctx context.Context) UserNotificationRuleArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(UserNotificationRuleArrayOutput) +} + +// UserNotificationRuleMapInput is an input type that accepts UserNotificationRuleMap and UserNotificationRuleMapOutput values. +// You can construct a concrete instance of `UserNotificationRuleMapInput` via: +// +// UserNotificationRuleMap{ "key": UserNotificationRuleArgs{...} } +type UserNotificationRuleMapInput interface { + pulumi.Input + + ToUserNotificationRuleMapOutput() UserNotificationRuleMapOutput + ToUserNotificationRuleMapOutputWithContext(context.Context) UserNotificationRuleMapOutput +} + +type UserNotificationRuleMap map[string]UserNotificationRuleInput + +func (UserNotificationRuleMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*UserNotificationRule)(nil)).Elem() +} + +func (i UserNotificationRuleMap) ToUserNotificationRuleMapOutput() UserNotificationRuleMapOutput { + return i.ToUserNotificationRuleMapOutputWithContext(context.Background()) +} + +func (i UserNotificationRuleMap) ToUserNotificationRuleMapOutputWithContext(ctx context.Context) UserNotificationRuleMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(UserNotificationRuleMapOutput) +} + +type UserNotificationRuleOutput struct{ *pulumi.OutputState } + +func (UserNotificationRuleOutput) ElementType() reflect.Type { + return reflect.TypeOf((**UserNotificationRule)(nil)).Elem() +} + +func (o UserNotificationRuleOutput) ToUserNotificationRuleOutput() UserNotificationRuleOutput { + return o +} + +func (o UserNotificationRuleOutput) ToUserNotificationRuleOutputWithContext(ctx context.Context) UserNotificationRuleOutput { + return o +} + +// A time in seconds to wait (when `type=wait`). Can be 60, 300, 900, 1800, 3600 +func (o UserNotificationRuleOutput) Duration() pulumi.IntPtrOutput { + return o.ApplyT(func(v *UserNotificationRule) pulumi.IntPtrOutput { return v.Duration }).(pulumi.IntPtrOutput) +} + +// Boolean value which indicates if a rule is “important” +func (o UserNotificationRuleOutput) Important() pulumi.BoolOutput { + return o.ApplyT(func(v *UserNotificationRule) pulumi.BoolOutput { return v.Important }).(pulumi.BoolOutput) +} + +// Personal notification rules execute one after another starting from position=0. A new escalation policy created with a position of an existing escalation policy will move the old one (and all following) down on the list. +func (o UserNotificationRuleOutput) Position() pulumi.IntPtrOutput { + return o.ApplyT(func(v *UserNotificationRule) pulumi.IntPtrOutput { return v.Position }).(pulumi.IntPtrOutput) +} + +// The type of notification rule. Can be wait, notify*by*slack, notify*by*msteams, notify*by*sms, notify*by*phone*call, notify*by*telegram, notify*by*email, notify*by*mobile*app, notify*by*mobile*app*critical. NOTE: `notifyByMsteams` is only available for Grafana Cloud customers. +func (o UserNotificationRuleOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v *UserNotificationRule) pulumi.StringOutput { return v.Type }).(pulumi.StringOutput) +} + +// User ID +func (o UserNotificationRuleOutput) UserId() pulumi.StringOutput { + return o.ApplyT(func(v *UserNotificationRule) pulumi.StringOutput { return v.UserId }).(pulumi.StringOutput) +} + +type UserNotificationRuleArrayOutput struct{ *pulumi.OutputState } + +func (UserNotificationRuleArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*UserNotificationRule)(nil)).Elem() +} + +func (o UserNotificationRuleArrayOutput) ToUserNotificationRuleArrayOutput() UserNotificationRuleArrayOutput { + return o +} + +func (o UserNotificationRuleArrayOutput) ToUserNotificationRuleArrayOutputWithContext(ctx context.Context) UserNotificationRuleArrayOutput { + return o +} + +func (o UserNotificationRuleArrayOutput) Index(i pulumi.IntInput) UserNotificationRuleOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *UserNotificationRule { + return vs[0].([]*UserNotificationRule)[vs[1].(int)] + }).(UserNotificationRuleOutput) +} + +type UserNotificationRuleMapOutput struct{ *pulumi.OutputState } + +func (UserNotificationRuleMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*UserNotificationRule)(nil)).Elem() +} + +func (o UserNotificationRuleMapOutput) ToUserNotificationRuleMapOutput() UserNotificationRuleMapOutput { + return o +} + +func (o UserNotificationRuleMapOutput) ToUserNotificationRuleMapOutputWithContext(ctx context.Context) UserNotificationRuleMapOutput { + return o +} + +func (o UserNotificationRuleMapOutput) MapIndex(k pulumi.StringInput) UserNotificationRuleOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *UserNotificationRule { + return vs[0].(map[string]*UserNotificationRule)[vs[1].(string)] + }).(UserNotificationRuleOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*UserNotificationRuleInput)(nil)).Elem(), &UserNotificationRule{}) + pulumi.RegisterInputType(reflect.TypeOf((*UserNotificationRuleArrayInput)(nil)).Elem(), UserNotificationRuleArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*UserNotificationRuleMapInput)(nil)).Elem(), UserNotificationRuleMap{}) + pulumi.RegisterOutputType(UserNotificationRuleOutput{}) + pulumi.RegisterOutputType(UserNotificationRuleArrayOutput{}) + pulumi.RegisterOutputType(UserNotificationRuleMapOutput{}) +} diff --git a/sdk/go/grafana/oncallEscalation.go b/sdk/go/grafana/oncallEscalation.go index c45c9643..06844420 100644 --- a/sdk/go/grafana/oncallEscalation.go +++ b/sdk/go/grafana/oncallEscalation.go @@ -69,12 +69,6 @@ func NewOncallEscalation(ctx *pulumi.Context, if args.Type == nil { return nil, errors.New("invalid value for required argument 'Type'") } - aliases := pulumi.Aliases([]pulumi.Alias{ - { - Type: pulumi.String("grafana:index/oncallEscalation:OncallEscalation"), - }, - }) - opts = append(opts, aliases) opts = internal.PkgResourceDefaultOpts(opts) var resource OncallEscalation err := ctx.RegisterResource("grafana:index/oncallEscalation:OncallEscalation", name, args, &resource, opts...) diff --git a/sdk/go/grafana/oncallEscalationChain.go b/sdk/go/grafana/oncallEscalationChain.go index ac9e5b05..23155a03 100644 --- a/sdk/go/grafana/oncallEscalationChain.go +++ b/sdk/go/grafana/oncallEscalationChain.go @@ -62,12 +62,6 @@ func NewOncallEscalationChain(ctx *pulumi.Context, args = &OncallEscalationChainArgs{} } - aliases := pulumi.Aliases([]pulumi.Alias{ - { - Type: pulumi.String("grafana:index/oncallEscalationChain:OncallEscalationChain"), - }, - }) - opts = append(opts, aliases) opts = internal.PkgResourceDefaultOpts(opts) var resource OncallEscalationChain err := ctx.RegisterResource("grafana:index/oncallEscalationChain:OncallEscalationChain", name, args, &resource, opts...) diff --git a/sdk/go/grafana/oncallIntegration.go b/sdk/go/grafana/oncallIntegration.go index a23e0b6e..140e7858 100644 --- a/sdk/go/grafana/oncallIntegration.go +++ b/sdk/go/grafana/oncallIntegration.go @@ -98,12 +98,6 @@ func NewOncallIntegration(ctx *pulumi.Context, if args.Type == nil { return nil, errors.New("invalid value for required argument 'Type'") } - aliases := pulumi.Aliases([]pulumi.Alias{ - { - Type: pulumi.String("grafana:index/oncallIntegration:OncallIntegration"), - }, - }) - opts = append(opts, aliases) opts = internal.PkgResourceDefaultOpts(opts) var resource OncallIntegration err := ctx.RegisterResource("grafana:index/oncallIntegration:OncallIntegration", name, args, &resource, opts...) diff --git a/sdk/go/grafana/oncallOnCallShift.go b/sdk/go/grafana/oncallOnCallShift.go index acaaecc2..a87c44a8 100644 --- a/sdk/go/grafana/oncallOnCallShift.go +++ b/sdk/go/grafana/oncallOnCallShift.go @@ -74,12 +74,6 @@ func NewOncallOnCallShift(ctx *pulumi.Context, if args.Type == nil { return nil, errors.New("invalid value for required argument 'Type'") } - aliases := pulumi.Aliases([]pulumi.Alias{ - { - Type: pulumi.String("grafana:index/oncallOnCallShift:OncallOnCallShift"), - }, - }) - opts = append(opts, aliases) opts = internal.PkgResourceDefaultOpts(opts) var resource OncallOnCallShift err := ctx.RegisterResource("grafana:index/oncallOnCallShift:OncallOnCallShift", name, args, &resource, opts...) diff --git a/sdk/go/grafana/oncallOutgoingWebhook.go b/sdk/go/grafana/oncallOutgoingWebhook.go index 796df96d..f86c3616 100644 --- a/sdk/go/grafana/oncallOutgoingWebhook.go +++ b/sdk/go/grafana/oncallOutgoingWebhook.go @@ -91,12 +91,6 @@ func NewOncallOutgoingWebhook(ctx *pulumi.Context, if args.Url == nil { return nil, errors.New("invalid value for required argument 'Url'") } - aliases := pulumi.Aliases([]pulumi.Alias{ - { - Type: pulumi.String("grafana:index/oncallOutgoingWebhook:OncallOutgoingWebhook"), - }, - }) - opts = append(opts, aliases) if args.AuthorizationHeader != nil { args.AuthorizationHeader = pulumi.ToSecret(args.AuthorizationHeader).(pulumi.StringPtrInput) } diff --git a/sdk/go/grafana/oncallRoute.go b/sdk/go/grafana/oncallRoute.go index 6378acf6..8f99ef9c 100644 --- a/sdk/go/grafana/oncallRoute.go +++ b/sdk/go/grafana/oncallRoute.go @@ -122,12 +122,6 @@ func NewOncallRoute(ctx *pulumi.Context, if args.RoutingRegex == nil { return nil, errors.New("invalid value for required argument 'RoutingRegex'") } - aliases := pulumi.Aliases([]pulumi.Alias{ - { - Type: pulumi.String("grafana:index/oncallRoute:OncallRoute"), - }, - }) - opts = append(opts, aliases) opts = internal.PkgResourceDefaultOpts(opts) var resource OncallRoute err := ctx.RegisterResource("grafana:index/oncallRoute:OncallRoute", name, args, &resource, opts...) diff --git a/sdk/go/grafana/oncallSchedule.go b/sdk/go/grafana/oncallSchedule.go index aeb9c73d..dba11df8 100644 --- a/sdk/go/grafana/oncallSchedule.go +++ b/sdk/go/grafana/oncallSchedule.go @@ -54,12 +54,6 @@ func NewOncallSchedule(ctx *pulumi.Context, if args.Type == nil { return nil, errors.New("invalid value for required argument 'Type'") } - aliases := pulumi.Aliases([]pulumi.Alias{ - { - Type: pulumi.String("grafana:index/oncallSchedule:OncallSchedule"), - }, - }) - opts = append(opts, aliases) opts = internal.PkgResourceDefaultOpts(opts) var resource OncallSchedule err := ctx.RegisterResource("grafana:index/oncallSchedule:OncallSchedule", name, args, &resource, opts...) diff --git a/sdk/go/grafana/oncallUserNotificationRule.go b/sdk/go/grafana/oncallUserNotificationRule.go index 93e18df3..47d35a06 100644 --- a/sdk/go/grafana/oncallUserNotificationRule.go +++ b/sdk/go/grafana/oncallUserNotificationRule.go @@ -24,7 +24,6 @@ import ( // import ( // // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" -// "github.com/pulumiverse/pulumi-grafana/sdk/go/grafana" // "github.com/pulumiverse/pulumi-grafana/sdk/go/grafana/onCall" // // ) @@ -37,7 +36,7 @@ import ( // if err != nil { // return err // } -// _, err = grafana.NewOncallUserNotificationRule(ctx, "my_user_step_1", &grafana.OncallUserNotificationRuleArgs{ +// _, err = onCall.NewUserNotificationRule(ctx, "my_user_step_1", &onCall.UserNotificationRuleArgs{ // UserId: pulumi.String(myUser.Id), // Position: pulumi.Int(0), // Type: pulumi.String("notify_by_mobile_app"), @@ -45,7 +44,7 @@ import ( // if err != nil { // return err // } -// _, err = grafana.NewOncallUserNotificationRule(ctx, "my_user_step_2", &grafana.OncallUserNotificationRuleArgs{ +// _, err = onCall.NewUserNotificationRule(ctx, "my_user_step_2", &onCall.UserNotificationRuleArgs{ // UserId: pulumi.String(myUser.Id), // Position: pulumi.Int(1), // Duration: pulumi.Int(600), @@ -54,7 +53,7 @@ import ( // if err != nil { // return err // } -// _, err = grafana.NewOncallUserNotificationRule(ctx, "my_user_step_3", &grafana.OncallUserNotificationRuleArgs{ +// _, err = onCall.NewUserNotificationRule(ctx, "my_user_step_3", &onCall.UserNotificationRuleArgs{ // UserId: pulumi.String(myUser.Id), // Position: pulumi.Int(2), // Type: pulumi.String("notify_by_phone_call"), @@ -62,7 +61,7 @@ import ( // if err != nil { // return err // } -// _, err = grafana.NewOncallUserNotificationRule(ctx, "my_user_step_4", &grafana.OncallUserNotificationRuleArgs{ +// _, err = onCall.NewUserNotificationRule(ctx, "my_user_step_4", &onCall.UserNotificationRuleArgs{ // UserId: pulumi.String(myUser.Id), // Position: pulumi.Int(3), // Duration: pulumi.Int(300), @@ -71,7 +70,7 @@ import ( // if err != nil { // return err // } -// _, err = grafana.NewOncallUserNotificationRule(ctx, "my_user_step_5", &grafana.OncallUserNotificationRuleArgs{ +// _, err = onCall.NewUserNotificationRule(ctx, "my_user_step_5", &onCall.UserNotificationRuleArgs{ // UserId: pulumi.String(myUser.Id), // Position: pulumi.Int(4), // Type: pulumi.String("notify_by_slack"), @@ -79,7 +78,7 @@ import ( // if err != nil { // return err // } -// _, err = grafana.NewOncallUserNotificationRule(ctx, "my_user_important_step_1", &grafana.OncallUserNotificationRuleArgs{ +// _, err = onCall.NewUserNotificationRule(ctx, "my_user_important_step_1", &onCall.UserNotificationRuleArgs{ // UserId: pulumi.String(myUser.Id), // Important: pulumi.Bool(true), // Position: pulumi.Int(0), @@ -88,7 +87,7 @@ import ( // if err != nil { // return err // } -// _, err = grafana.NewOncallUserNotificationRule(ctx, "my_user_important_step_2", &grafana.OncallUserNotificationRuleArgs{ +// _, err = onCall.NewUserNotificationRule(ctx, "my_user_important_step_2", &onCall.UserNotificationRuleArgs{ // UserId: pulumi.String(myUser.Id), // Important: pulumi.Bool(true), // Position: pulumi.Int(1), @@ -98,7 +97,7 @@ import ( // if err != nil { // return err // } -// _, err = grafana.NewOncallUserNotificationRule(ctx, "my_user_important_step_3", &grafana.OncallUserNotificationRuleArgs{ +// _, err = onCall.NewUserNotificationRule(ctx, "my_user_important_step_3", &onCall.UserNotificationRuleArgs{ // UserId: pulumi.String(myUser.Id), // Important: pulumi.Bool(true), // Position: pulumi.Int(2), @@ -118,6 +117,8 @@ import ( // ```sh // $ pulumi import grafana:index/oncallUserNotificationRule:OncallUserNotificationRule name "{{ id }}" // ``` +// +// Deprecated: grafana.index/oncallusernotificationrule.OncallUserNotificationRule has been deprecated in favor of grafana.oncall/usernotificationrule.UserNotificationRule type OncallUserNotificationRule struct { pulumi.CustomResourceState diff --git a/sdk/go/grafana/syntheticMonitoringCheck.go b/sdk/go/grafana/syntheticMonitoringCheck.go index 16a42856..cff44df7 100644 --- a/sdk/go/grafana/syntheticMonitoringCheck.go +++ b/sdk/go/grafana/syntheticMonitoringCheck.go @@ -657,12 +657,6 @@ func NewSyntheticMonitoringCheck(ctx *pulumi.Context, if args.Target == nil { return nil, errors.New("invalid value for required argument 'Target'") } - aliases := pulumi.Aliases([]pulumi.Alias{ - { - Type: pulumi.String("grafana:index/syntheticMonitoringCheck:SyntheticMonitoringCheck"), - }, - }) - opts = append(opts, aliases) opts = internal.PkgResourceDefaultOpts(opts) var resource SyntheticMonitoringCheck err := ctx.RegisterResource("grafana:index/syntheticMonitoringCheck:SyntheticMonitoringCheck", name, args, &resource, opts...) diff --git a/sdk/go/grafana/syntheticMonitoringInstallation.go b/sdk/go/grafana/syntheticMonitoringInstallation.go index 263f24bd..1ceab1b8 100644 --- a/sdk/go/grafana/syntheticMonitoringInstallation.go +++ b/sdk/go/grafana/syntheticMonitoringInstallation.go @@ -129,12 +129,6 @@ func NewSyntheticMonitoringInstallation(ctx *pulumi.Context, if args.StackId == nil { return nil, errors.New("invalid value for required argument 'StackId'") } - aliases := pulumi.Aliases([]pulumi.Alias{ - { - Type: pulumi.String("grafana:index/syntheticMonitoringInstallation:SyntheticMonitoringInstallation"), - }, - }) - opts = append(opts, aliases) if args.MetricsPublisherKey != nil { args.MetricsPublisherKey = pulumi.ToSecret(args.MetricsPublisherKey).(pulumi.StringInput) } diff --git a/sdk/go/grafana/syntheticMonitoringProbe.go b/sdk/go/grafana/syntheticMonitoringProbe.go index b32f8046..868efd07 100644 --- a/sdk/go/grafana/syntheticMonitoringProbe.go +++ b/sdk/go/grafana/syntheticMonitoringProbe.go @@ -101,12 +101,6 @@ func NewSyntheticMonitoringProbe(ctx *pulumi.Context, if args.Region == nil { return nil, errors.New("invalid value for required argument 'Region'") } - aliases := pulumi.Aliases([]pulumi.Alias{ - { - Type: pulumi.String("grafana:index/syntheticMonitoringProbe:SyntheticMonitoringProbe"), - }, - }) - opts = append(opts, aliases) secrets := pulumi.AdditionalSecretOutputs([]string{ "authToken", }) diff --git a/sdk/nodejs/cloudAccessPolicy.ts b/sdk/nodejs/cloudAccessPolicy.ts index 754d99fa..0327992e 100644 --- a/sdk/nodejs/cloudAccessPolicy.ts +++ b/sdk/nodejs/cloudAccessPolicy.ts @@ -163,8 +163,6 @@ export class CloudAccessPolicy extends pulumi.CustomResource { resourceInputs["updatedAt"] = undefined /*out*/; } opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); - const aliasOpts = { aliases: [{ type: "grafana:index/cloudAccessPolicy:CloudAccessPolicy" }] }; - opts = pulumi.mergeOptions(opts, aliasOpts); super(CloudAccessPolicy.__pulumiType, name, resourceInputs, opts); } } diff --git a/sdk/nodejs/cloudAccessPolicyToken.ts b/sdk/nodejs/cloudAccessPolicyToken.ts index e21354ef..ef24dc97 100644 --- a/sdk/nodejs/cloudAccessPolicyToken.ts +++ b/sdk/nodejs/cloudAccessPolicyToken.ts @@ -158,8 +158,6 @@ export class CloudAccessPolicyToken extends pulumi.CustomResource { resourceInputs["updatedAt"] = undefined /*out*/; } opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); - const aliasOpts = { aliases: [{ type: "grafana:index/cloudAccessPolicyToken:CloudAccessPolicyToken" }] }; - opts = pulumi.mergeOptions(opts, aliasOpts); const secretOpts = { additionalSecretOutputs: ["token"] }; opts = pulumi.mergeOptions(opts, secretOpts); super(CloudAccessPolicyToken.__pulumiType, name, resourceInputs, opts); diff --git a/sdk/nodejs/cloudOrgMember.ts b/sdk/nodejs/cloudOrgMember.ts index 381c280e..7fef94df 100644 --- a/sdk/nodejs/cloudOrgMember.ts +++ b/sdk/nodejs/cloudOrgMember.ts @@ -98,8 +98,6 @@ export class CloudOrgMember extends pulumi.CustomResource { resourceInputs["user"] = args ? args.user : undefined; } opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); - const aliasOpts = { aliases: [{ type: "grafana:index/cloudOrgMember:CloudOrgMember" }] }; - opts = pulumi.mergeOptions(opts, aliasOpts); super(CloudOrgMember.__pulumiType, name, resourceInputs, opts); } } diff --git a/sdk/nodejs/cloudPluginInstallation.ts b/sdk/nodejs/cloudPluginInstallation.ts index 6f1f3e5d..9bd98b03 100644 --- a/sdk/nodejs/cloudPluginInstallation.ts +++ b/sdk/nodejs/cloudPluginInstallation.ts @@ -113,8 +113,6 @@ export class CloudPluginInstallation extends pulumi.CustomResource { resourceInputs["version"] = args ? args.version : undefined; } opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); - const aliasOpts = { aliases: [{ type: "grafana:index/cloudPluginInstallation:CloudPluginInstallation" }] }; - opts = pulumi.mergeOptions(opts, aliasOpts); super(CloudPluginInstallation.__pulumiType, name, resourceInputs, opts); } } diff --git a/sdk/nodejs/cloudStack.ts b/sdk/nodejs/cloudStack.ts index 2c7336a3..b33896ad 100644 --- a/sdk/nodejs/cloudStack.ts +++ b/sdk/nodejs/cloudStack.ts @@ -283,8 +283,6 @@ export class CloudStack extends pulumi.CustomResource { resourceInputs["tracesUserId"] = undefined /*out*/; } opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); - const aliasOpts = { aliases: [{ type: "grafana:index/cloudStack:CloudStack" }] }; - opts = pulumi.mergeOptions(opts, aliasOpts); super(CloudStack.__pulumiType, name, resourceInputs, opts); } } diff --git a/sdk/nodejs/cloudStackServiceAccount.ts b/sdk/nodejs/cloudStackServiceAccount.ts index 2fcfee45..facaef75 100644 --- a/sdk/nodejs/cloudStackServiceAccount.ts +++ b/sdk/nodejs/cloudStackServiceAccount.ts @@ -115,8 +115,6 @@ export class CloudStackServiceAccount extends pulumi.CustomResource { resourceInputs["stackSlug"] = args ? args.stackSlug : undefined; } opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); - const aliasOpts = { aliases: [{ type: "grafana:index/cloudStackServiceAccount:CloudStackServiceAccount" }] }; - opts = pulumi.mergeOptions(opts, aliasOpts); super(CloudStackServiceAccount.__pulumiType, name, resourceInputs, opts); } } diff --git a/sdk/nodejs/cloudStackServiceAccountToken.ts b/sdk/nodejs/cloudStackServiceAccountToken.ts index b615e637..c760929e 100644 --- a/sdk/nodejs/cloudStackServiceAccountToken.ts +++ b/sdk/nodejs/cloudStackServiceAccountToken.ts @@ -113,8 +113,6 @@ export class CloudStackServiceAccountToken extends pulumi.CustomResource { resourceInputs["key"] = undefined /*out*/; } opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); - const aliasOpts = { aliases: [{ type: "grafana:index/cloudStackServiceAccountToken:CloudStackServiceAccountToken" }] }; - opts = pulumi.mergeOptions(opts, aliasOpts); const secretOpts = { additionalSecretOutputs: ["key"] }; opts = pulumi.mergeOptions(opts, secretOpts); super(CloudStackServiceAccountToken.__pulumiType, name, resourceInputs, opts); diff --git a/sdk/nodejs/machineLearningHoliday.ts b/sdk/nodejs/machineLearningHoliday.ts index 2865cc94..42f255d5 100644 --- a/sdk/nodejs/machineLearningHoliday.ts +++ b/sdk/nodejs/machineLearningHoliday.ts @@ -99,8 +99,6 @@ export class MachineLearningHoliday extends pulumi.CustomResource { resourceInputs["name"] = args ? args.name : undefined; } opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); - const aliasOpts = { aliases: [{ type: "grafana:index/machineLearningHoliday:MachineLearningHoliday" }] }; - opts = pulumi.mergeOptions(opts, aliasOpts); super(MachineLearningHoliday.__pulumiType, name, resourceInputs, opts); } } diff --git a/sdk/nodejs/machineLearningJob.ts b/sdk/nodejs/machineLearningJob.ts index 1869ef59..46399c5d 100644 --- a/sdk/nodejs/machineLearningJob.ts +++ b/sdk/nodejs/machineLearningJob.ts @@ -143,8 +143,6 @@ export class MachineLearningJob extends pulumi.CustomResource { resourceInputs["trainingWindow"] = args ? args.trainingWindow : undefined; } opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); - const aliasOpts = { aliases: [{ type: "grafana:index/machineLearningJob:MachineLearningJob" }] }; - opts = pulumi.mergeOptions(opts, aliasOpts); super(MachineLearningJob.__pulumiType, name, resourceInputs, opts); } } diff --git a/sdk/nodejs/machineLearningOutlierDetector.ts b/sdk/nodejs/machineLearningOutlierDetector.ts index 47d27fe8..f2241699 100644 --- a/sdk/nodejs/machineLearningOutlierDetector.ts +++ b/sdk/nodejs/machineLearningOutlierDetector.ts @@ -134,8 +134,6 @@ export class MachineLearningOutlierDetector extends pulumi.CustomResource { resourceInputs["queryParams"] = args ? args.queryParams : undefined; } opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); - const aliasOpts = { aliases: [{ type: "grafana:index/machineLearningOutlierDetector:MachineLearningOutlierDetector" }] }; - opts = pulumi.mergeOptions(opts, aliasOpts); super(MachineLearningOutlierDetector.__pulumiType, name, resourceInputs, opts); } } diff --git a/sdk/nodejs/oncall/index.ts b/sdk/nodejs/oncall/index.ts index be60a888..6c77fa71 100644 --- a/sdk/nodejs/oncall/index.ts +++ b/sdk/nodejs/oncall/index.ts @@ -80,6 +80,11 @@ export type Schedule = import("./schedule").Schedule; export const Schedule: typeof import("./schedule").Schedule = null as any; utilities.lazyLoad(exports, ["Schedule"], () => require("./schedule")); +export { UserNotificationRuleArgs, UserNotificationRuleState } from "./userNotificationRule"; +export type UserNotificationRule = import("./userNotificationRule").UserNotificationRule; +export const UserNotificationRule: typeof import("./userNotificationRule").UserNotificationRule = null as any; +utilities.lazyLoad(exports, ["UserNotificationRule"], () => require("./userNotificationRule")); + const _module = { version: utilities.getVersion(), @@ -99,6 +104,8 @@ const _module = { return new Route(name, undefined, { urn }) case "grafana:onCall/schedule:Schedule": return new Schedule(name, undefined, { urn }) + case "grafana:onCall/userNotificationRule:UserNotificationRule": + return new UserNotificationRule(name, undefined, { urn }) default: throw new Error(`unknown resource type ${type}`); } @@ -111,3 +118,4 @@ pulumi.runtime.registerResourceModule("grafana", "onCall/onCallShift", _module) pulumi.runtime.registerResourceModule("grafana", "onCall/outgoingWebhook", _module) pulumi.runtime.registerResourceModule("grafana", "onCall/route", _module) pulumi.runtime.registerResourceModule("grafana", "onCall/schedule", _module) +pulumi.runtime.registerResourceModule("grafana", "onCall/userNotificationRule", _module) diff --git a/sdk/nodejs/oncall/userNotificationRule.ts b/sdk/nodejs/oncall/userNotificationRule.ts new file mode 100644 index 00000000..e6f4144f --- /dev/null +++ b/sdk/nodejs/oncall/userNotificationRule.ts @@ -0,0 +1,214 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "../utilities"; + +/** + * * [HTTP API](https://grafana.com/docs/oncall/latest/oncall-api-reference/personal_notification_rules/) + * + * **Note**: you must be running Grafana OnCall >= v1.8.0 to use this resource. + * + * ## Example Usage + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as grafana from "@pulumi/grafana"; + * import * as grafana from "@pulumiverse/grafana"; + * + * const myUser = grafana.onCall.getUser({ + * username: "my_username", + * }); + * const myUserStep1 = new grafana.oncall.UserNotificationRule("my_user_step_1", { + * userId: myUser.then(myUser => myUser.id), + * position: 0, + * type: "notify_by_mobile_app", + * }); + * const myUserStep2 = new grafana.oncall.UserNotificationRule("my_user_step_2", { + * userId: myUser.then(myUser => myUser.id), + * position: 1, + * duration: 600, + * type: "wait", + * }); + * const myUserStep3 = new grafana.oncall.UserNotificationRule("my_user_step_3", { + * userId: myUser.then(myUser => myUser.id), + * position: 2, + * type: "notify_by_phone_call", + * }); + * const myUserStep4 = new grafana.oncall.UserNotificationRule("my_user_step_4", { + * userId: myUser.then(myUser => myUser.id), + * position: 3, + * duration: 300, + * type: "wait", + * }); + * const myUserStep5 = new grafana.oncall.UserNotificationRule("my_user_step_5", { + * userId: myUser.then(myUser => myUser.id), + * position: 4, + * type: "notify_by_slack", + * }); + * const myUserImportantStep1 = new grafana.oncall.UserNotificationRule("my_user_important_step_1", { + * userId: myUser.then(myUser => myUser.id), + * important: true, + * position: 0, + * type: "notify_by_mobile_app_critical", + * }); + * const myUserImportantStep2 = new grafana.oncall.UserNotificationRule("my_user_important_step_2", { + * userId: myUser.then(myUser => myUser.id), + * important: true, + * position: 1, + * duration: 300, + * type: "wait", + * }); + * const myUserImportantStep3 = new grafana.oncall.UserNotificationRule("my_user_important_step_3", { + * userId: myUser.then(myUser => myUser.id), + * important: true, + * position: 2, + * type: "notify_by_mobile_app_critical", + * }); + * ``` + * + * ## Import + * + * ```sh + * $ pulumi import grafana:onCall/userNotificationRule:UserNotificationRule name "{{ id }}" + * ``` + */ +export class UserNotificationRule extends pulumi.CustomResource { + /** + * Get an existing UserNotificationRule resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state Any extra arguments used during the lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, state?: UserNotificationRuleState, opts?: pulumi.CustomResourceOptions): UserNotificationRule { + return new UserNotificationRule(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'grafana:onCall/userNotificationRule:UserNotificationRule'; + + /** + * Returns true if the given object is an instance of UserNotificationRule. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is UserNotificationRule { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === UserNotificationRule.__pulumiType; + } + + /** + * A time in seconds to wait (when `type=wait`). Can be 60, 300, 900, 1800, 3600 + */ + public readonly duration!: pulumi.Output; + /** + * Boolean value which indicates if a rule is “important” + */ + public readonly important!: pulumi.Output; + /** + * Personal notification rules execute one after another starting from position=0. A new escalation policy created with a position of an existing escalation policy will move the old one (and all following) down on the list. + */ + public readonly position!: pulumi.Output; + /** + * The type of notification rule. Can be wait, notify*by*slack, notify*by*msteams, notify*by*sms, notify*by*phone*call, notify*by*telegram, notify*by*email, notify*by*mobile*app, notify*by*mobile*app*critical. NOTE: `notifyByMsteams` is only available for Grafana Cloud customers. + */ + public readonly type!: pulumi.Output; + /** + * User ID + */ + public readonly userId!: pulumi.Output; + + /** + * Create a UserNotificationRule resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: UserNotificationRuleArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: UserNotificationRuleArgs | UserNotificationRuleState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as UserNotificationRuleState | undefined; + resourceInputs["duration"] = state ? state.duration : undefined; + resourceInputs["important"] = state ? state.important : undefined; + resourceInputs["position"] = state ? state.position : undefined; + resourceInputs["type"] = state ? state.type : undefined; + resourceInputs["userId"] = state ? state.userId : undefined; + } else { + const args = argsOrState as UserNotificationRuleArgs | undefined; + if ((!args || args.type === undefined) && !opts.urn) { + throw new Error("Missing required property 'type'"); + } + if ((!args || args.userId === undefined) && !opts.urn) { + throw new Error("Missing required property 'userId'"); + } + resourceInputs["duration"] = args ? args.duration : undefined; + resourceInputs["important"] = args ? args.important : undefined; + resourceInputs["position"] = args ? args.position : undefined; + resourceInputs["type"] = args ? args.type : undefined; + resourceInputs["userId"] = args ? args.userId : undefined; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + const aliasOpts = { aliases: [{ type: "grafana:index/oncallUserNotificationRule:OncallUserNotificationRule" }] }; + opts = pulumi.mergeOptions(opts, aliasOpts); + super(UserNotificationRule.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering UserNotificationRule resources. + */ +export interface UserNotificationRuleState { + /** + * A time in seconds to wait (when `type=wait`). Can be 60, 300, 900, 1800, 3600 + */ + duration?: pulumi.Input; + /** + * Boolean value which indicates if a rule is “important” + */ + important?: pulumi.Input; + /** + * Personal notification rules execute one after another starting from position=0. A new escalation policy created with a position of an existing escalation policy will move the old one (and all following) down on the list. + */ + position?: pulumi.Input; + /** + * The type of notification rule. Can be wait, notify*by*slack, notify*by*msteams, notify*by*sms, notify*by*phone*call, notify*by*telegram, notify*by*email, notify*by*mobile*app, notify*by*mobile*app*critical. NOTE: `notifyByMsteams` is only available for Grafana Cloud customers. + */ + type?: pulumi.Input; + /** + * User ID + */ + userId?: pulumi.Input; +} + +/** + * The set of arguments for constructing a UserNotificationRule resource. + */ +export interface UserNotificationRuleArgs { + /** + * A time in seconds to wait (when `type=wait`). Can be 60, 300, 900, 1800, 3600 + */ + duration?: pulumi.Input; + /** + * Boolean value which indicates if a rule is “important” + */ + important?: pulumi.Input; + /** + * Personal notification rules execute one after another starting from position=0. A new escalation policy created with a position of an existing escalation policy will move the old one (and all following) down on the list. + */ + position?: pulumi.Input; + /** + * The type of notification rule. Can be wait, notify*by*slack, notify*by*msteams, notify*by*sms, notify*by*phone*call, notify*by*telegram, notify*by*email, notify*by*mobile*app, notify*by*mobile*app*critical. NOTE: `notifyByMsteams` is only available for Grafana Cloud customers. + */ + type: pulumi.Input; + /** + * User ID + */ + userId: pulumi.Input; +} diff --git a/sdk/nodejs/oncallEscalation.ts b/sdk/nodejs/oncallEscalation.ts index e2ac0dcc..2e09a768 100644 --- a/sdk/nodejs/oncallEscalation.ts +++ b/sdk/nodejs/oncallEscalation.ts @@ -153,8 +153,6 @@ export class OncallEscalation extends pulumi.CustomResource { resourceInputs["type"] = args ? args.type : undefined; } opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); - const aliasOpts = { aliases: [{ type: "grafana:index/oncallEscalation:OncallEscalation" }] }; - opts = pulumi.mergeOptions(opts, aliasOpts); super(OncallEscalation.__pulumiType, name, resourceInputs, opts); } } diff --git a/sdk/nodejs/oncallEscalationChain.ts b/sdk/nodejs/oncallEscalationChain.ts index 70762099..55294ecf 100644 --- a/sdk/nodejs/oncallEscalationChain.ts +++ b/sdk/nodejs/oncallEscalationChain.ts @@ -86,8 +86,6 @@ export class OncallEscalationChain extends pulumi.CustomResource { resourceInputs["teamId"] = args ? args.teamId : undefined; } opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); - const aliasOpts = { aliases: [{ type: "grafana:index/oncallEscalationChain:OncallEscalationChain" }] }; - opts = pulumi.mergeOptions(opts, aliasOpts); super(OncallEscalationChain.__pulumiType, name, resourceInputs, opts); } } diff --git a/sdk/nodejs/oncallIntegration.ts b/sdk/nodejs/oncallIntegration.ts index 37996c6e..0de85055 100644 --- a/sdk/nodejs/oncallIntegration.ts +++ b/sdk/nodejs/oncallIntegration.ts @@ -140,8 +140,6 @@ export class OncallIntegration extends pulumi.CustomResource { resourceInputs["link"] = undefined /*out*/; } opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); - const aliasOpts = { aliases: [{ type: "grafana:index/oncallIntegration:OncallIntegration" }] }; - opts = pulumi.mergeOptions(opts, aliasOpts); super(OncallIntegration.__pulumiType, name, resourceInputs, opts); } } diff --git a/sdk/nodejs/oncallOnCallShift.ts b/sdk/nodejs/oncallOnCallShift.ts index 63bf4463..571bffea 100644 --- a/sdk/nodejs/oncallOnCallShift.ts +++ b/sdk/nodejs/oncallOnCallShift.ts @@ -170,8 +170,6 @@ export class OncallOnCallShift extends pulumi.CustomResource { resourceInputs["weekStart"] = args ? args.weekStart : undefined; } opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); - const aliasOpts = { aliases: [{ type: "grafana:index/oncallOnCallShift:OncallOnCallShift" }] }; - opts = pulumi.mergeOptions(opts, aliasOpts); super(OncallOnCallShift.__pulumiType, name, resourceInputs, opts); } } diff --git a/sdk/nodejs/oncallOutgoingWebhook.ts b/sdk/nodejs/oncallOutgoingWebhook.ts index 7b06637b..2f56f941 100644 --- a/sdk/nodejs/oncallOutgoingWebhook.ts +++ b/sdk/nodejs/oncallOutgoingWebhook.ts @@ -164,8 +164,6 @@ export class OncallOutgoingWebhook extends pulumi.CustomResource { resourceInputs["user"] = args ? args.user : undefined; } opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); - const aliasOpts = { aliases: [{ type: "grafana:index/oncallOutgoingWebhook:OncallOutgoingWebhook" }] }; - opts = pulumi.mergeOptions(opts, aliasOpts); const secretOpts = { additionalSecretOutputs: ["authorizationHeader", "password"] }; opts = pulumi.mergeOptions(opts, secretOpts); super(OncallOutgoingWebhook.__pulumiType, name, resourceInputs, opts); diff --git a/sdk/nodejs/oncallRoute.ts b/sdk/nodejs/oncallRoute.ts index dc6c6b61..ecd27317 100644 --- a/sdk/nodejs/oncallRoute.ts +++ b/sdk/nodejs/oncallRoute.ts @@ -163,8 +163,6 @@ export class OncallRoute extends pulumi.CustomResource { resourceInputs["telegram"] = args ? args.telegram : undefined; } opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); - const aliasOpts = { aliases: [{ type: "grafana:index/oncallRoute:OncallRoute" }] }; - opts = pulumi.mergeOptions(opts, aliasOpts); super(OncallRoute.__pulumiType, name, resourceInputs, opts); } } diff --git a/sdk/nodejs/oncallSchedule.ts b/sdk/nodejs/oncallSchedule.ts index 8045e7a8..5e9fb446 100644 --- a/sdk/nodejs/oncallSchedule.ts +++ b/sdk/nodejs/oncallSchedule.ts @@ -124,8 +124,6 @@ export class OncallSchedule extends pulumi.CustomResource { resourceInputs["type"] = args ? args.type : undefined; } opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); - const aliasOpts = { aliases: [{ type: "grafana:index/oncallSchedule:OncallSchedule" }] }; - opts = pulumi.mergeOptions(opts, aliasOpts); super(OncallSchedule.__pulumiType, name, resourceInputs, opts); } } diff --git a/sdk/nodejs/oncallUserNotificationRule.ts b/sdk/nodejs/oncallUserNotificationRule.ts index a2a09822..099097f4 100644 --- a/sdk/nodejs/oncallUserNotificationRule.ts +++ b/sdk/nodejs/oncallUserNotificationRule.ts @@ -19,47 +19,47 @@ import * as utilities from "./utilities"; * const myUser = grafana.onCall.getUser({ * username: "my_username", * }); - * const myUserStep1 = new grafana.OncallUserNotificationRule("my_user_step_1", { + * const myUserStep1 = new grafana.oncall.UserNotificationRule("my_user_step_1", { * userId: myUser.then(myUser => myUser.id), * position: 0, * type: "notify_by_mobile_app", * }); - * const myUserStep2 = new grafana.OncallUserNotificationRule("my_user_step_2", { + * const myUserStep2 = new grafana.oncall.UserNotificationRule("my_user_step_2", { * userId: myUser.then(myUser => myUser.id), * position: 1, * duration: 600, * type: "wait", * }); - * const myUserStep3 = new grafana.OncallUserNotificationRule("my_user_step_3", { + * const myUserStep3 = new grafana.oncall.UserNotificationRule("my_user_step_3", { * userId: myUser.then(myUser => myUser.id), * position: 2, * type: "notify_by_phone_call", * }); - * const myUserStep4 = new grafana.OncallUserNotificationRule("my_user_step_4", { + * const myUserStep4 = new grafana.oncall.UserNotificationRule("my_user_step_4", { * userId: myUser.then(myUser => myUser.id), * position: 3, * duration: 300, * type: "wait", * }); - * const myUserStep5 = new grafana.OncallUserNotificationRule("my_user_step_5", { + * const myUserStep5 = new grafana.oncall.UserNotificationRule("my_user_step_5", { * userId: myUser.then(myUser => myUser.id), * position: 4, * type: "notify_by_slack", * }); - * const myUserImportantStep1 = new grafana.OncallUserNotificationRule("my_user_important_step_1", { + * const myUserImportantStep1 = new grafana.oncall.UserNotificationRule("my_user_important_step_1", { * userId: myUser.then(myUser => myUser.id), * important: true, * position: 0, * type: "notify_by_mobile_app_critical", * }); - * const myUserImportantStep2 = new grafana.OncallUserNotificationRule("my_user_important_step_2", { + * const myUserImportantStep2 = new grafana.oncall.UserNotificationRule("my_user_important_step_2", { * userId: myUser.then(myUser => myUser.id), * important: true, * position: 1, * duration: 300, * type: "wait", * }); - * const myUserImportantStep3 = new grafana.OncallUserNotificationRule("my_user_important_step_3", { + * const myUserImportantStep3 = new grafana.oncall.UserNotificationRule("my_user_important_step_3", { * userId: myUser.then(myUser => myUser.id), * important: true, * position: 2, @@ -72,6 +72,8 @@ import * as utilities from "./utilities"; * ```sh * $ pulumi import grafana:index/oncallUserNotificationRule:OncallUserNotificationRule name "{{ id }}" * ``` + * + * @deprecated grafana.index/oncallusernotificationrule.OncallUserNotificationRule has been deprecated in favor of grafana.oncall/usernotificationrule.UserNotificationRule */ export class OncallUserNotificationRule extends pulumi.CustomResource { /** @@ -84,6 +86,7 @@ export class OncallUserNotificationRule extends pulumi.CustomResource { * @param opts Optional settings to control the behavior of the CustomResource. */ public static get(name: string, id: pulumi.Input, state?: OncallUserNotificationRuleState, opts?: pulumi.CustomResourceOptions): OncallUserNotificationRule { + pulumi.log.warn("OncallUserNotificationRule is deprecated: grafana.index/oncallusernotificationrule.OncallUserNotificationRule has been deprecated in favor of grafana.oncall/usernotificationrule.UserNotificationRule") return new OncallUserNotificationRule(name, state, { ...opts, id: id }); } @@ -129,8 +132,11 @@ export class OncallUserNotificationRule extends pulumi.CustomResource { * @param args The arguments to use to populate this resource's properties. * @param opts A bag of options that control this resource's behavior. */ + /** @deprecated grafana.index/oncallusernotificationrule.OncallUserNotificationRule has been deprecated in favor of grafana.oncall/usernotificationrule.UserNotificationRule */ constructor(name: string, args: OncallUserNotificationRuleArgs, opts?: pulumi.CustomResourceOptions) + /** @deprecated grafana.index/oncallusernotificationrule.OncallUserNotificationRule has been deprecated in favor of grafana.oncall/usernotificationrule.UserNotificationRule */ constructor(name: string, argsOrState?: OncallUserNotificationRuleArgs | OncallUserNotificationRuleState, opts?: pulumi.CustomResourceOptions) { + pulumi.log.warn("OncallUserNotificationRule is deprecated: grafana.index/oncallusernotificationrule.OncallUserNotificationRule has been deprecated in favor of grafana.oncall/usernotificationrule.UserNotificationRule") let resourceInputs: pulumi.Inputs = {}; opts = opts || {}; if (opts.id) { diff --git a/sdk/nodejs/syntheticMonitoringCheck.ts b/sdk/nodejs/syntheticMonitoringCheck.ts index 49e3a1de..f6205a9a 100644 --- a/sdk/nodejs/syntheticMonitoringCheck.ts +++ b/sdk/nodejs/syntheticMonitoringCheck.ts @@ -529,8 +529,6 @@ export class SyntheticMonitoringCheck extends pulumi.CustomResource { resourceInputs["tenantId"] = undefined /*out*/; } opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); - const aliasOpts = { aliases: [{ type: "grafana:index/syntheticMonitoringCheck:SyntheticMonitoringCheck" }] }; - opts = pulumi.mergeOptions(opts, aliasOpts); super(SyntheticMonitoringCheck.__pulumiType, name, resourceInputs, opts); } } diff --git a/sdk/nodejs/syntheticMonitoringInstallation.ts b/sdk/nodejs/syntheticMonitoringInstallation.ts index a75fd56f..6dc3de0b 100644 --- a/sdk/nodejs/syntheticMonitoringInstallation.ts +++ b/sdk/nodejs/syntheticMonitoringInstallation.ts @@ -144,8 +144,6 @@ export class SyntheticMonitoringInstallation extends pulumi.CustomResource { resourceInputs["smAccessToken"] = undefined /*out*/; } opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); - const aliasOpts = { aliases: [{ type: "grafana:index/syntheticMonitoringInstallation:SyntheticMonitoringInstallation" }] }; - opts = pulumi.mergeOptions(opts, aliasOpts); const secretOpts = { additionalSecretOutputs: ["metricsPublisherKey"] }; opts = pulumi.mergeOptions(opts, secretOpts); super(SyntheticMonitoringInstallation.__pulumiType, name, resourceInputs, opts); diff --git a/sdk/nodejs/syntheticMonitoringProbe.ts b/sdk/nodejs/syntheticMonitoringProbe.ts index 5c551768..f06d70b7 100644 --- a/sdk/nodejs/syntheticMonitoringProbe.ts +++ b/sdk/nodejs/syntheticMonitoringProbe.ts @@ -154,8 +154,6 @@ export class SyntheticMonitoringProbe extends pulumi.CustomResource { resourceInputs["tenantId"] = undefined /*out*/; } opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); - const aliasOpts = { aliases: [{ type: "grafana:index/syntheticMonitoringProbe:SyntheticMonitoringProbe" }] }; - opts = pulumi.mergeOptions(opts, aliasOpts); const secretOpts = { additionalSecretOutputs: ["authToken"] }; opts = pulumi.mergeOptions(opts, secretOpts); super(SyntheticMonitoringProbe.__pulumiType, name, resourceInputs, opts); diff --git a/sdk/nodejs/tsconfig.json b/sdk/nodejs/tsconfig.json index 2b3fb437..fbd50bcb 100644 --- a/sdk/nodejs/tsconfig.json +++ b/sdk/nodejs/tsconfig.json @@ -116,6 +116,7 @@ "oncall/outgoingWebhook.ts", "oncall/route.ts", "oncall/schedule.ts", + "oncall/userNotificationRule.ts", "oncallEscalation.ts", "oncallEscalationChain.ts", "oncallIntegration.ts", diff --git a/sdk/python/pulumiverse_grafana/__init__.py b/sdk/python/pulumiverse_grafana/__init__.py index ccc17b08..ea57bf2a 100644 --- a/sdk/python/pulumiverse_grafana/__init__.py +++ b/sdk/python/pulumiverse_grafana/__init__.py @@ -797,6 +797,14 @@ "grafana:onCall/schedule:Schedule": "Schedule" } }, + { + "pkg": "grafana", + "mod": "onCall/userNotificationRule", + "fqn": "pulumiverse_grafana.oncall", + "classes": { + "grafana:onCall/userNotificationRule:UserNotificationRule": "UserNotificationRule" + } + }, { "pkg": "grafana", "mod": "oss/annotation", diff --git a/sdk/python/pulumiverse_grafana/cloud_access_policy.py b/sdk/python/pulumiverse_grafana/cloud_access_policy.py index c270415b..9135487e 100644 --- a/sdk/python/pulumiverse_grafana/cloud_access_policy.py +++ b/sdk/python/pulumiverse_grafana/cloud_access_policy.py @@ -398,8 +398,6 @@ def _internal_init(__self__, __props__.__dict__["created_at"] = None __props__.__dict__["policy_id"] = None __props__.__dict__["updated_at"] = None - alias_opts = pulumi.ResourceOptions(aliases=[pulumi.Alias(type_="grafana:index/cloudAccessPolicy:CloudAccessPolicy")]) - opts = pulumi.ResourceOptions.merge(opts, alias_opts) super(CloudAccessPolicy, __self__).__init__( 'grafana:index/cloudAccessPolicy:CloudAccessPolicy', resource_name, diff --git a/sdk/python/pulumiverse_grafana/cloud_access_policy_token.py b/sdk/python/pulumiverse_grafana/cloud_access_policy_token.py index 192ba2f4..d3a3bea7 100644 --- a/sdk/python/pulumiverse_grafana/cloud_access_policy_token.py +++ b/sdk/python/pulumiverse_grafana/cloud_access_policy_token.py @@ -400,8 +400,6 @@ def _internal_init(__self__, __props__.__dict__["created_at"] = None __props__.__dict__["token"] = None __props__.__dict__["updated_at"] = None - alias_opts = pulumi.ResourceOptions(aliases=[pulumi.Alias(type_="grafana:index/cloudAccessPolicyToken:CloudAccessPolicyToken")]) - opts = pulumi.ResourceOptions.merge(opts, alias_opts) secret_opts = pulumi.ResourceOptions(additional_secret_outputs=["token"]) opts = pulumi.ResourceOptions.merge(opts, secret_opts) super(CloudAccessPolicyToken, __self__).__init__( diff --git a/sdk/python/pulumiverse_grafana/cloud_org_member.py b/sdk/python/pulumiverse_grafana/cloud_org_member.py index a75cdf70..4dd1c41b 100644 --- a/sdk/python/pulumiverse_grafana/cloud_org_member.py +++ b/sdk/python/pulumiverse_grafana/cloud_org_member.py @@ -242,8 +242,6 @@ def _internal_init(__self__, if user is None and not opts.urn: raise TypeError("Missing required property 'user'") __props__.__dict__["user"] = user - alias_opts = pulumi.ResourceOptions(aliases=[pulumi.Alias(type_="grafana:index/cloudOrgMember:CloudOrgMember")]) - opts = pulumi.ResourceOptions.merge(opts, alias_opts) super(CloudOrgMember, __self__).__init__( 'grafana:index/cloudOrgMember:CloudOrgMember', resource_name, diff --git a/sdk/python/pulumiverse_grafana/cloud_plugin_installation.py b/sdk/python/pulumiverse_grafana/cloud_plugin_installation.py index cb218492..6186b048 100644 --- a/sdk/python/pulumiverse_grafana/cloud_plugin_installation.py +++ b/sdk/python/pulumiverse_grafana/cloud_plugin_installation.py @@ -246,8 +246,6 @@ def _internal_init(__self__, if version is None and not opts.urn: raise TypeError("Missing required property 'version'") __props__.__dict__["version"] = version - alias_opts = pulumi.ResourceOptions(aliases=[pulumi.Alias(type_="grafana:index/cloudPluginInstallation:CloudPluginInstallation")]) - opts = pulumi.ResourceOptions.merge(opts, alias_opts) super(CloudPluginInstallation, __self__).__init__( 'grafana:index/cloudPluginInstallation:CloudPluginInstallation', resource_name, diff --git a/sdk/python/pulumiverse_grafana/cloud_stack.py b/sdk/python/pulumiverse_grafana/cloud_stack.py index 695c94e3..97e134c0 100644 --- a/sdk/python/pulumiverse_grafana/cloud_stack.py +++ b/sdk/python/pulumiverse_grafana/cloud_stack.py @@ -906,8 +906,6 @@ def _internal_init(__self__, __props__.__dict__["traces_status"] = None __props__.__dict__["traces_url"] = None __props__.__dict__["traces_user_id"] = None - alias_opts = pulumi.ResourceOptions(aliases=[pulumi.Alias(type_="grafana:index/cloudStack:CloudStack")]) - opts = pulumi.ResourceOptions.merge(opts, alias_opts) super(CloudStack, __self__).__init__( 'grafana:index/cloudStack:CloudStack', resource_name, diff --git a/sdk/python/pulumiverse_grafana/cloud_stack_service_account.py b/sdk/python/pulumiverse_grafana/cloud_stack_service_account.py index 80533045..4ccaadc6 100644 --- a/sdk/python/pulumiverse_grafana/cloud_stack_service_account.py +++ b/sdk/python/pulumiverse_grafana/cloud_stack_service_account.py @@ -276,8 +276,6 @@ def _internal_init(__self__, if stack_slug is None and not opts.urn: raise TypeError("Missing required property 'stack_slug'") __props__.__dict__["stack_slug"] = stack_slug - alias_opts = pulumi.ResourceOptions(aliases=[pulumi.Alias(type_="grafana:index/cloudStackServiceAccount:CloudStackServiceAccount")]) - opts = pulumi.ResourceOptions.merge(opts, alias_opts) super(CloudStackServiceAccount, __self__).__init__( 'grafana:index/cloudStackServiceAccount:CloudStackServiceAccount', resource_name, diff --git a/sdk/python/pulumiverse_grafana/cloud_stack_service_account_token.py b/sdk/python/pulumiverse_grafana/cloud_stack_service_account_token.py index b5adde35..a5592b91 100644 --- a/sdk/python/pulumiverse_grafana/cloud_stack_service_account_token.py +++ b/sdk/python/pulumiverse_grafana/cloud_stack_service_account_token.py @@ -282,8 +282,6 @@ def _internal_init(__self__, __props__.__dict__["expiration"] = None __props__.__dict__["has_expired"] = None __props__.__dict__["key"] = None - alias_opts = pulumi.ResourceOptions(aliases=[pulumi.Alias(type_="grafana:index/cloudStackServiceAccountToken:CloudStackServiceAccountToken")]) - opts = pulumi.ResourceOptions.merge(opts, alias_opts) secret_opts = pulumi.ResourceOptions(additional_secret_outputs=["key"]) opts = pulumi.ResourceOptions.merge(opts, secret_opts) super(CloudStackServiceAccountToken, __self__).__init__( diff --git a/sdk/python/pulumiverse_grafana/machine_learning_holiday.py b/sdk/python/pulumiverse_grafana/machine_learning_holiday.py index fd38eae2..9d19296f 100644 --- a/sdk/python/pulumiverse_grafana/machine_learning_holiday.py +++ b/sdk/python/pulumiverse_grafana/machine_learning_holiday.py @@ -281,8 +281,6 @@ def _internal_init(__self__, __props__.__dict__["ical_timezone"] = ical_timezone __props__.__dict__["ical_url"] = ical_url __props__.__dict__["name"] = name - alias_opts = pulumi.ResourceOptions(aliases=[pulumi.Alias(type_="grafana:index/machineLearningHoliday:MachineLearningHoliday")]) - opts = pulumi.ResourceOptions.merge(opts, alias_opts) super(MachineLearningHoliday, __self__).__init__( 'grafana:index/machineLearningHoliday:MachineLearningHoliday', resource_name, diff --git a/sdk/python/pulumiverse_grafana/machine_learning_job.py b/sdk/python/pulumiverse_grafana/machine_learning_job.py index acdc01a1..c59f24a3 100644 --- a/sdk/python/pulumiverse_grafana/machine_learning_job.py +++ b/sdk/python/pulumiverse_grafana/machine_learning_job.py @@ -495,8 +495,6 @@ def _internal_init(__self__, raise TypeError("Missing required property 'query_params'") __props__.__dict__["query_params"] = query_params __props__.__dict__["training_window"] = training_window - alias_opts = pulumi.ResourceOptions(aliases=[pulumi.Alias(type_="grafana:index/machineLearningJob:MachineLearningJob")]) - opts = pulumi.ResourceOptions.merge(opts, alias_opts) super(MachineLearningJob, __self__).__init__( 'grafana:index/machineLearningJob:MachineLearningJob', resource_name, diff --git a/sdk/python/pulumiverse_grafana/machine_learning_outlier_detector.py b/sdk/python/pulumiverse_grafana/machine_learning_outlier_detector.py index 25481f3f..eebd0a67 100644 --- a/sdk/python/pulumiverse_grafana/machine_learning_outlier_detector.py +++ b/sdk/python/pulumiverse_grafana/machine_learning_outlier_detector.py @@ -398,8 +398,6 @@ def _internal_init(__self__, if query_params is None and not opts.urn: raise TypeError("Missing required property 'query_params'") __props__.__dict__["query_params"] = query_params - alias_opts = pulumi.ResourceOptions(aliases=[pulumi.Alias(type_="grafana:index/machineLearningOutlierDetector:MachineLearningOutlierDetector")]) - opts = pulumi.ResourceOptions.merge(opts, alias_opts) super(MachineLearningOutlierDetector, __self__).__init__( 'grafana:index/machineLearningOutlierDetector:MachineLearningOutlierDetector', resource_name, diff --git a/sdk/python/pulumiverse_grafana/oncall/__init__.py b/sdk/python/pulumiverse_grafana/oncall/__init__.py index 7ccfd2b8..178f8e04 100644 --- a/sdk/python/pulumiverse_grafana/oncall/__init__.py +++ b/sdk/python/pulumiverse_grafana/oncall/__init__.py @@ -20,5 +20,6 @@ from .outgoing_webhook import * from .route import * from .schedule import * +from .user_notification_rule import * from ._inputs import * from . import outputs diff --git a/sdk/python/pulumiverse_grafana/oncall/user_notification_rule.py b/sdk/python/pulumiverse_grafana/oncall/user_notification_rule.py new file mode 100644 index 00000000..19be08f6 --- /dev/null +++ b/sdk/python/pulumiverse_grafana/oncall/user_notification_rule.py @@ -0,0 +1,454 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from .. import _utilities + +__all__ = ['UserNotificationRuleArgs', 'UserNotificationRule'] + +@pulumi.input_type +class UserNotificationRuleArgs: + def __init__(__self__, *, + type: pulumi.Input[str], + user_id: pulumi.Input[str], + duration: Optional[pulumi.Input[int]] = None, + important: Optional[pulumi.Input[bool]] = None, + position: Optional[pulumi.Input[int]] = None): + """ + The set of arguments for constructing a UserNotificationRule resource. + :param pulumi.Input[str] type: The type of notification rule. Can be wait, notify*by*slack, notify*by*msteams, notify*by*sms, notify*by*phone*call, notify*by*telegram, notify*by*email, notify*by*mobile*app, notify*by*mobile*app*critical. NOTE: `notify_by_msteams` is only available for Grafana Cloud customers. + :param pulumi.Input[str] user_id: User ID + :param pulumi.Input[int] duration: A time in seconds to wait (when `type=wait`). Can be 60, 300, 900, 1800, 3600 + :param pulumi.Input[bool] important: Boolean value which indicates if a rule is “important” + :param pulumi.Input[int] position: Personal notification rules execute one after another starting from position=0. A new escalation policy created with a position of an existing escalation policy will move the old one (and all following) down on the list. + """ + pulumi.set(__self__, "type", type) + pulumi.set(__self__, "user_id", user_id) + if duration is not None: + pulumi.set(__self__, "duration", duration) + if important is not None: + pulumi.set(__self__, "important", important) + if position is not None: + pulumi.set(__self__, "position", position) + + @property + @pulumi.getter + def type(self) -> pulumi.Input[str]: + """ + The type of notification rule. Can be wait, notify*by*slack, notify*by*msteams, notify*by*sms, notify*by*phone*call, notify*by*telegram, notify*by*email, notify*by*mobile*app, notify*by*mobile*app*critical. NOTE: `notify_by_msteams` is only available for Grafana Cloud customers. + """ + return pulumi.get(self, "type") + + @type.setter + def type(self, value: pulumi.Input[str]): + pulumi.set(self, "type", value) + + @property + @pulumi.getter(name="userId") + def user_id(self) -> pulumi.Input[str]: + """ + User ID + """ + return pulumi.get(self, "user_id") + + @user_id.setter + def user_id(self, value: pulumi.Input[str]): + pulumi.set(self, "user_id", value) + + @property + @pulumi.getter + def duration(self) -> Optional[pulumi.Input[int]]: + """ + A time in seconds to wait (when `type=wait`). Can be 60, 300, 900, 1800, 3600 + """ + return pulumi.get(self, "duration") + + @duration.setter + def duration(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "duration", value) + + @property + @pulumi.getter + def important(self) -> Optional[pulumi.Input[bool]]: + """ + Boolean value which indicates if a rule is “important” + """ + return pulumi.get(self, "important") + + @important.setter + def important(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "important", value) + + @property + @pulumi.getter + def position(self) -> Optional[pulumi.Input[int]]: + """ + Personal notification rules execute one after another starting from position=0. A new escalation policy created with a position of an existing escalation policy will move the old one (and all following) down on the list. + """ + return pulumi.get(self, "position") + + @position.setter + def position(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "position", value) + + +@pulumi.input_type +class _UserNotificationRuleState: + def __init__(__self__, *, + duration: Optional[pulumi.Input[int]] = None, + important: Optional[pulumi.Input[bool]] = None, + position: Optional[pulumi.Input[int]] = None, + type: Optional[pulumi.Input[str]] = None, + user_id: Optional[pulumi.Input[str]] = None): + """ + Input properties used for looking up and filtering UserNotificationRule resources. + :param pulumi.Input[int] duration: A time in seconds to wait (when `type=wait`). Can be 60, 300, 900, 1800, 3600 + :param pulumi.Input[bool] important: Boolean value which indicates if a rule is “important” + :param pulumi.Input[int] position: Personal notification rules execute one after another starting from position=0. A new escalation policy created with a position of an existing escalation policy will move the old one (and all following) down on the list. + :param pulumi.Input[str] type: The type of notification rule. Can be wait, notify*by*slack, notify*by*msteams, notify*by*sms, notify*by*phone*call, notify*by*telegram, notify*by*email, notify*by*mobile*app, notify*by*mobile*app*critical. NOTE: `notify_by_msteams` is only available for Grafana Cloud customers. + :param pulumi.Input[str] user_id: User ID + """ + if duration is not None: + pulumi.set(__self__, "duration", duration) + if important is not None: + pulumi.set(__self__, "important", important) + if position is not None: + pulumi.set(__self__, "position", position) + if type is not None: + pulumi.set(__self__, "type", type) + if user_id is not None: + pulumi.set(__self__, "user_id", user_id) + + @property + @pulumi.getter + def duration(self) -> Optional[pulumi.Input[int]]: + """ + A time in seconds to wait (when `type=wait`). Can be 60, 300, 900, 1800, 3600 + """ + return pulumi.get(self, "duration") + + @duration.setter + def duration(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "duration", value) + + @property + @pulumi.getter + def important(self) -> Optional[pulumi.Input[bool]]: + """ + Boolean value which indicates if a rule is “important” + """ + return pulumi.get(self, "important") + + @important.setter + def important(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "important", value) + + @property + @pulumi.getter + def position(self) -> Optional[pulumi.Input[int]]: + """ + Personal notification rules execute one after another starting from position=0. A new escalation policy created with a position of an existing escalation policy will move the old one (and all following) down on the list. + """ + return pulumi.get(self, "position") + + @position.setter + def position(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "position", value) + + @property + @pulumi.getter + def type(self) -> Optional[pulumi.Input[str]]: + """ + The type of notification rule. Can be wait, notify*by*slack, notify*by*msteams, notify*by*sms, notify*by*phone*call, notify*by*telegram, notify*by*email, notify*by*mobile*app, notify*by*mobile*app*critical. NOTE: `notify_by_msteams` is only available for Grafana Cloud customers. + """ + return pulumi.get(self, "type") + + @type.setter + def type(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "type", value) + + @property + @pulumi.getter(name="userId") + def user_id(self) -> Optional[pulumi.Input[str]]: + """ + User ID + """ + return pulumi.get(self, "user_id") + + @user_id.setter + def user_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "user_id", value) + + +class UserNotificationRule(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + duration: Optional[pulumi.Input[int]] = None, + important: Optional[pulumi.Input[bool]] = None, + position: Optional[pulumi.Input[int]] = None, + type: Optional[pulumi.Input[str]] = None, + user_id: Optional[pulumi.Input[str]] = None, + __props__=None): + """ + * [HTTP API](https://grafana.com/docs/oncall/latest/oncall-api-reference/personal_notification_rules/) + + **Note**: you must be running Grafana OnCall >= v1.8.0 to use this resource. + + ## Example Usage + + ```python + import pulumi + import pulumi_grafana as grafana + import pulumiverse_grafana as grafana + + my_user = grafana.onCall.get_user(username="my_username") + my_user_step1 = grafana.on_call.UserNotificationRule("my_user_step_1", + user_id=my_user.id, + position=0, + type="notify_by_mobile_app") + my_user_step2 = grafana.on_call.UserNotificationRule("my_user_step_2", + user_id=my_user.id, + position=1, + duration=600, + type="wait") + my_user_step3 = grafana.on_call.UserNotificationRule("my_user_step_3", + user_id=my_user.id, + position=2, + type="notify_by_phone_call") + my_user_step4 = grafana.on_call.UserNotificationRule("my_user_step_4", + user_id=my_user.id, + position=3, + duration=300, + type="wait") + my_user_step5 = grafana.on_call.UserNotificationRule("my_user_step_5", + user_id=my_user.id, + position=4, + type="notify_by_slack") + my_user_important_step1 = grafana.on_call.UserNotificationRule("my_user_important_step_1", + user_id=my_user.id, + important=True, + position=0, + type="notify_by_mobile_app_critical") + my_user_important_step2 = grafana.on_call.UserNotificationRule("my_user_important_step_2", + user_id=my_user.id, + important=True, + position=1, + duration=300, + type="wait") + my_user_important_step3 = grafana.on_call.UserNotificationRule("my_user_important_step_3", + user_id=my_user.id, + important=True, + position=2, + type="notify_by_mobile_app_critical") + ``` + + ## Import + + ```sh + $ pulumi import grafana:onCall/userNotificationRule:UserNotificationRule name "{{ id }}" + ``` + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[int] duration: A time in seconds to wait (when `type=wait`). Can be 60, 300, 900, 1800, 3600 + :param pulumi.Input[bool] important: Boolean value which indicates if a rule is “important” + :param pulumi.Input[int] position: Personal notification rules execute one after another starting from position=0. A new escalation policy created with a position of an existing escalation policy will move the old one (and all following) down on the list. + :param pulumi.Input[str] type: The type of notification rule. Can be wait, notify*by*slack, notify*by*msteams, notify*by*sms, notify*by*phone*call, notify*by*telegram, notify*by*email, notify*by*mobile*app, notify*by*mobile*app*critical. NOTE: `notify_by_msteams` is only available for Grafana Cloud customers. + :param pulumi.Input[str] user_id: User ID + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: UserNotificationRuleArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + * [HTTP API](https://grafana.com/docs/oncall/latest/oncall-api-reference/personal_notification_rules/) + + **Note**: you must be running Grafana OnCall >= v1.8.0 to use this resource. + + ## Example Usage + + ```python + import pulumi + import pulumi_grafana as grafana + import pulumiverse_grafana as grafana + + my_user = grafana.onCall.get_user(username="my_username") + my_user_step1 = grafana.on_call.UserNotificationRule("my_user_step_1", + user_id=my_user.id, + position=0, + type="notify_by_mobile_app") + my_user_step2 = grafana.on_call.UserNotificationRule("my_user_step_2", + user_id=my_user.id, + position=1, + duration=600, + type="wait") + my_user_step3 = grafana.on_call.UserNotificationRule("my_user_step_3", + user_id=my_user.id, + position=2, + type="notify_by_phone_call") + my_user_step4 = grafana.on_call.UserNotificationRule("my_user_step_4", + user_id=my_user.id, + position=3, + duration=300, + type="wait") + my_user_step5 = grafana.on_call.UserNotificationRule("my_user_step_5", + user_id=my_user.id, + position=4, + type="notify_by_slack") + my_user_important_step1 = grafana.on_call.UserNotificationRule("my_user_important_step_1", + user_id=my_user.id, + important=True, + position=0, + type="notify_by_mobile_app_critical") + my_user_important_step2 = grafana.on_call.UserNotificationRule("my_user_important_step_2", + user_id=my_user.id, + important=True, + position=1, + duration=300, + type="wait") + my_user_important_step3 = grafana.on_call.UserNotificationRule("my_user_important_step_3", + user_id=my_user.id, + important=True, + position=2, + type="notify_by_mobile_app_critical") + ``` + + ## Import + + ```sh + $ pulumi import grafana:onCall/userNotificationRule:UserNotificationRule name "{{ id }}" + ``` + + :param str resource_name: The name of the resource. + :param UserNotificationRuleArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(UserNotificationRuleArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + duration: Optional[pulumi.Input[int]] = None, + important: Optional[pulumi.Input[bool]] = None, + position: Optional[pulumi.Input[int]] = None, + type: Optional[pulumi.Input[str]] = None, + user_id: Optional[pulumi.Input[str]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = UserNotificationRuleArgs.__new__(UserNotificationRuleArgs) + + __props__.__dict__["duration"] = duration + __props__.__dict__["important"] = important + __props__.__dict__["position"] = position + if type is None and not opts.urn: + raise TypeError("Missing required property 'type'") + __props__.__dict__["type"] = type + if user_id is None and not opts.urn: + raise TypeError("Missing required property 'user_id'") + __props__.__dict__["user_id"] = user_id + alias_opts = pulumi.ResourceOptions(aliases=[pulumi.Alias(type_="grafana:index/oncallUserNotificationRule:OncallUserNotificationRule")]) + opts = pulumi.ResourceOptions.merge(opts, alias_opts) + super(UserNotificationRule, __self__).__init__( + 'grafana:onCall/userNotificationRule:UserNotificationRule', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + duration: Optional[pulumi.Input[int]] = None, + important: Optional[pulumi.Input[bool]] = None, + position: Optional[pulumi.Input[int]] = None, + type: Optional[pulumi.Input[str]] = None, + user_id: Optional[pulumi.Input[str]] = None) -> 'UserNotificationRule': + """ + Get an existing UserNotificationRule resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[int] duration: A time in seconds to wait (when `type=wait`). Can be 60, 300, 900, 1800, 3600 + :param pulumi.Input[bool] important: Boolean value which indicates if a rule is “important” + :param pulumi.Input[int] position: Personal notification rules execute one after another starting from position=0. A new escalation policy created with a position of an existing escalation policy will move the old one (and all following) down on the list. + :param pulumi.Input[str] type: The type of notification rule. Can be wait, notify*by*slack, notify*by*msteams, notify*by*sms, notify*by*phone*call, notify*by*telegram, notify*by*email, notify*by*mobile*app, notify*by*mobile*app*critical. NOTE: `notify_by_msteams` is only available for Grafana Cloud customers. + :param pulumi.Input[str] user_id: User ID + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _UserNotificationRuleState.__new__(_UserNotificationRuleState) + + __props__.__dict__["duration"] = duration + __props__.__dict__["important"] = important + __props__.__dict__["position"] = position + __props__.__dict__["type"] = type + __props__.__dict__["user_id"] = user_id + return UserNotificationRule(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter + def duration(self) -> pulumi.Output[Optional[int]]: + """ + A time in seconds to wait (when `type=wait`). Can be 60, 300, 900, 1800, 3600 + """ + return pulumi.get(self, "duration") + + @property + @pulumi.getter + def important(self) -> pulumi.Output[bool]: + """ + Boolean value which indicates if a rule is “important” + """ + return pulumi.get(self, "important") + + @property + @pulumi.getter + def position(self) -> pulumi.Output[Optional[int]]: + """ + Personal notification rules execute one after another starting from position=0. A new escalation policy created with a position of an existing escalation policy will move the old one (and all following) down on the list. + """ + return pulumi.get(self, "position") + + @property + @pulumi.getter + def type(self) -> pulumi.Output[str]: + """ + The type of notification rule. Can be wait, notify*by*slack, notify*by*msteams, notify*by*sms, notify*by*phone*call, notify*by*telegram, notify*by*email, notify*by*mobile*app, notify*by*mobile*app*critical. NOTE: `notify_by_msteams` is only available for Grafana Cloud customers. + """ + return pulumi.get(self, "type") + + @property + @pulumi.getter(name="userId") + def user_id(self) -> pulumi.Output[str]: + """ + User ID + """ + return pulumi.get(self, "user_id") + diff --git a/sdk/python/pulumiverse_grafana/oncall_escalation.py b/sdk/python/pulumiverse_grafana/oncall_escalation.py index 83477c2d..a57e4f4c 100644 --- a/sdk/python/pulumiverse_grafana/oncall_escalation.py +++ b/sdk/python/pulumiverse_grafana/oncall_escalation.py @@ -568,8 +568,6 @@ def _internal_init(__self__, if type is None and not opts.urn: raise TypeError("Missing required property 'type'") __props__.__dict__["type"] = type - alias_opts = pulumi.ResourceOptions(aliases=[pulumi.Alias(type_="grafana:index/oncallEscalation:OncallEscalation")]) - opts = pulumi.ResourceOptions.merge(opts, alias_opts) super(OncallEscalation, __self__).__init__( 'grafana:index/oncallEscalation:OncallEscalation', resource_name, diff --git a/sdk/python/pulumiverse_grafana/oncall_escalation_chain.py b/sdk/python/pulumiverse_grafana/oncall_escalation_chain.py index 0992cec5..65148cff 100644 --- a/sdk/python/pulumiverse_grafana/oncall_escalation_chain.py +++ b/sdk/python/pulumiverse_grafana/oncall_escalation_chain.py @@ -185,8 +185,6 @@ def _internal_init(__self__, __props__.__dict__["name"] = name __props__.__dict__["team_id"] = team_id - alias_opts = pulumi.ResourceOptions(aliases=[pulumi.Alias(type_="grafana:index/oncallEscalationChain:OncallEscalationChain")]) - opts = pulumi.ResourceOptions.merge(opts, alias_opts) super(OncallEscalationChain, __self__).__init__( 'grafana:index/oncallEscalationChain:OncallEscalationChain', resource_name, diff --git a/sdk/python/pulumiverse_grafana/oncall_integration.py b/sdk/python/pulumiverse_grafana/oncall_integration.py index 4b023d13..f63e8445 100644 --- a/sdk/python/pulumiverse_grafana/oncall_integration.py +++ b/sdk/python/pulumiverse_grafana/oncall_integration.py @@ -354,8 +354,6 @@ def _internal_init(__self__, raise TypeError("Missing required property 'type'") __props__.__dict__["type"] = type __props__.__dict__["link"] = None - alias_opts = pulumi.ResourceOptions(aliases=[pulumi.Alias(type_="grafana:index/oncallIntegration:OncallIntegration")]) - opts = pulumi.ResourceOptions.merge(opts, alias_opts) super(OncallIntegration, __self__).__init__( 'grafana:index/oncallIntegration:OncallIntegration', resource_name, diff --git a/sdk/python/pulumiverse_grafana/oncall_on_call_shift.py b/sdk/python/pulumiverse_grafana/oncall_on_call_shift.py index ce6c54df..741e89ab 100644 --- a/sdk/python/pulumiverse_grafana/oncall_on_call_shift.py +++ b/sdk/python/pulumiverse_grafana/oncall_on_call_shift.py @@ -674,8 +674,6 @@ def _internal_init(__self__, __props__.__dict__["type"] = type __props__.__dict__["users"] = users __props__.__dict__["week_start"] = week_start - alias_opts = pulumi.ResourceOptions(aliases=[pulumi.Alias(type_="grafana:index/oncallOnCallShift:OncallOnCallShift")]) - opts = pulumi.ResourceOptions.merge(opts, alias_opts) super(OncallOnCallShift, __self__).__init__( 'grafana:index/oncallOnCallShift:OncallOnCallShift', resource_name, diff --git a/sdk/python/pulumiverse_grafana/oncall_outgoing_webhook.py b/sdk/python/pulumiverse_grafana/oncall_outgoing_webhook.py index 3b654247..87cedfc1 100644 --- a/sdk/python/pulumiverse_grafana/oncall_outgoing_webhook.py +++ b/sdk/python/pulumiverse_grafana/oncall_outgoing_webhook.py @@ -622,8 +622,6 @@ def _internal_init(__self__, raise TypeError("Missing required property 'url'") __props__.__dict__["url"] = url __props__.__dict__["user"] = user - alias_opts = pulumi.ResourceOptions(aliases=[pulumi.Alias(type_="grafana:index/oncallOutgoingWebhook:OncallOutgoingWebhook")]) - opts = pulumi.ResourceOptions.merge(opts, alias_opts) secret_opts = pulumi.ResourceOptions(additional_secret_outputs=["authorizationHeader", "password"]) opts = pulumi.ResourceOptions.merge(opts, secret_opts) super(OncallOutgoingWebhook, __self__).__init__( diff --git a/sdk/python/pulumiverse_grafana/oncall_route.py b/sdk/python/pulumiverse_grafana/oncall_route.py index 49badc16..87275490 100644 --- a/sdk/python/pulumiverse_grafana/oncall_route.py +++ b/sdk/python/pulumiverse_grafana/oncall_route.py @@ -453,8 +453,6 @@ def _internal_init(__self__, __props__.__dict__["routing_type"] = routing_type __props__.__dict__["slack"] = slack __props__.__dict__["telegram"] = telegram - alias_opts = pulumi.ResourceOptions(aliases=[pulumi.Alias(type_="grafana:index/oncallRoute:OncallRoute")]) - opts = pulumi.ResourceOptions.merge(opts, alias_opts) super(OncallRoute, __self__).__init__( 'grafana:index/oncallRoute:OncallRoute', resource_name, diff --git a/sdk/python/pulumiverse_grafana/oncall_schedule.py b/sdk/python/pulumiverse_grafana/oncall_schedule.py index 3fab3c90..155566d0 100644 --- a/sdk/python/pulumiverse_grafana/oncall_schedule.py +++ b/sdk/python/pulumiverse_grafana/oncall_schedule.py @@ -422,8 +422,6 @@ def _internal_init(__self__, if type is None and not opts.urn: raise TypeError("Missing required property 'type'") __props__.__dict__["type"] = type - alias_opts = pulumi.ResourceOptions(aliases=[pulumi.Alias(type_="grafana:index/oncallSchedule:OncallSchedule")]) - opts = pulumi.ResourceOptions.merge(opts, alias_opts) super(OncallSchedule, __self__).__init__( 'grafana:index/oncallSchedule:OncallSchedule', resource_name, diff --git a/sdk/python/pulumiverse_grafana/oncall_user_notification_rule.py b/sdk/python/pulumiverse_grafana/oncall_user_notification_rule.py index 056e786f..b8637d9a 100644 --- a/sdk/python/pulumiverse_grafana/oncall_user_notification_rule.py +++ b/sdk/python/pulumiverse_grafana/oncall_user_notification_rule.py @@ -190,7 +190,12 @@ def user_id(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "user_id", value) +warnings.warn("""grafana.index/oncallusernotificationrule.OncallUserNotificationRule has been deprecated in favor of grafana.oncall/usernotificationrule.UserNotificationRule""", DeprecationWarning) + + class OncallUserNotificationRule(pulumi.CustomResource): + warnings.warn("""grafana.index/oncallusernotificationrule.OncallUserNotificationRule has been deprecated in favor of grafana.oncall/usernotificationrule.UserNotificationRule""", DeprecationWarning) + @overload def __init__(__self__, resource_name: str, @@ -214,40 +219,40 @@ def __init__(__self__, import pulumiverse_grafana as grafana my_user = grafana.onCall.get_user(username="my_username") - my_user_step1 = grafana.OncallUserNotificationRule("my_user_step_1", + my_user_step1 = grafana.on_call.UserNotificationRule("my_user_step_1", user_id=my_user.id, position=0, type="notify_by_mobile_app") - my_user_step2 = grafana.OncallUserNotificationRule("my_user_step_2", + my_user_step2 = grafana.on_call.UserNotificationRule("my_user_step_2", user_id=my_user.id, position=1, duration=600, type="wait") - my_user_step3 = grafana.OncallUserNotificationRule("my_user_step_3", + my_user_step3 = grafana.on_call.UserNotificationRule("my_user_step_3", user_id=my_user.id, position=2, type="notify_by_phone_call") - my_user_step4 = grafana.OncallUserNotificationRule("my_user_step_4", + my_user_step4 = grafana.on_call.UserNotificationRule("my_user_step_4", user_id=my_user.id, position=3, duration=300, type="wait") - my_user_step5 = grafana.OncallUserNotificationRule("my_user_step_5", + my_user_step5 = grafana.on_call.UserNotificationRule("my_user_step_5", user_id=my_user.id, position=4, type="notify_by_slack") - my_user_important_step1 = grafana.OncallUserNotificationRule("my_user_important_step_1", + my_user_important_step1 = grafana.on_call.UserNotificationRule("my_user_important_step_1", user_id=my_user.id, important=True, position=0, type="notify_by_mobile_app_critical") - my_user_important_step2 = grafana.OncallUserNotificationRule("my_user_important_step_2", + my_user_important_step2 = grafana.on_call.UserNotificationRule("my_user_important_step_2", user_id=my_user.id, important=True, position=1, duration=300, type="wait") - my_user_important_step3 = grafana.OncallUserNotificationRule("my_user_important_step_3", + my_user_important_step3 = grafana.on_call.UserNotificationRule("my_user_important_step_3", user_id=my_user.id, important=True, position=2, @@ -287,40 +292,40 @@ def __init__(__self__, import pulumiverse_grafana as grafana my_user = grafana.onCall.get_user(username="my_username") - my_user_step1 = grafana.OncallUserNotificationRule("my_user_step_1", + my_user_step1 = grafana.on_call.UserNotificationRule("my_user_step_1", user_id=my_user.id, position=0, type="notify_by_mobile_app") - my_user_step2 = grafana.OncallUserNotificationRule("my_user_step_2", + my_user_step2 = grafana.on_call.UserNotificationRule("my_user_step_2", user_id=my_user.id, position=1, duration=600, type="wait") - my_user_step3 = grafana.OncallUserNotificationRule("my_user_step_3", + my_user_step3 = grafana.on_call.UserNotificationRule("my_user_step_3", user_id=my_user.id, position=2, type="notify_by_phone_call") - my_user_step4 = grafana.OncallUserNotificationRule("my_user_step_4", + my_user_step4 = grafana.on_call.UserNotificationRule("my_user_step_4", user_id=my_user.id, position=3, duration=300, type="wait") - my_user_step5 = grafana.OncallUserNotificationRule("my_user_step_5", + my_user_step5 = grafana.on_call.UserNotificationRule("my_user_step_5", user_id=my_user.id, position=4, type="notify_by_slack") - my_user_important_step1 = grafana.OncallUserNotificationRule("my_user_important_step_1", + my_user_important_step1 = grafana.on_call.UserNotificationRule("my_user_important_step_1", user_id=my_user.id, important=True, position=0, type="notify_by_mobile_app_critical") - my_user_important_step2 = grafana.OncallUserNotificationRule("my_user_important_step_2", + my_user_important_step2 = grafana.on_call.UserNotificationRule("my_user_important_step_2", user_id=my_user.id, important=True, position=1, duration=300, type="wait") - my_user_important_step3 = grafana.OncallUserNotificationRule("my_user_important_step_3", + my_user_important_step3 = grafana.on_call.UserNotificationRule("my_user_important_step_3", user_id=my_user.id, important=True, position=2, @@ -354,6 +359,7 @@ def _internal_init(__self__, type: Optional[pulumi.Input[str]] = None, user_id: Optional[pulumi.Input[str]] = None, __props__=None): + pulumi.log.warn("""OncallUserNotificationRule is deprecated: grafana.index/oncallusernotificationrule.OncallUserNotificationRule has been deprecated in favor of grafana.oncall/usernotificationrule.UserNotificationRule""") opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) if not isinstance(opts, pulumi.ResourceOptions): raise TypeError('Expected resource options to be a ResourceOptions instance') diff --git a/sdk/python/pulumiverse_grafana/synthetic_monitoring_check.py b/sdk/python/pulumiverse_grafana/synthetic_monitoring_check.py index 457af1eb..10b1ea86 100644 --- a/sdk/python/pulumiverse_grafana/synthetic_monitoring_check.py +++ b/sdk/python/pulumiverse_grafana/synthetic_monitoring_check.py @@ -1226,8 +1226,6 @@ def _internal_init(__self__, __props__.__dict__["target"] = target __props__.__dict__["timeout"] = timeout __props__.__dict__["tenant_id"] = None - alias_opts = pulumi.ResourceOptions(aliases=[pulumi.Alias(type_="grafana:index/syntheticMonitoringCheck:SyntheticMonitoringCheck")]) - opts = pulumi.ResourceOptions.merge(opts, alias_opts) super(SyntheticMonitoringCheck, __self__).__init__( 'grafana:index/syntheticMonitoringCheck:SyntheticMonitoringCheck', resource_name, diff --git a/sdk/python/pulumiverse_grafana/synthetic_monitoring_installation.py b/sdk/python/pulumiverse_grafana/synthetic_monitoring_installation.py index 0256a7c1..12007452 100644 --- a/sdk/python/pulumiverse_grafana/synthetic_monitoring_installation.py +++ b/sdk/python/pulumiverse_grafana/synthetic_monitoring_installation.py @@ -316,8 +316,6 @@ def _internal_init(__self__, __props__.__dict__["stack_id"] = stack_id __props__.__dict__["stack_sm_api_url"] = stack_sm_api_url __props__.__dict__["sm_access_token"] = None - alias_opts = pulumi.ResourceOptions(aliases=[pulumi.Alias(type_="grafana:index/syntheticMonitoringInstallation:SyntheticMonitoringInstallation")]) - opts = pulumi.ResourceOptions.merge(opts, alias_opts) secret_opts = pulumi.ResourceOptions(additional_secret_outputs=["metricsPublisherKey"]) opts = pulumi.ResourceOptions.merge(opts, secret_opts) super(SyntheticMonitoringInstallation, __self__).__init__( diff --git a/sdk/python/pulumiverse_grafana/synthetic_monitoring_probe.py b/sdk/python/pulumiverse_grafana/synthetic_monitoring_probe.py index 467b2406..0af7da60 100644 --- a/sdk/python/pulumiverse_grafana/synthetic_monitoring_probe.py +++ b/sdk/python/pulumiverse_grafana/synthetic_monitoring_probe.py @@ -434,8 +434,6 @@ def _internal_init(__self__, __props__.__dict__["region"] = region __props__.__dict__["auth_token"] = None __props__.__dict__["tenant_id"] = None - alias_opts = pulumi.ResourceOptions(aliases=[pulumi.Alias(type_="grafana:index/syntheticMonitoringProbe:SyntheticMonitoringProbe")]) - opts = pulumi.ResourceOptions.merge(opts, alias_opts) secret_opts = pulumi.ResourceOptions(additional_secret_outputs=["authToken"]) opts = pulumi.ResourceOptions.merge(opts, secret_opts) super(SyntheticMonitoringProbe, __self__).__init__(