{"name":"incident","version":"5.28.0","description":"A Pulumi provider dynamically bridged from incident.","attribution":"This Pulumi package is based on the [`incident` Terraform Provider](https://github.com/incident-io/terraform-provider-incident).","repository":"https://github.com/incident-io/terraform-provider-incident","publisher":"incident-io","meta":{"moduleFormat":"(.*)(?:/[^/]*)"},"language":{"csharp":{"compatibility":"tfbridge20","liftSingleValueMethodReturns":true,"respectSchemaVersion":true},"go":{"generateExtraInputTypes":true,"importBasePath":"github.com/pulumi/pulumi-terraform-provider/sdks/go/incident/v5/incident","liftSingleValueMethodReturns":true,"respectSchemaVersion":true,"rootPackageName":"incident"},"java":{"basePackage":"","buildFiles":"","gradleNexusPublishPluginVersion":"","gradleTest":""},"nodejs":{"compatibility":"tfbridge20","disableUnionOutputTypes":true,"liftSingleValueMethodReturns":true,"packageDescription":"A Pulumi provider dynamically bridged from incident.","readme":"\u003e This provider is a derived work of the [Terraform Provider](https://github.com/incident-io/terraform-provider-incident)\n\u003e distributed under [MPL 2.0](https://www.mozilla.org/en-US/MPL/2.0/). If you encounter a bug or missing feature,\n\u003e please consult the source [`terraform-provider-incident` repo](https://github.com/incident-io/terraform-provider-incident/issues).","respectSchemaVersion":true},"python":{"compatibility":"tfbridge20","pyproject":{"enabled":true},"readme":"\u003e This provider is a derived work of the [Terraform Provider](https://github.com/incident-io/terraform-provider-incident)\n\u003e distributed under [MPL 2.0](https://www.mozilla.org/en-US/MPL/2.0/). If you encounter a bug or missing feature,\n\u003e please consult the source [`terraform-provider-incident` repo](https://github.com/incident-io/terraform-provider-incident/issues).","respectSchemaVersion":true}},"config":{"variables":{"apiKey":{"type":"string","description":"API key for incident.io (https://app.incident.io/settings/api-keys). Sourced from the `INCIDENT_API_KEY` environment variable, if set.","secret":true},"endpoint":{"type":"string","description":"URL of the incident.io API"}}},"types":{"incident:index/AlertRouteAlertSource:AlertRouteAlertSource":{"properties":{"alertSourceId":{"type":"string","description":"The alert source ID that will match for the route\n"},"conditionGroups":{"type":"array","items":{"$ref":"#/types/incident:index%2FAlertRouteAlertSourceConditionGroup:AlertRouteAlertSourceConditionGroup"},"description":"Groups of prerequisite conditions. All conditions in at least one group must be satisfied\n"}},"type":"object","required":["alertSourceId","conditionGroups"]},"incident:index/AlertRouteAlertSourceConditionGroup:AlertRouteAlertSourceConditionGroup":{"properties":{"conditions":{"type":"array","items":{"$ref":"#/types/incident:index%2FAlertRouteAlertSourceConditionGroupCondition:AlertRouteAlertSourceConditionGroupCondition"},"description":"The prerequisite conditions that must all be satisfied\n"}},"type":"object","required":["conditions"]},"incident:index/AlertRouteAlertSourceConditionGroupCondition:AlertRouteAlertSourceConditionGroupCondition":{"properties":{"operation":{"type":"string","description":"The logical operation to be applied\n"},"paramBindings":{"type":"array","items":{"$ref":"#/types/incident:index%2FAlertRouteAlertSourceConditionGroupConditionParamBinding:AlertRouteAlertSourceConditionGroupConditionParamBinding"},"description":"Bindings for the operation parameters\n"},"subject":{"type":"string","description":"The subject of the condition, on which the operation is applied\n"}},"type":"object","required":["operation","paramBindings","subject"]},"incident:index/AlertRouteAlertSourceConditionGroupConditionParamBinding:AlertRouteAlertSourceConditionGroupConditionParamBinding":{"properties":{"arrayValues":{"type":"array","items":{"$ref":"#/types/incident:index%2FAlertRouteAlertSourceConditionGroupConditionParamBindingArrayValue:AlertRouteAlertSourceConditionGroupConditionParamBindingArrayValue"},"description":"The array of literal or reference parameter values\n"},"value":{"$ref":"#/types/incident:index%2FAlertRouteAlertSourceConditionGroupConditionParamBindingValue:AlertRouteAlertSourceConditionGroupConditionParamBindingValue","description":"The literal or reference parameter value\n"}},"type":"object"},"incident:index/AlertRouteAlertSourceConditionGroupConditionParamBindingArrayValue:AlertRouteAlertSourceConditionGroupConditionParamBindingArrayValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object"},"incident:index/AlertRouteAlertSourceConditionGroupConditionParamBindingValue:AlertRouteAlertSourceConditionGroupConditionParamBindingValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object"},"incident:index/AlertRouteChannelConfig:AlertRouteChannelConfig":{"properties":{"conditionGroups":{"type":"array","items":{"$ref":"#/types/incident:index%2FAlertRouteChannelConfigConditionGroup:AlertRouteChannelConfigConditionGroup"},"description":"Groups of prerequisite conditions. All conditions in at least one group must be satisfied\n"},"msTeamsTargets":{"$ref":"#/types/incident:index%2FAlertRouteChannelConfigMsTeamsTargets:AlertRouteChannelConfigMsTeamsTargets"},"slackTargets":{"$ref":"#/types/incident:index%2FAlertRouteChannelConfigSlackTargets:AlertRouteChannelConfigSlackTargets"}},"type":"object","required":["conditionGroups"]},"incident:index/AlertRouteChannelConfigConditionGroup:AlertRouteChannelConfigConditionGroup":{"properties":{"conditions":{"type":"array","items":{"$ref":"#/types/incident:index%2FAlertRouteChannelConfigConditionGroupCondition:AlertRouteChannelConfigConditionGroupCondition"},"description":"The prerequisite conditions that must all be satisfied\n"}},"type":"object","required":["conditions"]},"incident:index/AlertRouteChannelConfigConditionGroupCondition:AlertRouteChannelConfigConditionGroupCondition":{"properties":{"operation":{"type":"string","description":"The logical operation to be applied\n"},"paramBindings":{"type":"array","items":{"$ref":"#/types/incident:index%2FAlertRouteChannelConfigConditionGroupConditionParamBinding:AlertRouteChannelConfigConditionGroupConditionParamBinding"},"description":"Bindings for the operation parameters\n"},"subject":{"type":"string","description":"The subject of the condition, on which the operation is applied\n"}},"type":"object","required":["operation","paramBindings","subject"]},"incident:index/AlertRouteChannelConfigConditionGroupConditionParamBinding:AlertRouteChannelConfigConditionGroupConditionParamBinding":{"properties":{"arrayValues":{"type":"array","items":{"$ref":"#/types/incident:index%2FAlertRouteChannelConfigConditionGroupConditionParamBindingArrayValue:AlertRouteChannelConfigConditionGroupConditionParamBindingArrayValue"},"description":"The array of literal or reference parameter values\n"},"value":{"$ref":"#/types/incident:index%2FAlertRouteChannelConfigConditionGroupConditionParamBindingValue:AlertRouteChannelConfigConditionGroupConditionParamBindingValue","description":"The literal or reference parameter value\n"}},"type":"object"},"incident:index/AlertRouteChannelConfigConditionGroupConditionParamBindingArrayValue:AlertRouteChannelConfigConditionGroupConditionParamBindingArrayValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object"},"incident:index/AlertRouteChannelConfigConditionGroupConditionParamBindingValue:AlertRouteChannelConfigConditionGroupConditionParamBindingValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object"},"incident:index/AlertRouteChannelConfigMsTeamsTargets:AlertRouteChannelConfigMsTeamsTargets":{"properties":{"binding":{"$ref":"#/types/incident:index%2FAlertRouteChannelConfigMsTeamsTargetsBinding:AlertRouteChannelConfigMsTeamsTargetsBinding"},"channelVisibility":{"type":"string","description":"The visibility of the channel\n"}},"type":"object","required":["binding","channelVisibility"]},"incident:index/AlertRouteChannelConfigMsTeamsTargetsBinding:AlertRouteChannelConfigMsTeamsTargetsBinding":{"properties":{"arrayValues":{"type":"array","items":{"$ref":"#/types/incident:index%2FAlertRouteChannelConfigMsTeamsTargetsBindingArrayValue:AlertRouteChannelConfigMsTeamsTargetsBindingArrayValue"},"description":"The array of literal or reference parameter values\n"},"value":{"$ref":"#/types/incident:index%2FAlertRouteChannelConfigMsTeamsTargetsBindingValue:AlertRouteChannelConfigMsTeamsTargetsBindingValue","description":"The literal or reference parameter value\n"}},"type":"object"},"incident:index/AlertRouteChannelConfigMsTeamsTargetsBindingArrayValue:AlertRouteChannelConfigMsTeamsTargetsBindingArrayValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object"},"incident:index/AlertRouteChannelConfigMsTeamsTargetsBindingValue:AlertRouteChannelConfigMsTeamsTargetsBindingValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object"},"incident:index/AlertRouteChannelConfigSlackTargets:AlertRouteChannelConfigSlackTargets":{"properties":{"binding":{"$ref":"#/types/incident:index%2FAlertRouteChannelConfigSlackTargetsBinding:AlertRouteChannelConfigSlackTargetsBinding"},"channelVisibility":{"type":"string","description":"The visibility of the channel\n"}},"type":"object","required":["binding","channelVisibility"]},"incident:index/AlertRouteChannelConfigSlackTargetsBinding:AlertRouteChannelConfigSlackTargetsBinding":{"properties":{"arrayValues":{"type":"array","items":{"$ref":"#/types/incident:index%2FAlertRouteChannelConfigSlackTargetsBindingArrayValue:AlertRouteChannelConfigSlackTargetsBindingArrayValue"},"description":"The array of literal or reference parameter values\n"},"value":{"$ref":"#/types/incident:index%2FAlertRouteChannelConfigSlackTargetsBindingValue:AlertRouteChannelConfigSlackTargetsBindingValue","description":"The literal or reference parameter value\n"}},"type":"object"},"incident:index/AlertRouteChannelConfigSlackTargetsBindingArrayValue:AlertRouteChannelConfigSlackTargetsBindingArrayValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object"},"incident:index/AlertRouteChannelConfigSlackTargetsBindingValue:AlertRouteChannelConfigSlackTargetsBindingValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object"},"incident:index/AlertRouteConditionGroup:AlertRouteConditionGroup":{"properties":{"conditions":{"type":"array","items":{"$ref":"#/types/incident:index%2FAlertRouteConditionGroupCondition:AlertRouteConditionGroupCondition"},"description":"The prerequisite conditions that must all be satisfied\n"}},"type":"object","required":["conditions"]},"incident:index/AlertRouteConditionGroupCondition:AlertRouteConditionGroupCondition":{"properties":{"operation":{"type":"string","description":"The logical operation to be applied\n"},"paramBindings":{"type":"array","items":{"$ref":"#/types/incident:index%2FAlertRouteConditionGroupConditionParamBinding:AlertRouteConditionGroupConditionParamBinding"},"description":"Bindings for the operation parameters\n"},"subject":{"type":"string","description":"The subject of the condition, on which the operation is applied\n"}},"type":"object","required":["operation","paramBindings","subject"]},"incident:index/AlertRouteConditionGroupConditionParamBinding:AlertRouteConditionGroupConditionParamBinding":{"properties":{"arrayValues":{"type":"array","items":{"$ref":"#/types/incident:index%2FAlertRouteConditionGroupConditionParamBindingArrayValue:AlertRouteConditionGroupConditionParamBindingArrayValue"},"description":"The array of literal or reference parameter values\n"},"value":{"$ref":"#/types/incident:index%2FAlertRouteConditionGroupConditionParamBindingValue:AlertRouteConditionGroupConditionParamBindingValue","description":"The literal or reference parameter value\n"}},"type":"object"},"incident:index/AlertRouteConditionGroupConditionParamBindingArrayValue:AlertRouteConditionGroupConditionParamBindingArrayValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object"},"incident:index/AlertRouteConditionGroupConditionParamBindingValue:AlertRouteConditionGroupConditionParamBindingValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object"},"incident:index/AlertRouteEscalationConfig:AlertRouteEscalationConfig":{"properties":{"autoCancelEscalations":{"type":"boolean","description":"Should we auto cancel escalations when all alerts are resolved?\n"},"escalationTargets":{"type":"array","items":{"$ref":"#/types/incident:index%2FAlertRouteEscalationConfigEscalationTarget:AlertRouteEscalationConfigEscalationTarget"},"description":"Targets for escalation\n"}},"type":"object","required":["autoCancelEscalations","escalationTargets"]},"incident:index/AlertRouteEscalationConfigEscalationTarget:AlertRouteEscalationConfigEscalationTarget":{"properties":{"escalationPaths":{"$ref":"#/types/incident:index%2FAlertRouteEscalationConfigEscalationTargetEscalationPaths:AlertRouteEscalationConfigEscalationTargetEscalationPaths"},"users":{"$ref":"#/types/incident:index%2FAlertRouteEscalationConfigEscalationTargetUsers:AlertRouteEscalationConfigEscalationTargetUsers"}},"type":"object"},"incident:index/AlertRouteEscalationConfigEscalationTargetEscalationPaths:AlertRouteEscalationConfigEscalationTargetEscalationPaths":{"properties":{"arrayValues":{"type":"array","items":{"$ref":"#/types/incident:index%2FAlertRouteEscalationConfigEscalationTargetEscalationPathsArrayValue:AlertRouteEscalationConfigEscalationTargetEscalationPathsArrayValue"},"description":"The array of literal or reference parameter values\n"},"value":{"$ref":"#/types/incident:index%2FAlertRouteEscalationConfigEscalationTargetEscalationPathsValue:AlertRouteEscalationConfigEscalationTargetEscalationPathsValue","description":"The literal or reference parameter value\n"}},"type":"object"},"incident:index/AlertRouteEscalationConfigEscalationTargetEscalationPathsArrayValue:AlertRouteEscalationConfigEscalationTargetEscalationPathsArrayValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object"},"incident:index/AlertRouteEscalationConfigEscalationTargetEscalationPathsValue:AlertRouteEscalationConfigEscalationTargetEscalationPathsValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object"},"incident:index/AlertRouteEscalationConfigEscalationTargetUsers:AlertRouteEscalationConfigEscalationTargetUsers":{"properties":{"arrayValues":{"type":"array","items":{"$ref":"#/types/incident:index%2FAlertRouteEscalationConfigEscalationTargetUsersArrayValue:AlertRouteEscalationConfigEscalationTargetUsersArrayValue"},"description":"The array of literal or reference parameter values\n"},"value":{"$ref":"#/types/incident:index%2FAlertRouteEscalationConfigEscalationTargetUsersValue:AlertRouteEscalationConfigEscalationTargetUsersValue","description":"The literal or reference parameter value\n"}},"type":"object"},"incident:index/AlertRouteEscalationConfigEscalationTargetUsersArrayValue:AlertRouteEscalationConfigEscalationTargetUsersArrayValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object"},"incident:index/AlertRouteEscalationConfigEscalationTargetUsersValue:AlertRouteEscalationConfigEscalationTargetUsersValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object"},"incident:index/AlertRouteExpression:AlertRouteExpression":{"properties":{"elseBranch":{"$ref":"#/types/incident:index%2FAlertRouteExpressionElseBranch:AlertRouteExpressionElseBranch","description":"The else branch to resort to if all operations fail\n"},"label":{"type":"string","description":"The human readable label of the expression\n"},"operations":{"type":"array","items":{"$ref":"#/types/incident:index%2FAlertRouteExpressionOperation:AlertRouteExpressionOperation"},"description":"The operations to execute in sequence for this expression\n"},"reference":{"type":"string","description":"A short ID that can be used to reference the expression\n"},"rootReference":{"type":"string","description":"The root reference for this expression (i.e. where the expression starts)\n"}},"type":"object","required":["label","operations","reference","rootReference"]},"incident:index/AlertRouteExpressionElseBranch:AlertRouteExpressionElseBranch":{"properties":{"result":{"$ref":"#/types/incident:index%2FAlertRouteExpressionElseBranchResult:AlertRouteExpressionElseBranchResult","description":"The result assumed if the else branch is reached\n"}},"type":"object","required":["result"]},"incident:index/AlertRouteExpressionElseBranchResult:AlertRouteExpressionElseBranchResult":{"properties":{"arrayValues":{"type":"array","items":{"$ref":"#/types/incident:index%2FAlertRouteExpressionElseBranchResultArrayValue:AlertRouteExpressionElseBranchResultArrayValue"},"description":"The array of literal or reference parameter values\n"},"value":{"$ref":"#/types/incident:index%2FAlertRouteExpressionElseBranchResultValue:AlertRouteExpressionElseBranchResultValue","description":"The literal or reference parameter value\n"}},"type":"object"},"incident:index/AlertRouteExpressionElseBranchResultArrayValue:AlertRouteExpressionElseBranchResultArrayValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object"},"incident:index/AlertRouteExpressionElseBranchResultValue:AlertRouteExpressionElseBranchResultValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object"},"incident:index/AlertRouteExpressionOperation:AlertRouteExpressionOperation":{"properties":{"branches":{"$ref":"#/types/incident:index%2FAlertRouteExpressionOperationBranches:AlertRouteExpressionOperationBranches","description":"An operation type that allows for a value to be set conditionally by a series of logical branches\n"},"filter":{"$ref":"#/types/incident:index%2FAlertRouteExpressionOperationFilter:AlertRouteExpressionOperationFilter","description":"An operation type that allows values to be filtered out by conditions\n"},"navigate":{"$ref":"#/types/incident:index%2FAlertRouteExpressionOperationNavigate:AlertRouteExpressionOperationNavigate","description":"An operation type that allows attributes of a type to be accessed by reference\n"},"operationType":{"type":"string","description":"Indicates which operation type to execute\n"},"parse":{"$ref":"#/types/incident:index%2FAlertRouteExpressionOperationParse:AlertRouteExpressionOperationParse","description":"An operation type that allows a value to parsed from within a JSON object\n"}},"type":"object","required":["operationType"]},"incident:index/AlertRouteExpressionOperationBranches:AlertRouteExpressionOperationBranches":{"properties":{"branches":{"type":"array","items":{"$ref":"#/types/incident:index%2FAlertRouteExpressionOperationBranchesBranch:AlertRouteExpressionOperationBranchesBranch"},"description":"The branches to apply for this operation\n"},"returns":{"$ref":"#/types/incident:index%2FAlertRouteExpressionOperationBranchesReturns:AlertRouteExpressionOperationBranchesReturns","description":"The return type of an operation\n"}},"type":"object","required":["branches","returns"]},"incident:index/AlertRouteExpressionOperationBranchesBranch:AlertRouteExpressionOperationBranchesBranch":{"properties":{"conditionGroups":{"type":"array","items":{"$ref":"#/types/incident:index%2FAlertRouteExpressionOperationBranchesBranchConditionGroup:AlertRouteExpressionOperationBranchesBranchConditionGroup"},"description":"Groups of prerequisite conditions. All conditions in at least one group must be satisfied\n"},"result":{"$ref":"#/types/incident:index%2FAlertRouteExpressionOperationBranchesBranchResult:AlertRouteExpressionOperationBranchesBranchResult","description":"The result assumed if the condition groups are satisfied\n"}},"type":"object","required":["conditionGroups","result"]},"incident:index/AlertRouteExpressionOperationBranchesBranchConditionGroup:AlertRouteExpressionOperationBranchesBranchConditionGroup":{"properties":{"conditions":{"type":"array","items":{"$ref":"#/types/incident:index%2FAlertRouteExpressionOperationBranchesBranchConditionGroupCondition:AlertRouteExpressionOperationBranchesBranchConditionGroupCondition"},"description":"The prerequisite conditions that must all be satisfied\n"}},"type":"object","required":["conditions"]},"incident:index/AlertRouteExpressionOperationBranchesBranchConditionGroupCondition:AlertRouteExpressionOperationBranchesBranchConditionGroupCondition":{"properties":{"operation":{"type":"string","description":"The logical operation to be applied\n"},"paramBindings":{"type":"array","items":{"$ref":"#/types/incident:index%2FAlertRouteExpressionOperationBranchesBranchConditionGroupConditionParamBinding:AlertRouteExpressionOperationBranchesBranchConditionGroupConditionParamBinding"},"description":"Bindings for the operation parameters\n"},"subject":{"type":"string","description":"The subject of the condition, on which the operation is applied\n"}},"type":"object","required":["operation","paramBindings","subject"]},"incident:index/AlertRouteExpressionOperationBranchesBranchConditionGroupConditionParamBinding:AlertRouteExpressionOperationBranchesBranchConditionGroupConditionParamBinding":{"properties":{"arrayValues":{"type":"array","items":{"$ref":"#/types/incident:index%2FAlertRouteExpressionOperationBranchesBranchConditionGroupConditionParamBindingArrayValue:AlertRouteExpressionOperationBranchesBranchConditionGroupConditionParamBindingArrayValue"},"description":"The array of literal or reference parameter values\n"},"value":{"$ref":"#/types/incident:index%2FAlertRouteExpressionOperationBranchesBranchConditionGroupConditionParamBindingValue:AlertRouteExpressionOperationBranchesBranchConditionGroupConditionParamBindingValue","description":"The literal or reference parameter value\n"}},"type":"object"},"incident:index/AlertRouteExpressionOperationBranchesBranchConditionGroupConditionParamBindingArrayValue:AlertRouteExpressionOperationBranchesBranchConditionGroupConditionParamBindingArrayValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object"},"incident:index/AlertRouteExpressionOperationBranchesBranchConditionGroupConditionParamBindingValue:AlertRouteExpressionOperationBranchesBranchConditionGroupConditionParamBindingValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object"},"incident:index/AlertRouteExpressionOperationBranchesBranchResult:AlertRouteExpressionOperationBranchesBranchResult":{"properties":{"arrayValues":{"type":"array","items":{"$ref":"#/types/incident:index%2FAlertRouteExpressionOperationBranchesBranchResultArrayValue:AlertRouteExpressionOperationBranchesBranchResultArrayValue"},"description":"The array of literal or reference parameter values\n"},"value":{"$ref":"#/types/incident:index%2FAlertRouteExpressionOperationBranchesBranchResultValue:AlertRouteExpressionOperationBranchesBranchResultValue","description":"The literal or reference parameter value\n"}},"type":"object"},"incident:index/AlertRouteExpressionOperationBranchesBranchResultArrayValue:AlertRouteExpressionOperationBranchesBranchResultArrayValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object"},"incident:index/AlertRouteExpressionOperationBranchesBranchResultValue:AlertRouteExpressionOperationBranchesBranchResultValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object"},"incident:index/AlertRouteExpressionOperationBranchesReturns:AlertRouteExpressionOperationBranchesReturns":{"properties":{"array":{"type":"boolean","description":"Whether the return value should be single or multi-value\n"},"type":{"type":"string","description":"Expected return type of this expression (what to try casting the result to)\n"}},"type":"object","required":["array","type"]},"incident:index/AlertRouteExpressionOperationFilter:AlertRouteExpressionOperationFilter":{"properties":{"conditionGroups":{"type":"array","items":{"$ref":"#/types/incident:index%2FAlertRouteExpressionOperationFilterConditionGroup:AlertRouteExpressionOperationFilterConditionGroup"},"description":"Groups of prerequisite conditions. All conditions in at least one group must be satisfied\n"}},"type":"object","required":["conditionGroups"]},"incident:index/AlertRouteExpressionOperationFilterConditionGroup:AlertRouteExpressionOperationFilterConditionGroup":{"properties":{"conditions":{"type":"array","items":{"$ref":"#/types/incident:index%2FAlertRouteExpressionOperationFilterConditionGroupCondition:AlertRouteExpressionOperationFilterConditionGroupCondition"},"description":"The prerequisite conditions that must all be satisfied\n"}},"type":"object","required":["conditions"]},"incident:index/AlertRouteExpressionOperationFilterConditionGroupCondition:AlertRouteExpressionOperationFilterConditionGroupCondition":{"properties":{"operation":{"type":"string","description":"The logical operation to be applied\n"},"paramBindings":{"type":"array","items":{"$ref":"#/types/incident:index%2FAlertRouteExpressionOperationFilterConditionGroupConditionParamBinding:AlertRouteExpressionOperationFilterConditionGroupConditionParamBinding"},"description":"Bindings for the operation parameters\n"},"subject":{"type":"string","description":"The subject of the condition, on which the operation is applied\n"}},"type":"object","required":["operation","paramBindings","subject"]},"incident:index/AlertRouteExpressionOperationFilterConditionGroupConditionParamBinding:AlertRouteExpressionOperationFilterConditionGroupConditionParamBinding":{"properties":{"arrayValues":{"type":"array","items":{"$ref":"#/types/incident:index%2FAlertRouteExpressionOperationFilterConditionGroupConditionParamBindingArrayValue:AlertRouteExpressionOperationFilterConditionGroupConditionParamBindingArrayValue"},"description":"The array of literal or reference parameter values\n"},"value":{"$ref":"#/types/incident:index%2FAlertRouteExpressionOperationFilterConditionGroupConditionParamBindingValue:AlertRouteExpressionOperationFilterConditionGroupConditionParamBindingValue","description":"The literal or reference parameter value\n"}},"type":"object"},"incident:index/AlertRouteExpressionOperationFilterConditionGroupConditionParamBindingArrayValue:AlertRouteExpressionOperationFilterConditionGroupConditionParamBindingArrayValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object"},"incident:index/AlertRouteExpressionOperationFilterConditionGroupConditionParamBindingValue:AlertRouteExpressionOperationFilterConditionGroupConditionParamBindingValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object"},"incident:index/AlertRouteExpressionOperationNavigate:AlertRouteExpressionOperationNavigate":{"properties":{"reference":{"type":"string"}},"type":"object","required":["reference"]},"incident:index/AlertRouteExpressionOperationParse:AlertRouteExpressionOperationParse":{"properties":{"returns":{"$ref":"#/types/incident:index%2FAlertRouteExpressionOperationParseReturns:AlertRouteExpressionOperationParseReturns","description":"The return type of an operation\n"},"source":{"type":"string","description":"The ES5 Javascript expression to execute\n"}},"type":"object","required":["returns","source"]},"incident:index/AlertRouteExpressionOperationParseReturns:AlertRouteExpressionOperationParseReturns":{"properties":{"array":{"type":"boolean","description":"Whether the return value should be single or multi-value\n"},"type":{"type":"string","description":"Expected return type of this expression (what to try casting the result to)\n"}},"type":"object","required":["array","type"]},"incident:index/AlertRouteIncidentConfig:AlertRouteIncidentConfig":{"properties":{"autoDeclineEnabled":{"type":"boolean","description":"Should triage incidents be declined when alerts are resolved?\n"},"autoRelateGroupedAlerts":{"type":"boolean","description":"Should grouped alerts automatically be related to active incidents without confirmation?\n"},"conditionGroups":{"type":"array","items":{"$ref":"#/types/incident:index%2FAlertRouteIncidentConfigConditionGroup:AlertRouteIncidentConfigConditionGroup"},"description":"Groups of prerequisite conditions. All conditions in at least one group must be satisfied\n"},"deferTimeSeconds":{"type":"number","description":"How long should the escalation defer time be?\n"},"enabled":{"type":"boolean","description":"Whether incident creation is enabled for this alert route\n"},"groupingKeys":{"type":"array","items":{"$ref":"#/types/incident:index%2FAlertRouteIncidentConfigGroupingKey:AlertRouteIncidentConfigGroupingKey"},"description":"Which attributes should this alert route use to group alerts?\n"},"groupingWindowSeconds":{"type":"number","description":"How large should the grouping window be?\n"}},"type":"object","required":["autoDeclineEnabled","conditionGroups","deferTimeSeconds","enabled","groupingKeys","groupingWindowSeconds"],"language":{"nodejs":{"requiredOutputs":["autoDeclineEnabled","autoRelateGroupedAlerts","conditionGroups","deferTimeSeconds","enabled","groupingKeys","groupingWindowSeconds"]}}},"incident:index/AlertRouteIncidentConfigConditionGroup:AlertRouteIncidentConfigConditionGroup":{"properties":{"conditions":{"type":"array","items":{"$ref":"#/types/incident:index%2FAlertRouteIncidentConfigConditionGroupCondition:AlertRouteIncidentConfigConditionGroupCondition"},"description":"The prerequisite conditions that must all be satisfied\n"}},"type":"object","required":["conditions"]},"incident:index/AlertRouteIncidentConfigConditionGroupCondition:AlertRouteIncidentConfigConditionGroupCondition":{"properties":{"operation":{"type":"string","description":"The logical operation to be applied\n"},"paramBindings":{"type":"array","items":{"$ref":"#/types/incident:index%2FAlertRouteIncidentConfigConditionGroupConditionParamBinding:AlertRouteIncidentConfigConditionGroupConditionParamBinding"},"description":"Bindings for the operation parameters\n"},"subject":{"type":"string","description":"The subject of the condition, on which the operation is applied\n"}},"type":"object","required":["operation","paramBindings","subject"]},"incident:index/AlertRouteIncidentConfigConditionGroupConditionParamBinding:AlertRouteIncidentConfigConditionGroupConditionParamBinding":{"properties":{"arrayValues":{"type":"array","items":{"$ref":"#/types/incident:index%2FAlertRouteIncidentConfigConditionGroupConditionParamBindingArrayValue:AlertRouteIncidentConfigConditionGroupConditionParamBindingArrayValue"},"description":"The array of literal or reference parameter values\n"},"value":{"$ref":"#/types/incident:index%2FAlertRouteIncidentConfigConditionGroupConditionParamBindingValue:AlertRouteIncidentConfigConditionGroupConditionParamBindingValue","description":"The literal or reference parameter value\n"}},"type":"object"},"incident:index/AlertRouteIncidentConfigConditionGroupConditionParamBindingArrayValue:AlertRouteIncidentConfigConditionGroupConditionParamBindingArrayValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object"},"incident:index/AlertRouteIncidentConfigConditionGroupConditionParamBindingValue:AlertRouteIncidentConfigConditionGroupConditionParamBindingValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object"},"incident:index/AlertRouteIncidentConfigGroupingKey:AlertRouteIncidentConfigGroupingKey":{"properties":{"reference":{"type":"string","description":"The alert attribute ID to use as a grouping key\n"}},"type":"object","required":["reference"]},"incident:index/AlertRouteIncidentTemplate:AlertRouteIncidentTemplate":{"properties":{"customFields":{"type":"array","items":{"$ref":"#/types/incident:index%2FAlertRouteIncidentTemplateCustomField:AlertRouteIncidentTemplateCustomField"},"description":"Custom fields configuration\n"},"incidentMode":{"$ref":"#/types/incident:index%2FAlertRouteIncidentTemplateIncidentMode:AlertRouteIncidentTemplateIncidentMode"},"incidentType":{"$ref":"#/types/incident:index%2FAlertRouteIncidentTemplateIncidentType:AlertRouteIncidentTemplateIncidentType"},"name":{"$ref":"#/types/incident:index%2FAlertRouteIncidentTemplateName:AlertRouteIncidentTemplateName"},"severity":{"$ref":"#/types/incident:index%2FAlertRouteIncidentTemplateSeverity:AlertRouteIncidentTemplateSeverity"},"startInTriage":{"$ref":"#/types/incident:index%2FAlertRouteIncidentTemplateStartInTriage:AlertRouteIncidentTemplateStartInTriage"},"summary":{"$ref":"#/types/incident:index%2FAlertRouteIncidentTemplateSummary:AlertRouteIncidentTemplateSummary"},"workspace":{"$ref":"#/types/incident:index%2FAlertRouteIncidentTemplateWorkspace:AlertRouteIncidentTemplateWorkspace"}},"type":"object","required":["name","summary"],"language":{"nodejs":{"requiredOutputs":["name","severity","summary"]}}},"incident:index/AlertRouteIncidentTemplateCustomField:AlertRouteIncidentTemplateCustomField":{"properties":{"binding":{"$ref":"#/types/incident:index%2FAlertRouteIncidentTemplateCustomFieldBinding:AlertRouteIncidentTemplateCustomFieldBinding","description":"Binding for the custom field\n"},"customFieldId":{"type":"string","description":"ID of the custom field\n"},"mergeStrategy":{"type":"string","description":"The strategy to use when multiple alerts match this route. Possible values are: `first-wins`, `last-wins`, \u003cspan pulumi-lang-nodejs=\"`append`\" pulumi-lang-dotnet=\"`Append`\" pulumi-lang-go=\"`append`\" pulumi-lang-python=\"`append`\" pulumi-lang-yaml=\"`append`\" pulumi-lang-java=\"`append`\"\u003e`append`\u003c/span\u003e.\n"}},"type":"object","required":["binding","customFieldId","mergeStrategy"]},"incident:index/AlertRouteIncidentTemplateCustomFieldBinding:AlertRouteIncidentTemplateCustomFieldBinding":{"properties":{"arrayValues":{"type":"array","items":{"$ref":"#/types/incident:index%2FAlertRouteIncidentTemplateCustomFieldBindingArrayValue:AlertRouteIncidentTemplateCustomFieldBindingArrayValue"},"description":"The array of literal or reference parameter values\n"},"value":{"$ref":"#/types/incident:index%2FAlertRouteIncidentTemplateCustomFieldBindingValue:AlertRouteIncidentTemplateCustomFieldBindingValue","description":"The literal or reference parameter value\n"}},"type":"object"},"incident:index/AlertRouteIncidentTemplateCustomFieldBindingArrayValue:AlertRouteIncidentTemplateCustomFieldBindingArrayValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object"},"incident:index/AlertRouteIncidentTemplateCustomFieldBindingValue:AlertRouteIncidentTemplateCustomFieldBindingValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object"},"incident:index/AlertRouteIncidentTemplateIncidentMode:AlertRouteIncidentTemplateIncidentMode":{"properties":{"arrayValues":{"type":"array","items":{"$ref":"#/types/incident:index%2FAlertRouteIncidentTemplateIncidentModeArrayValue:AlertRouteIncidentTemplateIncidentModeArrayValue"},"description":"The array of literal or reference parameter values\n"},"value":{"$ref":"#/types/incident:index%2FAlertRouteIncidentTemplateIncidentModeValue:AlertRouteIncidentTemplateIncidentModeValue","description":"The literal or reference parameter value\n"}},"type":"object"},"incident:index/AlertRouteIncidentTemplateIncidentModeArrayValue:AlertRouteIncidentTemplateIncidentModeArrayValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object"},"incident:index/AlertRouteIncidentTemplateIncidentModeValue:AlertRouteIncidentTemplateIncidentModeValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object"},"incident:index/AlertRouteIncidentTemplateIncidentType:AlertRouteIncidentTemplateIncidentType":{"properties":{"arrayValues":{"type":"array","items":{"$ref":"#/types/incident:index%2FAlertRouteIncidentTemplateIncidentTypeArrayValue:AlertRouteIncidentTemplateIncidentTypeArrayValue"},"description":"The array of literal or reference parameter values\n"},"value":{"$ref":"#/types/incident:index%2FAlertRouteIncidentTemplateIncidentTypeValue:AlertRouteIncidentTemplateIncidentTypeValue","description":"The literal or reference parameter value\n"}},"type":"object"},"incident:index/AlertRouteIncidentTemplateIncidentTypeArrayValue:AlertRouteIncidentTemplateIncidentTypeArrayValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object"},"incident:index/AlertRouteIncidentTemplateIncidentTypeValue:AlertRouteIncidentTemplateIncidentTypeValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object"},"incident:index/AlertRouteIncidentTemplateName:AlertRouteIncidentTemplateName":{"properties":{"arrayValues":{"type":"array","items":{"$ref":"#/types/incident:index%2FAlertRouteIncidentTemplateNameArrayValue:AlertRouteIncidentTemplateNameArrayValue"},"description":"The array of literal or reference parameter values\n"},"autogenerated":{"type":"boolean","description":"Whether this attribute should be autogenerated using AI\n"},"value":{"$ref":"#/types/incident:index%2FAlertRouteIncidentTemplateNameValue:AlertRouteIncidentTemplateNameValue","description":"The literal or reference parameter value\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["autogenerated"]}}},"incident:index/AlertRouteIncidentTemplateNameArrayValue:AlertRouteIncidentTemplateNameArrayValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object"},"incident:index/AlertRouteIncidentTemplateNameValue:AlertRouteIncidentTemplateNameValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object"},"incident:index/AlertRouteIncidentTemplateSeverity:AlertRouteIncidentTemplateSeverity":{"properties":{"binding":{"$ref":"#/types/incident:index%2FAlertRouteIncidentTemplateSeverityBinding:AlertRouteIncidentTemplateSeverityBinding"},"mergeStrategy":{"type":"string","description":"Strategy for merging severity when multiple alerts create/update the same incident. Possible values are: `first-wins`, \u003cspan pulumi-lang-nodejs=\"`max`\" pulumi-lang-dotnet=\"`Max`\" pulumi-lang-go=\"`max`\" pulumi-lang-python=\"`max`\" pulumi-lang-yaml=\"`max`\" pulumi-lang-java=\"`max`\"\u003e`max`\u003c/span\u003e.\n"}},"type":"object","required":["mergeStrategy"]},"incident:index/AlertRouteIncidentTemplateSeverityBinding:AlertRouteIncidentTemplateSeverityBinding":{"properties":{"arrayValues":{"type":"array","items":{"$ref":"#/types/incident:index%2FAlertRouteIncidentTemplateSeverityBindingArrayValue:AlertRouteIncidentTemplateSeverityBindingArrayValue"},"description":"The array of literal or reference parameter values\n"},"value":{"$ref":"#/types/incident:index%2FAlertRouteIncidentTemplateSeverityBindingValue:AlertRouteIncidentTemplateSeverityBindingValue","description":"The literal or reference parameter value\n"}},"type":"object"},"incident:index/AlertRouteIncidentTemplateSeverityBindingArrayValue:AlertRouteIncidentTemplateSeverityBindingArrayValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object"},"incident:index/AlertRouteIncidentTemplateSeverityBindingValue:AlertRouteIncidentTemplateSeverityBindingValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object"},"incident:index/AlertRouteIncidentTemplateStartInTriage:AlertRouteIncidentTemplateStartInTriage":{"properties":{"arrayValues":{"type":"array","items":{"$ref":"#/types/incident:index%2FAlertRouteIncidentTemplateStartInTriageArrayValue:AlertRouteIncidentTemplateStartInTriageArrayValue"},"description":"The array of literal or reference parameter values\n"},"value":{"$ref":"#/types/incident:index%2FAlertRouteIncidentTemplateStartInTriageValue:AlertRouteIncidentTemplateStartInTriageValue","description":"The literal or reference parameter value\n"}},"type":"object"},"incident:index/AlertRouteIncidentTemplateStartInTriageArrayValue:AlertRouteIncidentTemplateStartInTriageArrayValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object"},"incident:index/AlertRouteIncidentTemplateStartInTriageValue:AlertRouteIncidentTemplateStartInTriageValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object"},"incident:index/AlertRouteIncidentTemplateSummary:AlertRouteIncidentTemplateSummary":{"properties":{"arrayValues":{"type":"array","items":{"$ref":"#/types/incident:index%2FAlertRouteIncidentTemplateSummaryArrayValue:AlertRouteIncidentTemplateSummaryArrayValue"},"description":"The array of literal or reference parameter values\n"},"autogenerated":{"type":"boolean","description":"Whether this attribute should be autogenerated using AI\n"},"value":{"$ref":"#/types/incident:index%2FAlertRouteIncidentTemplateSummaryValue:AlertRouteIncidentTemplateSummaryValue","description":"The literal or reference parameter value\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["autogenerated"]}}},"incident:index/AlertRouteIncidentTemplateSummaryArrayValue:AlertRouteIncidentTemplateSummaryArrayValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object"},"incident:index/AlertRouteIncidentTemplateSummaryValue:AlertRouteIncidentTemplateSummaryValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object"},"incident:index/AlertRouteIncidentTemplateWorkspace:AlertRouteIncidentTemplateWorkspace":{"properties":{"arrayValues":{"type":"array","items":{"$ref":"#/types/incident:index%2FAlertRouteIncidentTemplateWorkspaceArrayValue:AlertRouteIncidentTemplateWorkspaceArrayValue"},"description":"The array of literal or reference parameter values\n"},"value":{"$ref":"#/types/incident:index%2FAlertRouteIncidentTemplateWorkspaceValue:AlertRouteIncidentTemplateWorkspaceValue","description":"The literal or reference parameter value\n"}},"type":"object"},"incident:index/AlertRouteIncidentTemplateWorkspaceArrayValue:AlertRouteIncidentTemplateWorkspaceArrayValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object"},"incident:index/AlertRouteIncidentTemplateWorkspaceValue:AlertRouteIncidentTemplateWorkspaceValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object"},"incident:index/AlertRouteMessageTemplate:AlertRouteMessageTemplate":{"properties":{"arrayValues":{"type":"array","items":{"$ref":"#/types/incident:index%2FAlertRouteMessageTemplateArrayValue:AlertRouteMessageTemplateArrayValue"},"description":"The array of literal or reference parameter values\n"},"value":{"$ref":"#/types/incident:index%2FAlertRouteMessageTemplateValue:AlertRouteMessageTemplateValue","description":"The literal or reference parameter value\n"}},"type":"object"},"incident:index/AlertRouteMessageTemplateArrayValue:AlertRouteMessageTemplateArrayValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object"},"incident:index/AlertRouteMessageTemplateValue:AlertRouteMessageTemplateValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object"},"incident:index/AlertSourceHttpCustomOptions:AlertSourceHttpCustomOptions":{"properties":{"deduplicationKeyPath":{"type":"string","description":"JSON path to extract the deduplication key from the payload\n"},"transformExpression":{"type":"string","description":"JavaScript expression that returns an object with all alert fields\n"}},"type":"object","required":["deduplicationKeyPath","transformExpression"]},"incident:index/AlertSourceJiraOptions:AlertSourceJiraOptions":{"properties":{"projectIds":{"type":"array","items":{"type":"string"},"description":"Which projects in Jira should this alert source watch for new issues? IDs can either be IDs of the projects in Jira, or ID of catalog entries in the 'Jira Project' catalog type.\n"}},"type":"object"},"incident:index/AlertSourceTemplate:AlertSourceTemplate":{"properties":{"attributes":{"type":"array","items":{"$ref":"#/types/incident:index%2FAlertSourceTemplateAttribute:AlertSourceTemplateAttribute"},"description":"Attributes to set on alerts coming from this source, with a binding describing how to set them.\n"},"description":{"$ref":"#/types/incident:index%2FAlertSourceTemplateDescription:AlertSourceTemplateDescription"},"expressions":{"type":"array","items":{"$ref":"#/types/incident:index%2FAlertSourceTemplateExpression:AlertSourceTemplateExpression"},"description":"The expressions to be prepared for use by steps and conditions\n"},"isPrivate":{"type":"boolean","description":"Whether or not alerts produced by this source should be private\n"},"title":{"$ref":"#/types/incident:index%2FAlertSourceTemplateTitle:AlertSourceTemplateTitle"},"visibleToTeams":{"$ref":"#/types/incident:index%2FAlertSourceTemplateVisibleToTeams:AlertSourceTemplateVisibleToTeams"}},"type":"object","required":["attributes","description","expressions","title"],"language":{"nodejs":{"requiredOutputs":["attributes","description","expressions","isPrivate","title"]}}},"incident:index/AlertSourceTemplateAttribute:AlertSourceTemplateAttribute":{"properties":{"alertAttributeId":{"type":"string","description":"ID of the alert attribute to set with this binding\n"},"binding":{"$ref":"#/types/incident:index%2FAlertSourceTemplateAttributeBinding:AlertSourceTemplateAttributeBinding"}},"type":"object","required":["alertAttributeId","binding"]},"incident:index/AlertSourceTemplateAttributeBinding:AlertSourceTemplateAttributeBinding":{"properties":{"arrayValues":{"type":"array","items":{"$ref":"#/types/incident:index%2FAlertSourceTemplateAttributeBindingArrayValue:AlertSourceTemplateAttributeBindingArrayValue"},"description":"The array of literal or reference parameter values\n"},"mergeStrategy":{"type":"string","description":"Merge strategy for this attribute when alert updates. Possible values are: \u003cspan pulumi-lang-nodejs=\"`firstWins`\" pulumi-lang-dotnet=\"`FirstWins`\" pulumi-lang-go=\"`firstWins`\" pulumi-lang-python=\"`first_wins`\" pulumi-lang-yaml=\"`firstWins`\" pulumi-lang-java=\"`firstWins`\"\u003e`first_wins`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`lastWins`\" pulumi-lang-dotnet=\"`LastWins`\" pulumi-lang-go=\"`lastWins`\" pulumi-lang-python=\"`last_wins`\" pulumi-lang-yaml=\"`lastWins`\" pulumi-lang-java=\"`lastWins`\"\u003e`last_wins`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`append`\" pulumi-lang-dotnet=\"`Append`\" pulumi-lang-go=\"`append`\" pulumi-lang-python=\"`append`\" pulumi-lang-yaml=\"`append`\" pulumi-lang-java=\"`append`\"\u003e`append`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`max`\" pulumi-lang-dotnet=\"`Max`\" pulumi-lang-go=\"`max`\" pulumi-lang-python=\"`max`\" pulumi-lang-yaml=\"`max`\" pulumi-lang-java=\"`max`\"\u003e`max`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`min`\" pulumi-lang-dotnet=\"`Min`\" pulumi-lang-go=\"`min`\" pulumi-lang-python=\"`min`\" pulumi-lang-yaml=\"`min`\" pulumi-lang-java=\"`min`\"\u003e`min`\u003c/span\u003e.\n"},"value":{"$ref":"#/types/incident:index%2FAlertSourceTemplateAttributeBindingValue:AlertSourceTemplateAttributeBindingValue","description":"The literal or reference parameter value\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["mergeStrategy"]}}},"incident:index/AlertSourceTemplateAttributeBindingArrayValue:AlertSourceTemplateAttributeBindingArrayValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object"},"incident:index/AlertSourceTemplateAttributeBindingValue:AlertSourceTemplateAttributeBindingValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object"},"incident:index/AlertSourceTemplateDescription:AlertSourceTemplateDescription":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object"},"incident:index/AlertSourceTemplateExpression:AlertSourceTemplateExpression":{"properties":{"elseBranch":{"$ref":"#/types/incident:index%2FAlertSourceTemplateExpressionElseBranch:AlertSourceTemplateExpressionElseBranch","description":"The else branch to resort to if all operations fail\n"},"label":{"type":"string","description":"The human readable label of the expression\n"},"operations":{"type":"array","items":{"$ref":"#/types/incident:index%2FAlertSourceTemplateExpressionOperation:AlertSourceTemplateExpressionOperation"},"description":"The operations to execute in sequence for this expression\n"},"reference":{"type":"string","description":"A short ID that can be used to reference the expression\n"},"rootReference":{"type":"string","description":"The root reference for this expression (i.e. where the expression starts)\n"}},"type":"object","required":["label","operations","reference","rootReference"]},"incident:index/AlertSourceTemplateExpressionElseBranch:AlertSourceTemplateExpressionElseBranch":{"properties":{"result":{"$ref":"#/types/incident:index%2FAlertSourceTemplateExpressionElseBranchResult:AlertSourceTemplateExpressionElseBranchResult","description":"The result assumed if the else branch is reached\n"}},"type":"object","required":["result"]},"incident:index/AlertSourceTemplateExpressionElseBranchResult:AlertSourceTemplateExpressionElseBranchResult":{"properties":{"arrayValues":{"type":"array","items":{"$ref":"#/types/incident:index%2FAlertSourceTemplateExpressionElseBranchResultArrayValue:AlertSourceTemplateExpressionElseBranchResultArrayValue"},"description":"The array of literal or reference parameter values\n"},"value":{"$ref":"#/types/incident:index%2FAlertSourceTemplateExpressionElseBranchResultValue:AlertSourceTemplateExpressionElseBranchResultValue","description":"The literal or reference parameter value\n"}},"type":"object"},"incident:index/AlertSourceTemplateExpressionElseBranchResultArrayValue:AlertSourceTemplateExpressionElseBranchResultArrayValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object"},"incident:index/AlertSourceTemplateExpressionElseBranchResultValue:AlertSourceTemplateExpressionElseBranchResultValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object"},"incident:index/AlertSourceTemplateExpressionOperation:AlertSourceTemplateExpressionOperation":{"properties":{"branches":{"$ref":"#/types/incident:index%2FAlertSourceTemplateExpressionOperationBranches:AlertSourceTemplateExpressionOperationBranches","description":"An operation type that allows for a value to be set conditionally by a series of logical branches\n"},"filter":{"$ref":"#/types/incident:index%2FAlertSourceTemplateExpressionOperationFilter:AlertSourceTemplateExpressionOperationFilter","description":"An operation type that allows values to be filtered out by conditions\n"},"navigate":{"$ref":"#/types/incident:index%2FAlertSourceTemplateExpressionOperationNavigate:AlertSourceTemplateExpressionOperationNavigate","description":"An operation type that allows attributes of a type to be accessed by reference\n"},"operationType":{"type":"string","description":"Indicates which operation type to execute\n"},"parse":{"$ref":"#/types/incident:index%2FAlertSourceTemplateExpressionOperationParse:AlertSourceTemplateExpressionOperationParse","description":"An operation type that allows a value to parsed from within a JSON object\n"}},"type":"object","required":["operationType"]},"incident:index/AlertSourceTemplateExpressionOperationBranches:AlertSourceTemplateExpressionOperationBranches":{"properties":{"branches":{"type":"array","items":{"$ref":"#/types/incident:index%2FAlertSourceTemplateExpressionOperationBranchesBranch:AlertSourceTemplateExpressionOperationBranchesBranch"},"description":"The branches to apply for this operation\n"},"returns":{"$ref":"#/types/incident:index%2FAlertSourceTemplateExpressionOperationBranchesReturns:AlertSourceTemplateExpressionOperationBranchesReturns","description":"The return type of an operation\n"}},"type":"object","required":["branches","returns"]},"incident:index/AlertSourceTemplateExpressionOperationBranchesBranch:AlertSourceTemplateExpressionOperationBranchesBranch":{"properties":{"conditionGroups":{"type":"array","items":{"$ref":"#/types/incident:index%2FAlertSourceTemplateExpressionOperationBranchesBranchConditionGroup:AlertSourceTemplateExpressionOperationBranchesBranchConditionGroup"},"description":"Groups of prerequisite conditions. All conditions in at least one group must be satisfied\n"},"result":{"$ref":"#/types/incident:index%2FAlertSourceTemplateExpressionOperationBranchesBranchResult:AlertSourceTemplateExpressionOperationBranchesBranchResult","description":"The result assumed if the condition groups are satisfied\n"}},"type":"object","required":["conditionGroups","result"]},"incident:index/AlertSourceTemplateExpressionOperationBranchesBranchConditionGroup:AlertSourceTemplateExpressionOperationBranchesBranchConditionGroup":{"properties":{"conditions":{"type":"array","items":{"$ref":"#/types/incident:index%2FAlertSourceTemplateExpressionOperationBranchesBranchConditionGroupCondition:AlertSourceTemplateExpressionOperationBranchesBranchConditionGroupCondition"},"description":"The prerequisite conditions that must all be satisfied\n"}},"type":"object","required":["conditions"]},"incident:index/AlertSourceTemplateExpressionOperationBranchesBranchConditionGroupCondition:AlertSourceTemplateExpressionOperationBranchesBranchConditionGroupCondition":{"properties":{"operation":{"type":"string","description":"The logical operation to be applied\n"},"paramBindings":{"type":"array","items":{"$ref":"#/types/incident:index%2FAlertSourceTemplateExpressionOperationBranchesBranchConditionGroupConditionParamBinding:AlertSourceTemplateExpressionOperationBranchesBranchConditionGroupConditionParamBinding"},"description":"Bindings for the operation parameters\n"},"subject":{"type":"string","description":"The subject of the condition, on which the operation is applied\n"}},"type":"object","required":["operation","paramBindings","subject"]},"incident:index/AlertSourceTemplateExpressionOperationBranchesBranchConditionGroupConditionParamBinding:AlertSourceTemplateExpressionOperationBranchesBranchConditionGroupConditionParamBinding":{"properties":{"arrayValues":{"type":"array","items":{"$ref":"#/types/incident:index%2FAlertSourceTemplateExpressionOperationBranchesBranchConditionGroupConditionParamBindingArrayValue:AlertSourceTemplateExpressionOperationBranchesBranchConditionGroupConditionParamBindingArrayValue"},"description":"The array of literal or reference parameter values\n"},"value":{"$ref":"#/types/incident:index%2FAlertSourceTemplateExpressionOperationBranchesBranchConditionGroupConditionParamBindingValue:AlertSourceTemplateExpressionOperationBranchesBranchConditionGroupConditionParamBindingValue","description":"The literal or reference parameter value\n"}},"type":"object"},"incident:index/AlertSourceTemplateExpressionOperationBranchesBranchConditionGroupConditionParamBindingArrayValue:AlertSourceTemplateExpressionOperationBranchesBranchConditionGroupConditionParamBindingArrayValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object"},"incident:index/AlertSourceTemplateExpressionOperationBranchesBranchConditionGroupConditionParamBindingValue:AlertSourceTemplateExpressionOperationBranchesBranchConditionGroupConditionParamBindingValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object"},"incident:index/AlertSourceTemplateExpressionOperationBranchesBranchResult:AlertSourceTemplateExpressionOperationBranchesBranchResult":{"properties":{"arrayValues":{"type":"array","items":{"$ref":"#/types/incident:index%2FAlertSourceTemplateExpressionOperationBranchesBranchResultArrayValue:AlertSourceTemplateExpressionOperationBranchesBranchResultArrayValue"},"description":"The array of literal or reference parameter values\n"},"value":{"$ref":"#/types/incident:index%2FAlertSourceTemplateExpressionOperationBranchesBranchResultValue:AlertSourceTemplateExpressionOperationBranchesBranchResultValue","description":"The literal or reference parameter value\n"}},"type":"object"},"incident:index/AlertSourceTemplateExpressionOperationBranchesBranchResultArrayValue:AlertSourceTemplateExpressionOperationBranchesBranchResultArrayValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object"},"incident:index/AlertSourceTemplateExpressionOperationBranchesBranchResultValue:AlertSourceTemplateExpressionOperationBranchesBranchResultValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object"},"incident:index/AlertSourceTemplateExpressionOperationBranchesReturns:AlertSourceTemplateExpressionOperationBranchesReturns":{"properties":{"array":{"type":"boolean","description":"Whether the return value should be single or multi-value\n"},"type":{"type":"string","description":"Expected return type of this expression (what to try casting the result to)\n"}},"type":"object","required":["array","type"]},"incident:index/AlertSourceTemplateExpressionOperationFilter:AlertSourceTemplateExpressionOperationFilter":{"properties":{"conditionGroups":{"type":"array","items":{"$ref":"#/types/incident:index%2FAlertSourceTemplateExpressionOperationFilterConditionGroup:AlertSourceTemplateExpressionOperationFilterConditionGroup"},"description":"Groups of prerequisite conditions. All conditions in at least one group must be satisfied\n"}},"type":"object","required":["conditionGroups"]},"incident:index/AlertSourceTemplateExpressionOperationFilterConditionGroup:AlertSourceTemplateExpressionOperationFilterConditionGroup":{"properties":{"conditions":{"type":"array","items":{"$ref":"#/types/incident:index%2FAlertSourceTemplateExpressionOperationFilterConditionGroupCondition:AlertSourceTemplateExpressionOperationFilterConditionGroupCondition"},"description":"The prerequisite conditions that must all be satisfied\n"}},"type":"object","required":["conditions"]},"incident:index/AlertSourceTemplateExpressionOperationFilterConditionGroupCondition:AlertSourceTemplateExpressionOperationFilterConditionGroupCondition":{"properties":{"operation":{"type":"string","description":"The logical operation to be applied\n"},"paramBindings":{"type":"array","items":{"$ref":"#/types/incident:index%2FAlertSourceTemplateExpressionOperationFilterConditionGroupConditionParamBinding:AlertSourceTemplateExpressionOperationFilterConditionGroupConditionParamBinding"},"description":"Bindings for the operation parameters\n"},"subject":{"type":"string","description":"The subject of the condition, on which the operation is applied\n"}},"type":"object","required":["operation","paramBindings","subject"]},"incident:index/AlertSourceTemplateExpressionOperationFilterConditionGroupConditionParamBinding:AlertSourceTemplateExpressionOperationFilterConditionGroupConditionParamBinding":{"properties":{"arrayValues":{"type":"array","items":{"$ref":"#/types/incident:index%2FAlertSourceTemplateExpressionOperationFilterConditionGroupConditionParamBindingArrayValue:AlertSourceTemplateExpressionOperationFilterConditionGroupConditionParamBindingArrayValue"},"description":"The array of literal or reference parameter values\n"},"value":{"$ref":"#/types/incident:index%2FAlertSourceTemplateExpressionOperationFilterConditionGroupConditionParamBindingValue:AlertSourceTemplateExpressionOperationFilterConditionGroupConditionParamBindingValue","description":"The literal or reference parameter value\n"}},"type":"object"},"incident:index/AlertSourceTemplateExpressionOperationFilterConditionGroupConditionParamBindingArrayValue:AlertSourceTemplateExpressionOperationFilterConditionGroupConditionParamBindingArrayValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object"},"incident:index/AlertSourceTemplateExpressionOperationFilterConditionGroupConditionParamBindingValue:AlertSourceTemplateExpressionOperationFilterConditionGroupConditionParamBindingValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object"},"incident:index/AlertSourceTemplateExpressionOperationNavigate:AlertSourceTemplateExpressionOperationNavigate":{"properties":{"reference":{"type":"string"}},"type":"object","required":["reference"]},"incident:index/AlertSourceTemplateExpressionOperationParse:AlertSourceTemplateExpressionOperationParse":{"properties":{"returns":{"$ref":"#/types/incident:index%2FAlertSourceTemplateExpressionOperationParseReturns:AlertSourceTemplateExpressionOperationParseReturns","description":"The return type of an operation\n"},"source":{"type":"string","description":"The ES5 Javascript expression to execute\n"}},"type":"object","required":["returns","source"]},"incident:index/AlertSourceTemplateExpressionOperationParseReturns:AlertSourceTemplateExpressionOperationParseReturns":{"properties":{"array":{"type":"boolean","description":"Whether the return value should be single or multi-value\n"},"type":{"type":"string","description":"Expected return type of this expression (what to try casting the result to)\n"}},"type":"object","required":["array","type"]},"incident:index/AlertSourceTemplateTitle:AlertSourceTemplateTitle":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object"},"incident:index/AlertSourceTemplateVisibleToTeams:AlertSourceTemplateVisibleToTeams":{"properties":{"arrayValues":{"type":"array","items":{"$ref":"#/types/incident:index%2FAlertSourceTemplateVisibleToTeamsArrayValue:AlertSourceTemplateVisibleToTeamsArrayValue"},"description":"The array of literal or reference parameter values\n"},"value":{"$ref":"#/types/incident:index%2FAlertSourceTemplateVisibleToTeamsValue:AlertSourceTemplateVisibleToTeamsValue","description":"The literal or reference parameter value\n"}},"type":"object"},"incident:index/AlertSourceTemplateVisibleToTeamsArrayValue:AlertSourceTemplateVisibleToTeamsArrayValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object"},"incident:index/AlertSourceTemplateVisibleToTeamsValue:AlertSourceTemplateVisibleToTeamsValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object"},"incident:index/CatalogEntriesEntries:CatalogEntriesEntries":{"properties":{"aliases":{"type":"array","items":{"type":"string"},"description":"Optional aliases that can be used to reference this entry\n"},"attributeValues":{"type":"object","additionalProperties":{"$ref":"#/types/incident:index%2FCatalogEntriesEntriesAttributeValues:CatalogEntriesEntriesAttributeValues"}},"id":{"type":"string","description":"ID of this catalog entry\n"},"name":{"type":"string","description":"Name is the human readable name of this entry\n"},"rank":{"type":"number","description":"When catalog type is ranked, this is used to help order things\n"}},"type":"object","required":["attributeValues","name"],"language":{"nodejs":{"requiredOutputs":["aliases","attributeValues","id","name","rank"]}}},"incident:index/CatalogEntriesEntriesAttributeValues:CatalogEntriesEntriesAttributeValues":{"properties":{"arrayValues":{"type":"array","items":{"type":"string"},"description":"The value of this element of the array, in a format suitable for this attribute type.\n"},"value":{"type":"string","description":"The value of this attribute, in a format suitable for this attribute type.\n"}},"type":"object"},"incident:index/CatalogEntryAttributeValue:CatalogEntryAttributeValue":{"properties":{"arrayValues":{"type":"array","items":{"type":"string"},"description":"The value of this element of the array, in a format suitable for this attribute type.\n"},"attribute":{"type":"string","description":"The ID of this attribute, usually loaded from the incident*catalog*type_attribute resource.\n"},"value":{"type":"string","description":"The value of this attribute, in a format suitable for this attribute type.\n"}},"type":"object","required":["attribute"]},"incident:index/CustomFieldFilterBy:CustomFieldFilterBy":{"properties":{"catalogAttributeId":{"type":"string","description":"This must be an attribute of the catalog type of this custom field. It must be an attribute that points to another catalog type (so not a plain string, number, or boolean attribute).\n"},"customFieldId":{"type":"string","description":"This must be the ID of a custom field, which must have values of the same type as the attribute you are filtering by.\n"}},"type":"object","required":["catalogAttributeId","customFieldId"]},"incident:index/EscalationPathPath:EscalationPathPath":{"properties":{"id":{"type":"string","description":"An ID for this node, unique within the escalation path.\n\nThis allows you to reference the node in other nodes, such as when configuring a 'repeat' node.\n"},"ifElse":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElse:EscalationPathPathIfElse"},"level":{"$ref":"#/types/incident:index%2FEscalationPathPathLevel:EscalationPathPathLevel"},"notifyChannel":{"$ref":"#/types/incident:index%2FEscalationPathPathNotifyChannel:EscalationPathPathNotifyChannel"},"repeat":{"$ref":"#/types/incident:index%2FEscalationPathPathRepeat:EscalationPathPathRepeat"},"type":{"type":"string","description":"The type of this node. Available types are:\n* level: A set of targets (users or schedules) that should be paged, either all at once, or with a round-robin configuration.\n* notify_channel: Send the escalation to a Slack channel, where it can be acked by anyone in the channel.\n* if_else: Branch the escalation based on a set of conditions.\n* repeat: Go back to a previous node and repeat the logic from there.\n"}},"type":"object","required":["type"],"language":{"nodejs":{"requiredOutputs":["id","type"]}}},"incident:index/EscalationPathPathIfElse:EscalationPathPathIfElse":{"properties":{"conditions":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseCondition:EscalationPathPathIfElseCondition"},"description":"The prerequisite conditions that must all be satisfied\n"},"elsePaths":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePath:EscalationPathPathIfElseElsePath"},"description":"The nodes that form the levels if our condition is not met\n"},"thenPaths":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPath:EscalationPathPathIfElseThenPath"},"description":"Then path nodes\n"}},"type":"object","required":["conditions","thenPaths"]},"incident:index/EscalationPathPathIfElseCondition:EscalationPathPathIfElseCondition":{"properties":{"operation":{"type":"string","description":"The logical operation to be applied\n"},"paramBindings":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseConditionParamBinding:EscalationPathPathIfElseConditionParamBinding"},"description":"Bindings for the operation parameters\n"},"subject":{"type":"string","description":"The subject of the condition, on which the operation is applied\n"}},"type":"object","required":["operation","paramBindings","subject"]},"incident:index/EscalationPathPathIfElseConditionParamBinding:EscalationPathPathIfElseConditionParamBinding":{"properties":{"arrayValues":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseConditionParamBindingArrayValue:EscalationPathPathIfElseConditionParamBindingArrayValue"},"description":"The array of literal or reference parameter values\n"},"value":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseConditionParamBindingValue:EscalationPathPathIfElseConditionParamBindingValue","description":"The literal or reference parameter value\n"}},"type":"object"},"incident:index/EscalationPathPathIfElseConditionParamBindingArrayValue:EscalationPathPathIfElseConditionParamBindingArrayValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object"},"incident:index/EscalationPathPathIfElseConditionParamBindingValue:EscalationPathPathIfElseConditionParamBindingValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object"},"incident:index/EscalationPathPathIfElseElsePath:EscalationPathPathIfElseElsePath":{"properties":{"id":{"type":"string","description":"An ID for this node, unique within the escalation path.\n\nThis allows you to reference the node in other nodes, such as when configuring a 'repeat' node.\n"},"ifElse":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElse:EscalationPathPathIfElseElsePathIfElse"},"level":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathLevel:EscalationPathPathIfElseElsePathLevel"},"notifyChannel":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathNotifyChannel:EscalationPathPathIfElseElsePathNotifyChannel"},"repeat":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathRepeat:EscalationPathPathIfElseElsePathRepeat"},"type":{"type":"string","description":"The type of this node. Available types are:\n* level: A set of targets (users or schedules) that should be paged, either all at once, or with a round-robin configuration.\n* notify_channel: Send the escalation to a Slack channel, where it can be acked by anyone in the channel.\n* if_else: Branch the escalation based on a set of conditions.\n* repeat: Go back to a previous node and repeat the logic from there.\n"}},"type":"object","required":["type"],"language":{"nodejs":{"requiredOutputs":["id","type"]}}},"incident:index/EscalationPathPathIfElseElsePathIfElse:EscalationPathPathIfElseElsePathIfElse":{"properties":{"conditions":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseCondition:EscalationPathPathIfElseElsePathIfElseCondition"},"description":"The prerequisite conditions that must all be satisfied\n"},"elsePaths":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseElsePath:EscalationPathPathIfElseElsePathIfElseElsePath"},"description":"The nodes that form the levels if our condition is not met\n"},"thenPaths":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseThenPath:EscalationPathPathIfElseElsePathIfElseThenPath"},"description":"Then path nodes\n"}},"type":"object","required":["conditions","thenPaths"]},"incident:index/EscalationPathPathIfElseElsePathIfElseCondition:EscalationPathPathIfElseElsePathIfElseCondition":{"properties":{"operation":{"type":"string","description":"The logical operation to be applied\n"},"paramBindings":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseConditionParamBinding:EscalationPathPathIfElseElsePathIfElseConditionParamBinding"},"description":"Bindings for the operation parameters\n"},"subject":{"type":"string","description":"The subject of the condition, on which the operation is applied\n"}},"type":"object","required":["operation","paramBindings","subject"]},"incident:index/EscalationPathPathIfElseElsePathIfElseConditionParamBinding:EscalationPathPathIfElseElsePathIfElseConditionParamBinding":{"properties":{"arrayValues":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseConditionParamBindingArrayValue:EscalationPathPathIfElseElsePathIfElseConditionParamBindingArrayValue"},"description":"The array of literal or reference parameter values\n"},"value":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseConditionParamBindingValue:EscalationPathPathIfElseElsePathIfElseConditionParamBindingValue","description":"The literal or reference parameter value\n"}},"type":"object"},"incident:index/EscalationPathPathIfElseElsePathIfElseConditionParamBindingArrayValue:EscalationPathPathIfElseElsePathIfElseConditionParamBindingArrayValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object"},"incident:index/EscalationPathPathIfElseElsePathIfElseConditionParamBindingValue:EscalationPathPathIfElseElsePathIfElseConditionParamBindingValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object"},"incident:index/EscalationPathPathIfElseElsePathIfElseElsePath:EscalationPathPathIfElseElsePathIfElseElsePath":{"properties":{"id":{"type":"string","description":"An ID for this node, unique within the escalation path.\n\nThis allows you to reference the node in other nodes, such as when configuring a 'repeat' node.\n"},"ifElse":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseElsePathIfElse:EscalationPathPathIfElseElsePathIfElseElsePathIfElse"},"level":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseElsePathLevel:EscalationPathPathIfElseElsePathIfElseElsePathLevel"},"notifyChannel":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseElsePathNotifyChannel:EscalationPathPathIfElseElsePathIfElseElsePathNotifyChannel"},"repeat":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseElsePathRepeat:EscalationPathPathIfElseElsePathIfElseElsePathRepeat"},"type":{"type":"string","description":"The type of this node. Available types are:\n* level: A set of targets (users or schedules) that should be paged, either all at once, or with a round-robin configuration.\n* notify_channel: Send the escalation to a Slack channel, where it can be acked by anyone in the channel.\n* if_else: Branch the escalation based on a set of conditions.\n* repeat: Go back to a previous node and repeat the logic from there.\n"}},"type":"object","required":["type"],"language":{"nodejs":{"requiredOutputs":["id","type"]}}},"incident:index/EscalationPathPathIfElseElsePathIfElseElsePathIfElse:EscalationPathPathIfElseElsePathIfElseElsePathIfElse":{"properties":{"conditions":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseElsePathIfElseCondition:EscalationPathPathIfElseElsePathIfElseElsePathIfElseCondition"},"description":"The prerequisite conditions that must all be satisfied\n"},"elsePaths":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePath:EscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePath"},"description":"The nodes that form the levels if our condition is not met\n"},"thenPaths":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPath:EscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPath"},"description":"Then path nodes\n"}},"type":"object","required":["conditions","thenPaths"]},"incident:index/EscalationPathPathIfElseElsePathIfElseElsePathIfElseCondition:EscalationPathPathIfElseElsePathIfElseElsePathIfElseCondition":{"properties":{"operation":{"type":"string","description":"The logical operation to be applied\n"},"paramBindings":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseElsePathIfElseConditionParamBinding:EscalationPathPathIfElseElsePathIfElseElsePathIfElseConditionParamBinding"},"description":"Bindings for the operation parameters\n"},"subject":{"type":"string","description":"The subject of the condition, on which the operation is applied\n"}},"type":"object","required":["operation","paramBindings","subject"]},"incident:index/EscalationPathPathIfElseElsePathIfElseElsePathIfElseConditionParamBinding:EscalationPathPathIfElseElsePathIfElseElsePathIfElseConditionParamBinding":{"properties":{"arrayValues":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseElsePathIfElseConditionParamBindingArrayValue:EscalationPathPathIfElseElsePathIfElseElsePathIfElseConditionParamBindingArrayValue"},"description":"The array of literal or reference parameter values\n"},"value":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseElsePathIfElseConditionParamBindingValue:EscalationPathPathIfElseElsePathIfElseElsePathIfElseConditionParamBindingValue","description":"The literal or reference parameter value\n"}},"type":"object"},"incident:index/EscalationPathPathIfElseElsePathIfElseElsePathIfElseConditionParamBindingArrayValue:EscalationPathPathIfElseElsePathIfElseElsePathIfElseConditionParamBindingArrayValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object"},"incident:index/EscalationPathPathIfElseElsePathIfElseElsePathIfElseConditionParamBindingValue:EscalationPathPathIfElseElsePathIfElseElsePathIfElseConditionParamBindingValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object"},"incident:index/EscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePath:EscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePath":{"properties":{"id":{"type":"string","description":"An ID for this node, unique within the escalation path.\n\nThis allows you to reference the node in other nodes, such as when configuring a 'repeat' node.\n"},"ifElse":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElse:EscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElse"},"level":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathLevel:EscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathLevel"},"notifyChannel":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathNotifyChannel:EscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathNotifyChannel"},"repeat":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathRepeat:EscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathRepeat"},"type":{"type":"string","description":"The type of this node. Available types are:\n* level: A set of targets (users or schedules) that should be paged, either all at once, or with a round-robin configuration.\n* notify_channel: Send the escalation to a Slack channel, where it can be acked by anyone in the channel.\n* if_else: Branch the escalation based on a set of conditions.\n* repeat: Go back to a previous node and repeat the logic from there.\n"}},"type":"object","required":["type"],"language":{"nodejs":{"requiredOutputs":["id","type"]}}},"incident:index/EscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElse:EscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElse":{"properties":{"conditions":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseCondition:EscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseCondition"},"description":"The prerequisite conditions that must all be satisfied\n"},"elsePaths":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseElsePath:EscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseElsePath"},"description":"The nodes that form the levels if our condition is not met\n"},"thenPaths":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseThenPath:EscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseThenPath"},"description":"Then path nodes\n"}},"type":"object","required":["conditions","thenPaths"]},"incident:index/EscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseCondition:EscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseCondition":{"properties":{"operation":{"type":"string","description":"The logical operation to be applied\n"},"paramBindings":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseConditionParamBinding:EscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseConditionParamBinding"},"description":"Bindings for the operation parameters\n"},"subject":{"type":"string","description":"The subject of the condition, on which the operation is applied\n"}},"type":"object","required":["operation","paramBindings","subject"]},"incident:index/EscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseConditionParamBinding:EscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseConditionParamBinding":{"properties":{"arrayValues":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseConditionParamBindingArrayValue:EscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseConditionParamBindingArrayValue"},"description":"The array of literal or reference parameter values\n"},"value":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseConditionParamBindingValue:EscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseConditionParamBindingValue","description":"The literal or reference parameter value\n"}},"type":"object"},"incident:index/EscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseConditionParamBindingArrayValue:EscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseConditionParamBindingArrayValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object"},"incident:index/EscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseConditionParamBindingValue:EscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseConditionParamBindingValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object"},"incident:index/EscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseElsePath:EscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseElsePath":{"properties":{"id":{"type":"string","description":"An ID for this node, unique within the escalation path.\n\nThis allows you to reference the node in other nodes, such as when configuring a 'repeat' node.\n"},"level":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseElsePathLevel:EscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseElsePathLevel"},"notifyChannel":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseElsePathNotifyChannel:EscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseElsePathNotifyChannel"},"repeat":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseElsePathRepeat:EscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseElsePathRepeat"},"type":{"type":"string","description":"The type of this node. Available types are:\n* level: A set of targets (users or schedules) that should be paged, either all at once, or with a round-robin configuration.\n* notify_channel: Send the escalation to a Slack channel, where it can be acked by anyone in the channel.\n* if_else: Branch the escalation based on a set of conditions.\n* repeat: Go back to a previous node and repeat the logic from there.\n"}},"type":"object","required":["type"],"language":{"nodejs":{"requiredOutputs":["id","type"]}}},"incident:index/EscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseElsePathLevel:EscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseElsePathLevel":{"properties":{"ackMode":{"type":"string","description":"Controls the behaviour of acknowledgements for this level, with 'first' cancelling all other escalations on the same level when someone acks\n"},"roundRobinConfig":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseElsePathLevelRoundRobinConfig:EscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseElsePathLevelRoundRobinConfig"},"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseElsePathLevelTarget:EscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseElsePathLevelTarget"},"description":"The targets (users or schedules) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before proceeding to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["targets"],"language":{"nodejs":{"requiredOutputs":["ackMode","targets"]}}},"incident:index/EscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseElsePathLevelRoundRobinConfig:EscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseElsePathLevelRoundRobinConfig":{"properties":{"enabled":{"type":"boolean","description":"Whether round robin is enabled for this level\n"},"rotateAfterSeconds":{"type":"number","description":"How long should we wait before rotating to the next target in a round robin, if not set will stick with a single target per level.\n"}},"type":"object","required":["enabled"]},"incident:index/EscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseElsePathLevelTarget:EscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseElsePathLevelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently_on_call,\u003cspan pulumi-lang-nodejs=\" allUsers \" pulumi-lang-dotnet=\" AllUsers \" pulumi-lang-go=\" allUsers \" pulumi-lang-python=\" all_users \" pulumi-lang-yaml=\" allUsers \" pulumi-lang-java=\" allUsers \"\u003e all_users \u003c/span\u003eor\u003cspan pulumi-lang-nodejs=\" allUsersForRota \" pulumi-lang-dotnet=\" AllUsersForRota \" pulumi-lang-go=\" allUsersForRota \" pulumi-lang-python=\" all_users_for_rota \" pulumi-lang-yaml=\" allUsersForRota \" pulumi-lang-java=\" allUsersForRota \"\u003e all_users_for_rota \u003c/span\u003eand specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User. Possible values are: \u003cspan pulumi-lang-nodejs=\"`schedule`\" pulumi-lang-dotnet=\"`Schedule`\" pulumi-lang-go=\"`schedule`\" pulumi-lang-python=\"`schedule`\" pulumi-lang-yaml=\"`schedule`\" pulumi-lang-java=\"`schedule`\"\u003e`schedule`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`user`\" pulumi-lang-dotnet=\"`User`\" pulumi-lang-go=\"`user`\" pulumi-lang-python=\"`user`\" pulumi-lang-yaml=\"`user`\" pulumi-lang-java=\"`user`\"\u003e`user`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`slackChannel`\" pulumi-lang-dotnet=\"`SlackChannel`\" pulumi-lang-go=\"`slackChannel`\" pulumi-lang-python=\"`slack_channel`\" pulumi-lang-yaml=\"`slackChannel`\" pulumi-lang-java=\"`slackChannel`\"\u003e`slack_channel`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`msteamsChannel`\" pulumi-lang-dotnet=\"`MsteamsChannel`\" pulumi-lang-go=\"`msteamsChannel`\" pulumi-lang-python=\"`msteams_channel`\" pulumi-lang-yaml=\"`msteamsChannel`\" pulumi-lang-java=\"`msteamsChannel`\"\u003e`msteams_channel`\u003c/span\u003e.\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target. Possible values are: \u003cspan pulumi-lang-nodejs=\"`high`\" pulumi-lang-dotnet=\"`High`\" pulumi-lang-go=\"`high`\" pulumi-lang-python=\"`high`\" pulumi-lang-yaml=\"`high`\" pulumi-lang-java=\"`high`\"\u003e`high`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`low`\" pulumi-lang-dotnet=\"`Low`\" pulumi-lang-go=\"`low`\" pulumi-lang-python=\"`low`\" pulumi-lang-yaml=\"`low`\" pulumi-lang-java=\"`low`\"\u003e`low`\u003c/span\u003e.\n"}},"type":"object","required":["id","type","urgency"],"language":{"nodejs":{"requiredOutputs":["id","scheduleMode","type","urgency"]}}},"incident:index/EscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseElsePathNotifyChannel:EscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseElsePathNotifyChannel":{"properties":{"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseElsePathNotifyChannelTarget:EscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseElsePathNotifyChannelTarget"},"description":"The targets (Slack channels) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before moving on to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["targets"]},"incident:index/EscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseElsePathNotifyChannelTarget:EscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseElsePathNotifyChannelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently_on_call,\u003cspan pulumi-lang-nodejs=\" allUsers \" pulumi-lang-dotnet=\" AllUsers \" pulumi-lang-go=\" allUsers \" pulumi-lang-python=\" all_users \" pulumi-lang-yaml=\" allUsers \" pulumi-lang-java=\" allUsers \"\u003e all_users \u003c/span\u003eor\u003cspan pulumi-lang-nodejs=\" allUsersForRota \" pulumi-lang-dotnet=\" AllUsersForRota \" pulumi-lang-go=\" allUsersForRota \" pulumi-lang-python=\" all_users_for_rota \" pulumi-lang-yaml=\" allUsersForRota \" pulumi-lang-java=\" allUsersForRota \"\u003e all_users_for_rota \u003c/span\u003eand specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User. Possible values are: \u003cspan pulumi-lang-nodejs=\"`schedule`\" pulumi-lang-dotnet=\"`Schedule`\" pulumi-lang-go=\"`schedule`\" pulumi-lang-python=\"`schedule`\" pulumi-lang-yaml=\"`schedule`\" pulumi-lang-java=\"`schedule`\"\u003e`schedule`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`user`\" pulumi-lang-dotnet=\"`User`\" pulumi-lang-go=\"`user`\" pulumi-lang-python=\"`user`\" pulumi-lang-yaml=\"`user`\" pulumi-lang-java=\"`user`\"\u003e`user`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`slackChannel`\" pulumi-lang-dotnet=\"`SlackChannel`\" pulumi-lang-go=\"`slackChannel`\" pulumi-lang-python=\"`slack_channel`\" pulumi-lang-yaml=\"`slackChannel`\" pulumi-lang-java=\"`slackChannel`\"\u003e`slack_channel`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`msteamsChannel`\" pulumi-lang-dotnet=\"`MsteamsChannel`\" pulumi-lang-go=\"`msteamsChannel`\" pulumi-lang-python=\"`msteams_channel`\" pulumi-lang-yaml=\"`msteamsChannel`\" pulumi-lang-java=\"`msteamsChannel`\"\u003e`msteams_channel`\u003c/span\u003e.\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target. Possible values are: \u003cspan pulumi-lang-nodejs=\"`high`\" pulumi-lang-dotnet=\"`High`\" pulumi-lang-go=\"`high`\" pulumi-lang-python=\"`high`\" pulumi-lang-yaml=\"`high`\" pulumi-lang-java=\"`high`\"\u003e`high`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`low`\" pulumi-lang-dotnet=\"`Low`\" pulumi-lang-go=\"`low`\" pulumi-lang-python=\"`low`\" pulumi-lang-yaml=\"`low`\" pulumi-lang-java=\"`low`\"\u003e`low`\u003c/span\u003e.\n"}},"type":"object","required":["id","type","urgency"],"language":{"nodejs":{"requiredOutputs":["id","scheduleMode","type","urgency"]}}},"incident:index/EscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseElsePathRepeat:EscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseElsePathRepeat":{"properties":{"repeatTimes":{"type":"number","description":"How many times to repeat these nodes\n"},"toNode":{"type":"string","description":"Which node ID we begin repeating from.\n"}},"type":"object","required":["repeatTimes","toNode"]},"incident:index/EscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseThenPath:EscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseThenPath":{"properties":{"id":{"type":"string","description":"An ID for this node, unique within the escalation path.\n\nThis allows you to reference the node in other nodes, such as when configuring a 'repeat' node.\n"},"level":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseThenPathLevel:EscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseThenPathLevel"},"notifyChannel":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseThenPathNotifyChannel:EscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseThenPathNotifyChannel"},"repeat":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseThenPathRepeat:EscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseThenPathRepeat"},"type":{"type":"string","description":"The type of this node. Available types are:\n* level: A set of targets (users or schedules) that should be paged, either all at once, or with a round-robin configuration.\n* notify_channel: Send the escalation to a Slack channel, where it can be acked by anyone in the channel.\n* if_else: Branch the escalation based on a set of conditions.\n* repeat: Go back to a previous node and repeat the logic from there.\n"}},"type":"object","required":["type"],"language":{"nodejs":{"requiredOutputs":["id","type"]}}},"incident:index/EscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseThenPathLevel:EscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseThenPathLevel":{"properties":{"ackMode":{"type":"string","description":"Controls the behaviour of acknowledgements for this level, with 'first' cancelling all other escalations on the same level when someone acks\n"},"roundRobinConfig":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseThenPathLevelRoundRobinConfig:EscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseThenPathLevelRoundRobinConfig"},"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseThenPathLevelTarget:EscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseThenPathLevelTarget"},"description":"The targets (users or schedules) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before proceeding to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["targets"],"language":{"nodejs":{"requiredOutputs":["ackMode","targets"]}}},"incident:index/EscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseThenPathLevelRoundRobinConfig:EscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseThenPathLevelRoundRobinConfig":{"properties":{"enabled":{"type":"boolean","description":"Whether round robin is enabled for this level\n"},"rotateAfterSeconds":{"type":"number","description":"How long should we wait before rotating to the next target in a round robin, if not set will stick with a single target per level.\n"}},"type":"object","required":["enabled"]},"incident:index/EscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseThenPathLevelTarget:EscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseThenPathLevelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently_on_call,\u003cspan pulumi-lang-nodejs=\" allUsers \" pulumi-lang-dotnet=\" AllUsers \" pulumi-lang-go=\" allUsers \" pulumi-lang-python=\" all_users \" pulumi-lang-yaml=\" allUsers \" pulumi-lang-java=\" allUsers \"\u003e all_users \u003c/span\u003eor\u003cspan pulumi-lang-nodejs=\" allUsersForRota \" pulumi-lang-dotnet=\" AllUsersForRota \" pulumi-lang-go=\" allUsersForRota \" pulumi-lang-python=\" all_users_for_rota \" pulumi-lang-yaml=\" allUsersForRota \" pulumi-lang-java=\" allUsersForRota \"\u003e all_users_for_rota \u003c/span\u003eand specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User. Possible values are: \u003cspan pulumi-lang-nodejs=\"`schedule`\" pulumi-lang-dotnet=\"`Schedule`\" pulumi-lang-go=\"`schedule`\" pulumi-lang-python=\"`schedule`\" pulumi-lang-yaml=\"`schedule`\" pulumi-lang-java=\"`schedule`\"\u003e`schedule`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`user`\" pulumi-lang-dotnet=\"`User`\" pulumi-lang-go=\"`user`\" pulumi-lang-python=\"`user`\" pulumi-lang-yaml=\"`user`\" pulumi-lang-java=\"`user`\"\u003e`user`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`slackChannel`\" pulumi-lang-dotnet=\"`SlackChannel`\" pulumi-lang-go=\"`slackChannel`\" pulumi-lang-python=\"`slack_channel`\" pulumi-lang-yaml=\"`slackChannel`\" pulumi-lang-java=\"`slackChannel`\"\u003e`slack_channel`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`msteamsChannel`\" pulumi-lang-dotnet=\"`MsteamsChannel`\" pulumi-lang-go=\"`msteamsChannel`\" pulumi-lang-python=\"`msteams_channel`\" pulumi-lang-yaml=\"`msteamsChannel`\" pulumi-lang-java=\"`msteamsChannel`\"\u003e`msteams_channel`\u003c/span\u003e.\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target. Possible values are: \u003cspan pulumi-lang-nodejs=\"`high`\" pulumi-lang-dotnet=\"`High`\" pulumi-lang-go=\"`high`\" pulumi-lang-python=\"`high`\" pulumi-lang-yaml=\"`high`\" pulumi-lang-java=\"`high`\"\u003e`high`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`low`\" pulumi-lang-dotnet=\"`Low`\" pulumi-lang-go=\"`low`\" pulumi-lang-python=\"`low`\" pulumi-lang-yaml=\"`low`\" pulumi-lang-java=\"`low`\"\u003e`low`\u003c/span\u003e.\n"}},"type":"object","required":["id","type","urgency"],"language":{"nodejs":{"requiredOutputs":["id","scheduleMode","type","urgency"]}}},"incident:index/EscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseThenPathNotifyChannel:EscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseThenPathNotifyChannel":{"properties":{"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseThenPathNotifyChannelTarget:EscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseThenPathNotifyChannelTarget"},"description":"The targets (Slack channels) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before moving on to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["targets"]},"incident:index/EscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseThenPathNotifyChannelTarget:EscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseThenPathNotifyChannelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently_on_call,\u003cspan pulumi-lang-nodejs=\" allUsers \" pulumi-lang-dotnet=\" AllUsers \" pulumi-lang-go=\" allUsers \" pulumi-lang-python=\" all_users \" pulumi-lang-yaml=\" allUsers \" pulumi-lang-java=\" allUsers \"\u003e all_users \u003c/span\u003eor\u003cspan pulumi-lang-nodejs=\" allUsersForRota \" pulumi-lang-dotnet=\" AllUsersForRota \" pulumi-lang-go=\" allUsersForRota \" pulumi-lang-python=\" all_users_for_rota \" pulumi-lang-yaml=\" allUsersForRota \" pulumi-lang-java=\" allUsersForRota \"\u003e all_users_for_rota \u003c/span\u003eand specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User. Possible values are: \u003cspan pulumi-lang-nodejs=\"`schedule`\" pulumi-lang-dotnet=\"`Schedule`\" pulumi-lang-go=\"`schedule`\" pulumi-lang-python=\"`schedule`\" pulumi-lang-yaml=\"`schedule`\" pulumi-lang-java=\"`schedule`\"\u003e`schedule`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`user`\" pulumi-lang-dotnet=\"`User`\" pulumi-lang-go=\"`user`\" pulumi-lang-python=\"`user`\" pulumi-lang-yaml=\"`user`\" pulumi-lang-java=\"`user`\"\u003e`user`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`slackChannel`\" pulumi-lang-dotnet=\"`SlackChannel`\" pulumi-lang-go=\"`slackChannel`\" pulumi-lang-python=\"`slack_channel`\" pulumi-lang-yaml=\"`slackChannel`\" pulumi-lang-java=\"`slackChannel`\"\u003e`slack_channel`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`msteamsChannel`\" pulumi-lang-dotnet=\"`MsteamsChannel`\" pulumi-lang-go=\"`msteamsChannel`\" pulumi-lang-python=\"`msteams_channel`\" pulumi-lang-yaml=\"`msteamsChannel`\" pulumi-lang-java=\"`msteamsChannel`\"\u003e`msteams_channel`\u003c/span\u003e.\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target. Possible values are: \u003cspan pulumi-lang-nodejs=\"`high`\" pulumi-lang-dotnet=\"`High`\" pulumi-lang-go=\"`high`\" pulumi-lang-python=\"`high`\" pulumi-lang-yaml=\"`high`\" pulumi-lang-java=\"`high`\"\u003e`high`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`low`\" pulumi-lang-dotnet=\"`Low`\" pulumi-lang-go=\"`low`\" pulumi-lang-python=\"`low`\" pulumi-lang-yaml=\"`low`\" pulumi-lang-java=\"`low`\"\u003e`low`\u003c/span\u003e.\n"}},"type":"object","required":["id","type","urgency"],"language":{"nodejs":{"requiredOutputs":["id","scheduleMode","type","urgency"]}}},"incident:index/EscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseThenPathRepeat:EscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseThenPathRepeat":{"properties":{"repeatTimes":{"type":"number","description":"How many times to repeat these nodes\n"},"toNode":{"type":"string","description":"Which node ID we begin repeating from.\n"}},"type":"object","required":["repeatTimes","toNode"]},"incident:index/EscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathLevel:EscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathLevel":{"properties":{"ackMode":{"type":"string","description":"Controls the behaviour of acknowledgements for this level, with 'first' cancelling all other escalations on the same level when someone acks\n"},"roundRobinConfig":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathLevelRoundRobinConfig:EscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathLevelRoundRobinConfig"},"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathLevelTarget:EscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathLevelTarget"},"description":"The targets (users or schedules) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before proceeding to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["targets"],"language":{"nodejs":{"requiredOutputs":["ackMode","targets"]}}},"incident:index/EscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathLevelRoundRobinConfig:EscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathLevelRoundRobinConfig":{"properties":{"enabled":{"type":"boolean","description":"Whether round robin is enabled for this level\n"},"rotateAfterSeconds":{"type":"number","description":"How long should we wait before rotating to the next target in a round robin, if not set will stick with a single target per level.\n"}},"type":"object","required":["enabled"]},"incident:index/EscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathLevelTarget:EscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathLevelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently_on_call,\u003cspan pulumi-lang-nodejs=\" allUsers \" pulumi-lang-dotnet=\" AllUsers \" pulumi-lang-go=\" allUsers \" pulumi-lang-python=\" all_users \" pulumi-lang-yaml=\" allUsers \" pulumi-lang-java=\" allUsers \"\u003e all_users \u003c/span\u003eor\u003cspan pulumi-lang-nodejs=\" allUsersForRota \" pulumi-lang-dotnet=\" AllUsersForRota \" pulumi-lang-go=\" allUsersForRota \" pulumi-lang-python=\" all_users_for_rota \" pulumi-lang-yaml=\" allUsersForRota \" pulumi-lang-java=\" allUsersForRota \"\u003e all_users_for_rota \u003c/span\u003eand specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User. Possible values are: \u003cspan pulumi-lang-nodejs=\"`schedule`\" pulumi-lang-dotnet=\"`Schedule`\" pulumi-lang-go=\"`schedule`\" pulumi-lang-python=\"`schedule`\" pulumi-lang-yaml=\"`schedule`\" pulumi-lang-java=\"`schedule`\"\u003e`schedule`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`user`\" pulumi-lang-dotnet=\"`User`\" pulumi-lang-go=\"`user`\" pulumi-lang-python=\"`user`\" pulumi-lang-yaml=\"`user`\" pulumi-lang-java=\"`user`\"\u003e`user`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`slackChannel`\" pulumi-lang-dotnet=\"`SlackChannel`\" pulumi-lang-go=\"`slackChannel`\" pulumi-lang-python=\"`slack_channel`\" pulumi-lang-yaml=\"`slackChannel`\" pulumi-lang-java=\"`slackChannel`\"\u003e`slack_channel`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`msteamsChannel`\" pulumi-lang-dotnet=\"`MsteamsChannel`\" pulumi-lang-go=\"`msteamsChannel`\" pulumi-lang-python=\"`msteams_channel`\" pulumi-lang-yaml=\"`msteamsChannel`\" pulumi-lang-java=\"`msteamsChannel`\"\u003e`msteams_channel`\u003c/span\u003e.\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target. Possible values are: \u003cspan pulumi-lang-nodejs=\"`high`\" pulumi-lang-dotnet=\"`High`\" pulumi-lang-go=\"`high`\" pulumi-lang-python=\"`high`\" pulumi-lang-yaml=\"`high`\" pulumi-lang-java=\"`high`\"\u003e`high`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`low`\" pulumi-lang-dotnet=\"`Low`\" pulumi-lang-go=\"`low`\" pulumi-lang-python=\"`low`\" pulumi-lang-yaml=\"`low`\" pulumi-lang-java=\"`low`\"\u003e`low`\u003c/span\u003e.\n"}},"type":"object","required":["id","type","urgency"],"language":{"nodejs":{"requiredOutputs":["id","scheduleMode","type","urgency"]}}},"incident:index/EscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathNotifyChannel:EscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathNotifyChannel":{"properties":{"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathNotifyChannelTarget:EscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathNotifyChannelTarget"},"description":"The targets (Slack channels) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before moving on to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["targets"]},"incident:index/EscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathNotifyChannelTarget:EscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathNotifyChannelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently_on_call,\u003cspan pulumi-lang-nodejs=\" allUsers \" pulumi-lang-dotnet=\" AllUsers \" pulumi-lang-go=\" allUsers \" pulumi-lang-python=\" all_users \" pulumi-lang-yaml=\" allUsers \" pulumi-lang-java=\" allUsers \"\u003e all_users \u003c/span\u003eor\u003cspan pulumi-lang-nodejs=\" allUsersForRota \" pulumi-lang-dotnet=\" AllUsersForRota \" pulumi-lang-go=\" allUsersForRota \" pulumi-lang-python=\" all_users_for_rota \" pulumi-lang-yaml=\" allUsersForRota \" pulumi-lang-java=\" allUsersForRota \"\u003e all_users_for_rota \u003c/span\u003eand specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User. Possible values are: \u003cspan pulumi-lang-nodejs=\"`schedule`\" pulumi-lang-dotnet=\"`Schedule`\" pulumi-lang-go=\"`schedule`\" pulumi-lang-python=\"`schedule`\" pulumi-lang-yaml=\"`schedule`\" pulumi-lang-java=\"`schedule`\"\u003e`schedule`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`user`\" pulumi-lang-dotnet=\"`User`\" pulumi-lang-go=\"`user`\" pulumi-lang-python=\"`user`\" pulumi-lang-yaml=\"`user`\" pulumi-lang-java=\"`user`\"\u003e`user`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`slackChannel`\" pulumi-lang-dotnet=\"`SlackChannel`\" pulumi-lang-go=\"`slackChannel`\" pulumi-lang-python=\"`slack_channel`\" pulumi-lang-yaml=\"`slackChannel`\" pulumi-lang-java=\"`slackChannel`\"\u003e`slack_channel`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`msteamsChannel`\" pulumi-lang-dotnet=\"`MsteamsChannel`\" pulumi-lang-go=\"`msteamsChannel`\" pulumi-lang-python=\"`msteams_channel`\" pulumi-lang-yaml=\"`msteamsChannel`\" pulumi-lang-java=\"`msteamsChannel`\"\u003e`msteams_channel`\u003c/span\u003e.\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target. Possible values are: \u003cspan pulumi-lang-nodejs=\"`high`\" pulumi-lang-dotnet=\"`High`\" pulumi-lang-go=\"`high`\" pulumi-lang-python=\"`high`\" pulumi-lang-yaml=\"`high`\" pulumi-lang-java=\"`high`\"\u003e`high`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`low`\" pulumi-lang-dotnet=\"`Low`\" pulumi-lang-go=\"`low`\" pulumi-lang-python=\"`low`\" pulumi-lang-yaml=\"`low`\" pulumi-lang-java=\"`low`\"\u003e`low`\u003c/span\u003e.\n"}},"type":"object","required":["id","type","urgency"],"language":{"nodejs":{"requiredOutputs":["id","scheduleMode","type","urgency"]}}},"incident:index/EscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathRepeat:EscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathRepeat":{"properties":{"repeatTimes":{"type":"number","description":"How many times to repeat these nodes\n"},"toNode":{"type":"string","description":"Which node ID we begin repeating from.\n"}},"type":"object","required":["repeatTimes","toNode"]},"incident:index/EscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPath:EscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPath":{"properties":{"id":{"type":"string","description":"An ID for this node, unique within the escalation path.\n\nThis allows you to reference the node in other nodes, such as when configuring a 'repeat' node.\n"},"ifElse":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElse:EscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElse"},"level":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathLevel:EscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathLevel"},"notifyChannel":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathNotifyChannel:EscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathNotifyChannel"},"repeat":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathRepeat:EscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathRepeat"},"type":{"type":"string","description":"The type of this node. Available types are:\n* level: A set of targets (users or schedules) that should be paged, either all at once, or with a round-robin configuration.\n* notify_channel: Send the escalation to a Slack channel, where it can be acked by anyone in the channel.\n* if_else: Branch the escalation based on a set of conditions.\n* repeat: Go back to a previous node and repeat the logic from there.\n"}},"type":"object","required":["type"],"language":{"nodejs":{"requiredOutputs":["id","type"]}}},"incident:index/EscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElse:EscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElse":{"properties":{"conditions":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseCondition:EscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseCondition"},"description":"The prerequisite conditions that must all be satisfied\n"},"elsePaths":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseElsePath:EscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseElsePath"},"description":"The nodes that form the levels if our condition is not met\n"},"thenPaths":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseThenPath:EscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseThenPath"},"description":"Then path nodes\n"}},"type":"object","required":["conditions","thenPaths"]},"incident:index/EscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseCondition:EscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseCondition":{"properties":{"operation":{"type":"string","description":"The logical operation to be applied\n"},"paramBindings":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseConditionParamBinding:EscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseConditionParamBinding"},"description":"Bindings for the operation parameters\n"},"subject":{"type":"string","description":"The subject of the condition, on which the operation is applied\n"}},"type":"object","required":["operation","paramBindings","subject"]},"incident:index/EscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseConditionParamBinding:EscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseConditionParamBinding":{"properties":{"arrayValues":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseConditionParamBindingArrayValue:EscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseConditionParamBindingArrayValue"},"description":"The array of literal or reference parameter values\n"},"value":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseConditionParamBindingValue:EscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseConditionParamBindingValue","description":"The literal or reference parameter value\n"}},"type":"object"},"incident:index/EscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseConditionParamBindingArrayValue:EscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseConditionParamBindingArrayValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object"},"incident:index/EscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseConditionParamBindingValue:EscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseConditionParamBindingValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object"},"incident:index/EscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseElsePath:EscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseElsePath":{"properties":{"id":{"type":"string","description":"An ID for this node, unique within the escalation path.\n\nThis allows you to reference the node in other nodes, such as when configuring a 'repeat' node.\n"},"level":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseElsePathLevel:EscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseElsePathLevel"},"notifyChannel":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseElsePathNotifyChannel:EscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseElsePathNotifyChannel"},"repeat":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseElsePathRepeat:EscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseElsePathRepeat"},"type":{"type":"string","description":"The type of this node. Available types are:\n* level: A set of targets (users or schedules) that should be paged, either all at once, or with a round-robin configuration.\n* notify_channel: Send the escalation to a Slack channel, where it can be acked by anyone in the channel.\n* if_else: Branch the escalation based on a set of conditions.\n* repeat: Go back to a previous node and repeat the logic from there.\n"}},"type":"object","required":["type"],"language":{"nodejs":{"requiredOutputs":["id","type"]}}},"incident:index/EscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseElsePathLevel:EscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseElsePathLevel":{"properties":{"ackMode":{"type":"string","description":"Controls the behaviour of acknowledgements for this level, with 'first' cancelling all other escalations on the same level when someone acks\n"},"roundRobinConfig":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseElsePathLevelRoundRobinConfig:EscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseElsePathLevelRoundRobinConfig"},"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseElsePathLevelTarget:EscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseElsePathLevelTarget"},"description":"The targets (users or schedules) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before proceeding to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["targets"],"language":{"nodejs":{"requiredOutputs":["ackMode","targets"]}}},"incident:index/EscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseElsePathLevelRoundRobinConfig:EscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseElsePathLevelRoundRobinConfig":{"properties":{"enabled":{"type":"boolean","description":"Whether round robin is enabled for this level\n"},"rotateAfterSeconds":{"type":"number","description":"How long should we wait before rotating to the next target in a round robin, if not set will stick with a single target per level.\n"}},"type":"object","required":["enabled"]},"incident:index/EscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseElsePathLevelTarget:EscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseElsePathLevelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently_on_call,\u003cspan pulumi-lang-nodejs=\" allUsers \" pulumi-lang-dotnet=\" AllUsers \" pulumi-lang-go=\" allUsers \" pulumi-lang-python=\" all_users \" pulumi-lang-yaml=\" allUsers \" pulumi-lang-java=\" allUsers \"\u003e all_users \u003c/span\u003eor\u003cspan pulumi-lang-nodejs=\" allUsersForRota \" pulumi-lang-dotnet=\" AllUsersForRota \" pulumi-lang-go=\" allUsersForRota \" pulumi-lang-python=\" all_users_for_rota \" pulumi-lang-yaml=\" allUsersForRota \" pulumi-lang-java=\" allUsersForRota \"\u003e all_users_for_rota \u003c/span\u003eand specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User. Possible values are: \u003cspan pulumi-lang-nodejs=\"`schedule`\" pulumi-lang-dotnet=\"`Schedule`\" pulumi-lang-go=\"`schedule`\" pulumi-lang-python=\"`schedule`\" pulumi-lang-yaml=\"`schedule`\" pulumi-lang-java=\"`schedule`\"\u003e`schedule`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`user`\" pulumi-lang-dotnet=\"`User`\" pulumi-lang-go=\"`user`\" pulumi-lang-python=\"`user`\" pulumi-lang-yaml=\"`user`\" pulumi-lang-java=\"`user`\"\u003e`user`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`slackChannel`\" pulumi-lang-dotnet=\"`SlackChannel`\" pulumi-lang-go=\"`slackChannel`\" pulumi-lang-python=\"`slack_channel`\" pulumi-lang-yaml=\"`slackChannel`\" pulumi-lang-java=\"`slackChannel`\"\u003e`slack_channel`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`msteamsChannel`\" pulumi-lang-dotnet=\"`MsteamsChannel`\" pulumi-lang-go=\"`msteamsChannel`\" pulumi-lang-python=\"`msteams_channel`\" pulumi-lang-yaml=\"`msteamsChannel`\" pulumi-lang-java=\"`msteamsChannel`\"\u003e`msteams_channel`\u003c/span\u003e.\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target. Possible values are: \u003cspan pulumi-lang-nodejs=\"`high`\" pulumi-lang-dotnet=\"`High`\" pulumi-lang-go=\"`high`\" pulumi-lang-python=\"`high`\" pulumi-lang-yaml=\"`high`\" pulumi-lang-java=\"`high`\"\u003e`high`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`low`\" pulumi-lang-dotnet=\"`Low`\" pulumi-lang-go=\"`low`\" pulumi-lang-python=\"`low`\" pulumi-lang-yaml=\"`low`\" pulumi-lang-java=\"`low`\"\u003e`low`\u003c/span\u003e.\n"}},"type":"object","required":["id","type","urgency"],"language":{"nodejs":{"requiredOutputs":["id","scheduleMode","type","urgency"]}}},"incident:index/EscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseElsePathNotifyChannel:EscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseElsePathNotifyChannel":{"properties":{"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseElsePathNotifyChannelTarget:EscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseElsePathNotifyChannelTarget"},"description":"The targets (Slack channels) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before moving on to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["targets"]},"incident:index/EscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseElsePathNotifyChannelTarget:EscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseElsePathNotifyChannelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently_on_call,\u003cspan pulumi-lang-nodejs=\" allUsers \" pulumi-lang-dotnet=\" AllUsers \" pulumi-lang-go=\" allUsers \" pulumi-lang-python=\" all_users \" pulumi-lang-yaml=\" allUsers \" pulumi-lang-java=\" allUsers \"\u003e all_users \u003c/span\u003eor\u003cspan pulumi-lang-nodejs=\" allUsersForRota \" pulumi-lang-dotnet=\" AllUsersForRota \" pulumi-lang-go=\" allUsersForRota \" pulumi-lang-python=\" all_users_for_rota \" pulumi-lang-yaml=\" allUsersForRota \" pulumi-lang-java=\" allUsersForRota \"\u003e all_users_for_rota \u003c/span\u003eand specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User. Possible values are: \u003cspan pulumi-lang-nodejs=\"`schedule`\" pulumi-lang-dotnet=\"`Schedule`\" pulumi-lang-go=\"`schedule`\" pulumi-lang-python=\"`schedule`\" pulumi-lang-yaml=\"`schedule`\" pulumi-lang-java=\"`schedule`\"\u003e`schedule`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`user`\" pulumi-lang-dotnet=\"`User`\" pulumi-lang-go=\"`user`\" pulumi-lang-python=\"`user`\" pulumi-lang-yaml=\"`user`\" pulumi-lang-java=\"`user`\"\u003e`user`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`slackChannel`\" pulumi-lang-dotnet=\"`SlackChannel`\" pulumi-lang-go=\"`slackChannel`\" pulumi-lang-python=\"`slack_channel`\" pulumi-lang-yaml=\"`slackChannel`\" pulumi-lang-java=\"`slackChannel`\"\u003e`slack_channel`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`msteamsChannel`\" pulumi-lang-dotnet=\"`MsteamsChannel`\" pulumi-lang-go=\"`msteamsChannel`\" pulumi-lang-python=\"`msteams_channel`\" pulumi-lang-yaml=\"`msteamsChannel`\" pulumi-lang-java=\"`msteamsChannel`\"\u003e`msteams_channel`\u003c/span\u003e.\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target. Possible values are: \u003cspan pulumi-lang-nodejs=\"`high`\" pulumi-lang-dotnet=\"`High`\" pulumi-lang-go=\"`high`\" pulumi-lang-python=\"`high`\" pulumi-lang-yaml=\"`high`\" pulumi-lang-java=\"`high`\"\u003e`high`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`low`\" pulumi-lang-dotnet=\"`Low`\" pulumi-lang-go=\"`low`\" pulumi-lang-python=\"`low`\" pulumi-lang-yaml=\"`low`\" pulumi-lang-java=\"`low`\"\u003e`low`\u003c/span\u003e.\n"}},"type":"object","required":["id","type","urgency"],"language":{"nodejs":{"requiredOutputs":["id","scheduleMode","type","urgency"]}}},"incident:index/EscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseElsePathRepeat:EscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseElsePathRepeat":{"properties":{"repeatTimes":{"type":"number","description":"How many times to repeat these nodes\n"},"toNode":{"type":"string","description":"Which node ID we begin repeating from.\n"}},"type":"object","required":["repeatTimes","toNode"]},"incident:index/EscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseThenPath:EscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseThenPath":{"properties":{"id":{"type":"string","description":"An ID for this node, unique within the escalation path.\n\nThis allows you to reference the node in other nodes, such as when configuring a 'repeat' node.\n"},"level":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseThenPathLevel:EscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseThenPathLevel"},"notifyChannel":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseThenPathNotifyChannel:EscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseThenPathNotifyChannel"},"repeat":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseThenPathRepeat:EscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseThenPathRepeat"},"type":{"type":"string","description":"The type of this node. Available types are:\n* level: A set of targets (users or schedules) that should be paged, either all at once, or with a round-robin configuration.\n* notify_channel: Send the escalation to a Slack channel, where it can be acked by anyone in the channel.\n* if_else: Branch the escalation based on a set of conditions.\n* repeat: Go back to a previous node and repeat the logic from there.\n"}},"type":"object","required":["type"],"language":{"nodejs":{"requiredOutputs":["id","type"]}}},"incident:index/EscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseThenPathLevel:EscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseThenPathLevel":{"properties":{"ackMode":{"type":"string","description":"Controls the behaviour of acknowledgements for this level, with 'first' cancelling all other escalations on the same level when someone acks\n"},"roundRobinConfig":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseThenPathLevelRoundRobinConfig:EscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseThenPathLevelRoundRobinConfig"},"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseThenPathLevelTarget:EscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseThenPathLevelTarget"},"description":"The targets (users or schedules) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before proceeding to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["targets"],"language":{"nodejs":{"requiredOutputs":["ackMode","targets"]}}},"incident:index/EscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseThenPathLevelRoundRobinConfig:EscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseThenPathLevelRoundRobinConfig":{"properties":{"enabled":{"type":"boolean","description":"Whether round robin is enabled for this level\n"},"rotateAfterSeconds":{"type":"number","description":"How long should we wait before rotating to the next target in a round robin, if not set will stick with a single target per level.\n"}},"type":"object","required":["enabled"]},"incident:index/EscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseThenPathLevelTarget:EscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseThenPathLevelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently_on_call,\u003cspan pulumi-lang-nodejs=\" allUsers \" pulumi-lang-dotnet=\" AllUsers \" pulumi-lang-go=\" allUsers \" pulumi-lang-python=\" all_users \" pulumi-lang-yaml=\" allUsers \" pulumi-lang-java=\" allUsers \"\u003e all_users \u003c/span\u003eor\u003cspan pulumi-lang-nodejs=\" allUsersForRota \" pulumi-lang-dotnet=\" AllUsersForRota \" pulumi-lang-go=\" allUsersForRota \" pulumi-lang-python=\" all_users_for_rota \" pulumi-lang-yaml=\" allUsersForRota \" pulumi-lang-java=\" allUsersForRota \"\u003e all_users_for_rota \u003c/span\u003eand specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User. Possible values are: \u003cspan pulumi-lang-nodejs=\"`schedule`\" pulumi-lang-dotnet=\"`Schedule`\" pulumi-lang-go=\"`schedule`\" pulumi-lang-python=\"`schedule`\" pulumi-lang-yaml=\"`schedule`\" pulumi-lang-java=\"`schedule`\"\u003e`schedule`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`user`\" pulumi-lang-dotnet=\"`User`\" pulumi-lang-go=\"`user`\" pulumi-lang-python=\"`user`\" pulumi-lang-yaml=\"`user`\" pulumi-lang-java=\"`user`\"\u003e`user`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`slackChannel`\" pulumi-lang-dotnet=\"`SlackChannel`\" pulumi-lang-go=\"`slackChannel`\" pulumi-lang-python=\"`slack_channel`\" pulumi-lang-yaml=\"`slackChannel`\" pulumi-lang-java=\"`slackChannel`\"\u003e`slack_channel`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`msteamsChannel`\" pulumi-lang-dotnet=\"`MsteamsChannel`\" pulumi-lang-go=\"`msteamsChannel`\" pulumi-lang-python=\"`msteams_channel`\" pulumi-lang-yaml=\"`msteamsChannel`\" pulumi-lang-java=\"`msteamsChannel`\"\u003e`msteams_channel`\u003c/span\u003e.\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target. Possible values are: \u003cspan pulumi-lang-nodejs=\"`high`\" pulumi-lang-dotnet=\"`High`\" pulumi-lang-go=\"`high`\" pulumi-lang-python=\"`high`\" pulumi-lang-yaml=\"`high`\" pulumi-lang-java=\"`high`\"\u003e`high`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`low`\" pulumi-lang-dotnet=\"`Low`\" pulumi-lang-go=\"`low`\" pulumi-lang-python=\"`low`\" pulumi-lang-yaml=\"`low`\" pulumi-lang-java=\"`low`\"\u003e`low`\u003c/span\u003e.\n"}},"type":"object","required":["id","type","urgency"],"language":{"nodejs":{"requiredOutputs":["id","scheduleMode","type","urgency"]}}},"incident:index/EscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseThenPathNotifyChannel:EscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseThenPathNotifyChannel":{"properties":{"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseThenPathNotifyChannelTarget:EscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseThenPathNotifyChannelTarget"},"description":"The targets (Slack channels) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before moving on to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["targets"]},"incident:index/EscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseThenPathNotifyChannelTarget:EscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseThenPathNotifyChannelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently_on_call,\u003cspan pulumi-lang-nodejs=\" allUsers \" pulumi-lang-dotnet=\" AllUsers \" pulumi-lang-go=\" allUsers \" pulumi-lang-python=\" all_users \" pulumi-lang-yaml=\" allUsers \" pulumi-lang-java=\" allUsers \"\u003e all_users \u003c/span\u003eor\u003cspan pulumi-lang-nodejs=\" allUsersForRota \" pulumi-lang-dotnet=\" AllUsersForRota \" pulumi-lang-go=\" allUsersForRota \" pulumi-lang-python=\" all_users_for_rota \" pulumi-lang-yaml=\" allUsersForRota \" pulumi-lang-java=\" allUsersForRota \"\u003e all_users_for_rota \u003c/span\u003eand specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User. Possible values are: \u003cspan pulumi-lang-nodejs=\"`schedule`\" pulumi-lang-dotnet=\"`Schedule`\" pulumi-lang-go=\"`schedule`\" pulumi-lang-python=\"`schedule`\" pulumi-lang-yaml=\"`schedule`\" pulumi-lang-java=\"`schedule`\"\u003e`schedule`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`user`\" pulumi-lang-dotnet=\"`User`\" pulumi-lang-go=\"`user`\" pulumi-lang-python=\"`user`\" pulumi-lang-yaml=\"`user`\" pulumi-lang-java=\"`user`\"\u003e`user`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`slackChannel`\" pulumi-lang-dotnet=\"`SlackChannel`\" pulumi-lang-go=\"`slackChannel`\" pulumi-lang-python=\"`slack_channel`\" pulumi-lang-yaml=\"`slackChannel`\" pulumi-lang-java=\"`slackChannel`\"\u003e`slack_channel`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`msteamsChannel`\" pulumi-lang-dotnet=\"`MsteamsChannel`\" pulumi-lang-go=\"`msteamsChannel`\" pulumi-lang-python=\"`msteams_channel`\" pulumi-lang-yaml=\"`msteamsChannel`\" pulumi-lang-java=\"`msteamsChannel`\"\u003e`msteams_channel`\u003c/span\u003e.\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target. Possible values are: \u003cspan pulumi-lang-nodejs=\"`high`\" pulumi-lang-dotnet=\"`High`\" pulumi-lang-go=\"`high`\" pulumi-lang-python=\"`high`\" pulumi-lang-yaml=\"`high`\" pulumi-lang-java=\"`high`\"\u003e`high`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`low`\" pulumi-lang-dotnet=\"`Low`\" pulumi-lang-go=\"`low`\" pulumi-lang-python=\"`low`\" pulumi-lang-yaml=\"`low`\" pulumi-lang-java=\"`low`\"\u003e`low`\u003c/span\u003e.\n"}},"type":"object","required":["id","type","urgency"],"language":{"nodejs":{"requiredOutputs":["id","scheduleMode","type","urgency"]}}},"incident:index/EscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseThenPathRepeat:EscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseThenPathRepeat":{"properties":{"repeatTimes":{"type":"number","description":"How many times to repeat these nodes\n"},"toNode":{"type":"string","description":"Which node ID we begin repeating from.\n"}},"type":"object","required":["repeatTimes","toNode"]},"incident:index/EscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathLevel:EscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathLevel":{"properties":{"ackMode":{"type":"string","description":"Controls the behaviour of acknowledgements for this level, with 'first' cancelling all other escalations on the same level when someone acks\n"},"roundRobinConfig":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathLevelRoundRobinConfig:EscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathLevelRoundRobinConfig"},"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathLevelTarget:EscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathLevelTarget"},"description":"The targets (users or schedules) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before proceeding to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["targets"],"language":{"nodejs":{"requiredOutputs":["ackMode","targets"]}}},"incident:index/EscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathLevelRoundRobinConfig:EscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathLevelRoundRobinConfig":{"properties":{"enabled":{"type":"boolean","description":"Whether round robin is enabled for this level\n"},"rotateAfterSeconds":{"type":"number","description":"How long should we wait before rotating to the next target in a round robin, if not set will stick with a single target per level.\n"}},"type":"object","required":["enabled"]},"incident:index/EscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathLevelTarget:EscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathLevelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently_on_call,\u003cspan pulumi-lang-nodejs=\" allUsers \" pulumi-lang-dotnet=\" AllUsers \" pulumi-lang-go=\" allUsers \" pulumi-lang-python=\" all_users \" pulumi-lang-yaml=\" allUsers \" pulumi-lang-java=\" allUsers \"\u003e all_users \u003c/span\u003eor\u003cspan pulumi-lang-nodejs=\" allUsersForRota \" pulumi-lang-dotnet=\" AllUsersForRota \" pulumi-lang-go=\" allUsersForRota \" pulumi-lang-python=\" all_users_for_rota \" pulumi-lang-yaml=\" allUsersForRota \" pulumi-lang-java=\" allUsersForRota \"\u003e all_users_for_rota \u003c/span\u003eand specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User. Possible values are: \u003cspan pulumi-lang-nodejs=\"`schedule`\" pulumi-lang-dotnet=\"`Schedule`\" pulumi-lang-go=\"`schedule`\" pulumi-lang-python=\"`schedule`\" pulumi-lang-yaml=\"`schedule`\" pulumi-lang-java=\"`schedule`\"\u003e`schedule`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`user`\" pulumi-lang-dotnet=\"`User`\" pulumi-lang-go=\"`user`\" pulumi-lang-python=\"`user`\" pulumi-lang-yaml=\"`user`\" pulumi-lang-java=\"`user`\"\u003e`user`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`slackChannel`\" pulumi-lang-dotnet=\"`SlackChannel`\" pulumi-lang-go=\"`slackChannel`\" pulumi-lang-python=\"`slack_channel`\" pulumi-lang-yaml=\"`slackChannel`\" pulumi-lang-java=\"`slackChannel`\"\u003e`slack_channel`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`msteamsChannel`\" pulumi-lang-dotnet=\"`MsteamsChannel`\" pulumi-lang-go=\"`msteamsChannel`\" pulumi-lang-python=\"`msteams_channel`\" pulumi-lang-yaml=\"`msteamsChannel`\" pulumi-lang-java=\"`msteamsChannel`\"\u003e`msteams_channel`\u003c/span\u003e.\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target. Possible values are: \u003cspan pulumi-lang-nodejs=\"`high`\" pulumi-lang-dotnet=\"`High`\" pulumi-lang-go=\"`high`\" pulumi-lang-python=\"`high`\" pulumi-lang-yaml=\"`high`\" pulumi-lang-java=\"`high`\"\u003e`high`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`low`\" pulumi-lang-dotnet=\"`Low`\" pulumi-lang-go=\"`low`\" pulumi-lang-python=\"`low`\" pulumi-lang-yaml=\"`low`\" pulumi-lang-java=\"`low`\"\u003e`low`\u003c/span\u003e.\n"}},"type":"object","required":["id","type","urgency"],"language":{"nodejs":{"requiredOutputs":["id","scheduleMode","type","urgency"]}}},"incident:index/EscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathNotifyChannel:EscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathNotifyChannel":{"properties":{"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathNotifyChannelTarget:EscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathNotifyChannelTarget"},"description":"The targets (Slack channels) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before moving on to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["targets"]},"incident:index/EscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathNotifyChannelTarget:EscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathNotifyChannelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently_on_call,\u003cspan pulumi-lang-nodejs=\" allUsers \" pulumi-lang-dotnet=\" AllUsers \" pulumi-lang-go=\" allUsers \" pulumi-lang-python=\" all_users \" pulumi-lang-yaml=\" allUsers \" pulumi-lang-java=\" allUsers \"\u003e all_users \u003c/span\u003eor\u003cspan pulumi-lang-nodejs=\" allUsersForRota \" pulumi-lang-dotnet=\" AllUsersForRota \" pulumi-lang-go=\" allUsersForRota \" pulumi-lang-python=\" all_users_for_rota \" pulumi-lang-yaml=\" allUsersForRota \" pulumi-lang-java=\" allUsersForRota \"\u003e all_users_for_rota \u003c/span\u003eand specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User. Possible values are: \u003cspan pulumi-lang-nodejs=\"`schedule`\" pulumi-lang-dotnet=\"`Schedule`\" pulumi-lang-go=\"`schedule`\" pulumi-lang-python=\"`schedule`\" pulumi-lang-yaml=\"`schedule`\" pulumi-lang-java=\"`schedule`\"\u003e`schedule`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`user`\" pulumi-lang-dotnet=\"`User`\" pulumi-lang-go=\"`user`\" pulumi-lang-python=\"`user`\" pulumi-lang-yaml=\"`user`\" pulumi-lang-java=\"`user`\"\u003e`user`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`slackChannel`\" pulumi-lang-dotnet=\"`SlackChannel`\" pulumi-lang-go=\"`slackChannel`\" pulumi-lang-python=\"`slack_channel`\" pulumi-lang-yaml=\"`slackChannel`\" pulumi-lang-java=\"`slackChannel`\"\u003e`slack_channel`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`msteamsChannel`\" pulumi-lang-dotnet=\"`MsteamsChannel`\" pulumi-lang-go=\"`msteamsChannel`\" pulumi-lang-python=\"`msteams_channel`\" pulumi-lang-yaml=\"`msteamsChannel`\" pulumi-lang-java=\"`msteamsChannel`\"\u003e`msteams_channel`\u003c/span\u003e.\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target. Possible values are: \u003cspan pulumi-lang-nodejs=\"`high`\" pulumi-lang-dotnet=\"`High`\" pulumi-lang-go=\"`high`\" pulumi-lang-python=\"`high`\" pulumi-lang-yaml=\"`high`\" pulumi-lang-java=\"`high`\"\u003e`high`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`low`\" pulumi-lang-dotnet=\"`Low`\" pulumi-lang-go=\"`low`\" pulumi-lang-python=\"`low`\" pulumi-lang-yaml=\"`low`\" pulumi-lang-java=\"`low`\"\u003e`low`\u003c/span\u003e.\n"}},"type":"object","required":["id","type","urgency"],"language":{"nodejs":{"requiredOutputs":["id","scheduleMode","type","urgency"]}}},"incident:index/EscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathRepeat:EscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathRepeat":{"properties":{"repeatTimes":{"type":"number","description":"How many times to repeat these nodes\n"},"toNode":{"type":"string","description":"Which node ID we begin repeating from.\n"}},"type":"object","required":["repeatTimes","toNode"]},"incident:index/EscalationPathPathIfElseElsePathIfElseElsePathLevel:EscalationPathPathIfElseElsePathIfElseElsePathLevel":{"properties":{"ackMode":{"type":"string","description":"Controls the behaviour of acknowledgements for this level, with 'first' cancelling all other escalations on the same level when someone acks\n"},"roundRobinConfig":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseElsePathLevelRoundRobinConfig:EscalationPathPathIfElseElsePathIfElseElsePathLevelRoundRobinConfig"},"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseElsePathLevelTarget:EscalationPathPathIfElseElsePathIfElseElsePathLevelTarget"},"description":"The targets (users or schedules) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before proceeding to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["targets"],"language":{"nodejs":{"requiredOutputs":["ackMode","targets"]}}},"incident:index/EscalationPathPathIfElseElsePathIfElseElsePathLevelRoundRobinConfig:EscalationPathPathIfElseElsePathIfElseElsePathLevelRoundRobinConfig":{"properties":{"enabled":{"type":"boolean","description":"Whether round robin is enabled for this level\n"},"rotateAfterSeconds":{"type":"number","description":"How long should we wait before rotating to the next target in a round robin, if not set will stick with a single target per level.\n"}},"type":"object","required":["enabled"]},"incident:index/EscalationPathPathIfElseElsePathIfElseElsePathLevelTarget:EscalationPathPathIfElseElsePathIfElseElsePathLevelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently_on_call,\u003cspan pulumi-lang-nodejs=\" allUsers \" pulumi-lang-dotnet=\" AllUsers \" pulumi-lang-go=\" allUsers \" pulumi-lang-python=\" all_users \" pulumi-lang-yaml=\" allUsers \" pulumi-lang-java=\" allUsers \"\u003e all_users \u003c/span\u003eor\u003cspan pulumi-lang-nodejs=\" allUsersForRota \" pulumi-lang-dotnet=\" AllUsersForRota \" pulumi-lang-go=\" allUsersForRota \" pulumi-lang-python=\" all_users_for_rota \" pulumi-lang-yaml=\" allUsersForRota \" pulumi-lang-java=\" allUsersForRota \"\u003e all_users_for_rota \u003c/span\u003eand specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User. Possible values are: \u003cspan pulumi-lang-nodejs=\"`schedule`\" pulumi-lang-dotnet=\"`Schedule`\" pulumi-lang-go=\"`schedule`\" pulumi-lang-python=\"`schedule`\" pulumi-lang-yaml=\"`schedule`\" pulumi-lang-java=\"`schedule`\"\u003e`schedule`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`user`\" pulumi-lang-dotnet=\"`User`\" pulumi-lang-go=\"`user`\" pulumi-lang-python=\"`user`\" pulumi-lang-yaml=\"`user`\" pulumi-lang-java=\"`user`\"\u003e`user`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`slackChannel`\" pulumi-lang-dotnet=\"`SlackChannel`\" pulumi-lang-go=\"`slackChannel`\" pulumi-lang-python=\"`slack_channel`\" pulumi-lang-yaml=\"`slackChannel`\" pulumi-lang-java=\"`slackChannel`\"\u003e`slack_channel`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`msteamsChannel`\" pulumi-lang-dotnet=\"`MsteamsChannel`\" pulumi-lang-go=\"`msteamsChannel`\" pulumi-lang-python=\"`msteams_channel`\" pulumi-lang-yaml=\"`msteamsChannel`\" pulumi-lang-java=\"`msteamsChannel`\"\u003e`msteams_channel`\u003c/span\u003e.\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target. Possible values are: \u003cspan pulumi-lang-nodejs=\"`high`\" pulumi-lang-dotnet=\"`High`\" pulumi-lang-go=\"`high`\" pulumi-lang-python=\"`high`\" pulumi-lang-yaml=\"`high`\" pulumi-lang-java=\"`high`\"\u003e`high`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`low`\" pulumi-lang-dotnet=\"`Low`\" pulumi-lang-go=\"`low`\" pulumi-lang-python=\"`low`\" pulumi-lang-yaml=\"`low`\" pulumi-lang-java=\"`low`\"\u003e`low`\u003c/span\u003e.\n"}},"type":"object","required":["id","type","urgency"],"language":{"nodejs":{"requiredOutputs":["id","scheduleMode","type","urgency"]}}},"incident:index/EscalationPathPathIfElseElsePathIfElseElsePathNotifyChannel:EscalationPathPathIfElseElsePathIfElseElsePathNotifyChannel":{"properties":{"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseElsePathNotifyChannelTarget:EscalationPathPathIfElseElsePathIfElseElsePathNotifyChannelTarget"},"description":"The targets (Slack channels) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before moving on to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["targets"]},"incident:index/EscalationPathPathIfElseElsePathIfElseElsePathNotifyChannelTarget:EscalationPathPathIfElseElsePathIfElseElsePathNotifyChannelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently_on_call,\u003cspan pulumi-lang-nodejs=\" allUsers \" pulumi-lang-dotnet=\" AllUsers \" pulumi-lang-go=\" allUsers \" pulumi-lang-python=\" all_users \" pulumi-lang-yaml=\" allUsers \" pulumi-lang-java=\" allUsers \"\u003e all_users \u003c/span\u003eor\u003cspan pulumi-lang-nodejs=\" allUsersForRota \" pulumi-lang-dotnet=\" AllUsersForRota \" pulumi-lang-go=\" allUsersForRota \" pulumi-lang-python=\" all_users_for_rota \" pulumi-lang-yaml=\" allUsersForRota \" pulumi-lang-java=\" allUsersForRota \"\u003e all_users_for_rota \u003c/span\u003eand specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User. Possible values are: \u003cspan pulumi-lang-nodejs=\"`schedule`\" pulumi-lang-dotnet=\"`Schedule`\" pulumi-lang-go=\"`schedule`\" pulumi-lang-python=\"`schedule`\" pulumi-lang-yaml=\"`schedule`\" pulumi-lang-java=\"`schedule`\"\u003e`schedule`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`user`\" pulumi-lang-dotnet=\"`User`\" pulumi-lang-go=\"`user`\" pulumi-lang-python=\"`user`\" pulumi-lang-yaml=\"`user`\" pulumi-lang-java=\"`user`\"\u003e`user`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`slackChannel`\" pulumi-lang-dotnet=\"`SlackChannel`\" pulumi-lang-go=\"`slackChannel`\" pulumi-lang-python=\"`slack_channel`\" pulumi-lang-yaml=\"`slackChannel`\" pulumi-lang-java=\"`slackChannel`\"\u003e`slack_channel`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`msteamsChannel`\" pulumi-lang-dotnet=\"`MsteamsChannel`\" pulumi-lang-go=\"`msteamsChannel`\" pulumi-lang-python=\"`msteams_channel`\" pulumi-lang-yaml=\"`msteamsChannel`\" pulumi-lang-java=\"`msteamsChannel`\"\u003e`msteams_channel`\u003c/span\u003e.\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target. Possible values are: \u003cspan pulumi-lang-nodejs=\"`high`\" pulumi-lang-dotnet=\"`High`\" pulumi-lang-go=\"`high`\" pulumi-lang-python=\"`high`\" pulumi-lang-yaml=\"`high`\" pulumi-lang-java=\"`high`\"\u003e`high`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`low`\" pulumi-lang-dotnet=\"`Low`\" pulumi-lang-go=\"`low`\" pulumi-lang-python=\"`low`\" pulumi-lang-yaml=\"`low`\" pulumi-lang-java=\"`low`\"\u003e`low`\u003c/span\u003e.\n"}},"type":"object","required":["id","type","urgency"],"language":{"nodejs":{"requiredOutputs":["id","scheduleMode","type","urgency"]}}},"incident:index/EscalationPathPathIfElseElsePathIfElseElsePathRepeat:EscalationPathPathIfElseElsePathIfElseElsePathRepeat":{"properties":{"repeatTimes":{"type":"number","description":"How many times to repeat these nodes\n"},"toNode":{"type":"string","description":"Which node ID we begin repeating from.\n"}},"type":"object","required":["repeatTimes","toNode"]},"incident:index/EscalationPathPathIfElseElsePathIfElseThenPath:EscalationPathPathIfElseElsePathIfElseThenPath":{"properties":{"id":{"type":"string","description":"An ID for this node, unique within the escalation path.\n\nThis allows you to reference the node in other nodes, such as when configuring a 'repeat' node.\n"},"ifElse":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseThenPathIfElse:EscalationPathPathIfElseElsePathIfElseThenPathIfElse"},"level":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseThenPathLevel:EscalationPathPathIfElseElsePathIfElseThenPathLevel"},"notifyChannel":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseThenPathNotifyChannel:EscalationPathPathIfElseElsePathIfElseThenPathNotifyChannel"},"repeat":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseThenPathRepeat:EscalationPathPathIfElseElsePathIfElseThenPathRepeat"},"type":{"type":"string","description":"The type of this node. Available types are:\n* level: A set of targets (users or schedules) that should be paged, either all at once, or with a round-robin configuration.\n* notify_channel: Send the escalation to a Slack channel, where it can be acked by anyone in the channel.\n* if_else: Branch the escalation based on a set of conditions.\n* repeat: Go back to a previous node and repeat the logic from there.\n"}},"type":"object","required":["type"],"language":{"nodejs":{"requiredOutputs":["id","type"]}}},"incident:index/EscalationPathPathIfElseElsePathIfElseThenPathIfElse:EscalationPathPathIfElseElsePathIfElseThenPathIfElse":{"properties":{"conditions":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseThenPathIfElseCondition:EscalationPathPathIfElseElsePathIfElseThenPathIfElseCondition"},"description":"The prerequisite conditions that must all be satisfied\n"},"elsePaths":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePath:EscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePath"},"description":"The nodes that form the levels if our condition is not met\n"},"thenPaths":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPath:EscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPath"},"description":"Then path nodes\n"}},"type":"object","required":["conditions","thenPaths"]},"incident:index/EscalationPathPathIfElseElsePathIfElseThenPathIfElseCondition:EscalationPathPathIfElseElsePathIfElseThenPathIfElseCondition":{"properties":{"operation":{"type":"string","description":"The logical operation to be applied\n"},"paramBindings":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseThenPathIfElseConditionParamBinding:EscalationPathPathIfElseElsePathIfElseThenPathIfElseConditionParamBinding"},"description":"Bindings for the operation parameters\n"},"subject":{"type":"string","description":"The subject of the condition, on which the operation is applied\n"}},"type":"object","required":["operation","paramBindings","subject"]},"incident:index/EscalationPathPathIfElseElsePathIfElseThenPathIfElseConditionParamBinding:EscalationPathPathIfElseElsePathIfElseThenPathIfElseConditionParamBinding":{"properties":{"arrayValues":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseThenPathIfElseConditionParamBindingArrayValue:EscalationPathPathIfElseElsePathIfElseThenPathIfElseConditionParamBindingArrayValue"},"description":"The array of literal or reference parameter values\n"},"value":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseThenPathIfElseConditionParamBindingValue:EscalationPathPathIfElseElsePathIfElseThenPathIfElseConditionParamBindingValue","description":"The literal or reference parameter value\n"}},"type":"object"},"incident:index/EscalationPathPathIfElseElsePathIfElseThenPathIfElseConditionParamBindingArrayValue:EscalationPathPathIfElseElsePathIfElseThenPathIfElseConditionParamBindingArrayValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object"},"incident:index/EscalationPathPathIfElseElsePathIfElseThenPathIfElseConditionParamBindingValue:EscalationPathPathIfElseElsePathIfElseThenPathIfElseConditionParamBindingValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object"},"incident:index/EscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePath:EscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePath":{"properties":{"id":{"type":"string","description":"An ID for this node, unique within the escalation path.\n\nThis allows you to reference the node in other nodes, such as when configuring a 'repeat' node.\n"},"ifElse":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElse:EscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElse"},"level":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathLevel:EscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathLevel"},"notifyChannel":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathNotifyChannel:EscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathNotifyChannel"},"repeat":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathRepeat:EscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathRepeat"},"type":{"type":"string","description":"The type of this node. Available types are:\n* level: A set of targets (users or schedules) that should be paged, either all at once, or with a round-robin configuration.\n* notify_channel: Send the escalation to a Slack channel, where it can be acked by anyone in the channel.\n* if_else: Branch the escalation based on a set of conditions.\n* repeat: Go back to a previous node and repeat the logic from there.\n"}},"type":"object","required":["type"],"language":{"nodejs":{"requiredOutputs":["id","type"]}}},"incident:index/EscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElse:EscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElse":{"properties":{"conditions":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseCondition:EscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseCondition"},"description":"The prerequisite conditions that must all be satisfied\n"},"elsePaths":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseElsePath:EscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseElsePath"},"description":"The nodes that form the levels if our condition is not met\n"},"thenPaths":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseThenPath:EscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseThenPath"},"description":"Then path nodes\n"}},"type":"object","required":["conditions","thenPaths"]},"incident:index/EscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseCondition:EscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseCondition":{"properties":{"operation":{"type":"string","description":"The logical operation to be applied\n"},"paramBindings":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseConditionParamBinding:EscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseConditionParamBinding"},"description":"Bindings for the operation parameters\n"},"subject":{"type":"string","description":"The subject of the condition, on which the operation is applied\n"}},"type":"object","required":["operation","paramBindings","subject"]},"incident:index/EscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseConditionParamBinding:EscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseConditionParamBinding":{"properties":{"arrayValues":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseConditionParamBindingArrayValue:EscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseConditionParamBindingArrayValue"},"description":"The array of literal or reference parameter values\n"},"value":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseConditionParamBindingValue:EscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseConditionParamBindingValue","description":"The literal or reference parameter value\n"}},"type":"object"},"incident:index/EscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseConditionParamBindingArrayValue:EscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseConditionParamBindingArrayValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object"},"incident:index/EscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseConditionParamBindingValue:EscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseConditionParamBindingValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object"},"incident:index/EscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseElsePath:EscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseElsePath":{"properties":{"id":{"type":"string","description":"An ID for this node, unique within the escalation path.\n\nThis allows you to reference the node in other nodes, such as when configuring a 'repeat' node.\n"},"level":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseElsePathLevel:EscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseElsePathLevel"},"notifyChannel":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseElsePathNotifyChannel:EscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseElsePathNotifyChannel"},"repeat":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseElsePathRepeat:EscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseElsePathRepeat"},"type":{"type":"string","description":"The type of this node. Available types are:\n* level: A set of targets (users or schedules) that should be paged, either all at once, or with a round-robin configuration.\n* notify_channel: Send the escalation to a Slack channel, where it can be acked by anyone in the channel.\n* if_else: Branch the escalation based on a set of conditions.\n* repeat: Go back to a previous node and repeat the logic from there.\n"}},"type":"object","required":["type"],"language":{"nodejs":{"requiredOutputs":["id","type"]}}},"incident:index/EscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseElsePathLevel:EscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseElsePathLevel":{"properties":{"ackMode":{"type":"string","description":"Controls the behaviour of acknowledgements for this level, with 'first' cancelling all other escalations on the same level when someone acks\n"},"roundRobinConfig":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseElsePathLevelRoundRobinConfig:EscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseElsePathLevelRoundRobinConfig"},"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseElsePathLevelTarget:EscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseElsePathLevelTarget"},"description":"The targets (users or schedules) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before proceeding to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["targets"],"language":{"nodejs":{"requiredOutputs":["ackMode","targets"]}}},"incident:index/EscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseElsePathLevelRoundRobinConfig:EscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseElsePathLevelRoundRobinConfig":{"properties":{"enabled":{"type":"boolean","description":"Whether round robin is enabled for this level\n"},"rotateAfterSeconds":{"type":"number","description":"How long should we wait before rotating to the next target in a round robin, if not set will stick with a single target per level.\n"}},"type":"object","required":["enabled"]},"incident:index/EscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseElsePathLevelTarget:EscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseElsePathLevelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently_on_call,\u003cspan pulumi-lang-nodejs=\" allUsers \" pulumi-lang-dotnet=\" AllUsers \" pulumi-lang-go=\" allUsers \" pulumi-lang-python=\" all_users \" pulumi-lang-yaml=\" allUsers \" pulumi-lang-java=\" allUsers \"\u003e all_users \u003c/span\u003eor\u003cspan pulumi-lang-nodejs=\" allUsersForRota \" pulumi-lang-dotnet=\" AllUsersForRota \" pulumi-lang-go=\" allUsersForRota \" pulumi-lang-python=\" all_users_for_rota \" pulumi-lang-yaml=\" allUsersForRota \" pulumi-lang-java=\" allUsersForRota \"\u003e all_users_for_rota \u003c/span\u003eand specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User. Possible values are: \u003cspan pulumi-lang-nodejs=\"`schedule`\" pulumi-lang-dotnet=\"`Schedule`\" pulumi-lang-go=\"`schedule`\" pulumi-lang-python=\"`schedule`\" pulumi-lang-yaml=\"`schedule`\" pulumi-lang-java=\"`schedule`\"\u003e`schedule`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`user`\" pulumi-lang-dotnet=\"`User`\" pulumi-lang-go=\"`user`\" pulumi-lang-python=\"`user`\" pulumi-lang-yaml=\"`user`\" pulumi-lang-java=\"`user`\"\u003e`user`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`slackChannel`\" pulumi-lang-dotnet=\"`SlackChannel`\" pulumi-lang-go=\"`slackChannel`\" pulumi-lang-python=\"`slack_channel`\" pulumi-lang-yaml=\"`slackChannel`\" pulumi-lang-java=\"`slackChannel`\"\u003e`slack_channel`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`msteamsChannel`\" pulumi-lang-dotnet=\"`MsteamsChannel`\" pulumi-lang-go=\"`msteamsChannel`\" pulumi-lang-python=\"`msteams_channel`\" pulumi-lang-yaml=\"`msteamsChannel`\" pulumi-lang-java=\"`msteamsChannel`\"\u003e`msteams_channel`\u003c/span\u003e.\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target. Possible values are: \u003cspan pulumi-lang-nodejs=\"`high`\" pulumi-lang-dotnet=\"`High`\" pulumi-lang-go=\"`high`\" pulumi-lang-python=\"`high`\" pulumi-lang-yaml=\"`high`\" pulumi-lang-java=\"`high`\"\u003e`high`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`low`\" pulumi-lang-dotnet=\"`Low`\" pulumi-lang-go=\"`low`\" pulumi-lang-python=\"`low`\" pulumi-lang-yaml=\"`low`\" pulumi-lang-java=\"`low`\"\u003e`low`\u003c/span\u003e.\n"}},"type":"object","required":["id","type","urgency"],"language":{"nodejs":{"requiredOutputs":["id","scheduleMode","type","urgency"]}}},"incident:index/EscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseElsePathNotifyChannel:EscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseElsePathNotifyChannel":{"properties":{"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseElsePathNotifyChannelTarget:EscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseElsePathNotifyChannelTarget"},"description":"The targets (Slack channels) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before moving on to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["targets"]},"incident:index/EscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseElsePathNotifyChannelTarget:EscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseElsePathNotifyChannelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently_on_call,\u003cspan pulumi-lang-nodejs=\" allUsers \" pulumi-lang-dotnet=\" AllUsers \" pulumi-lang-go=\" allUsers \" pulumi-lang-python=\" all_users \" pulumi-lang-yaml=\" allUsers \" pulumi-lang-java=\" allUsers \"\u003e all_users \u003c/span\u003eor\u003cspan pulumi-lang-nodejs=\" allUsersForRota \" pulumi-lang-dotnet=\" AllUsersForRota \" pulumi-lang-go=\" allUsersForRota \" pulumi-lang-python=\" all_users_for_rota \" pulumi-lang-yaml=\" allUsersForRota \" pulumi-lang-java=\" allUsersForRota \"\u003e all_users_for_rota \u003c/span\u003eand specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User. Possible values are: \u003cspan pulumi-lang-nodejs=\"`schedule`\" pulumi-lang-dotnet=\"`Schedule`\" pulumi-lang-go=\"`schedule`\" pulumi-lang-python=\"`schedule`\" pulumi-lang-yaml=\"`schedule`\" pulumi-lang-java=\"`schedule`\"\u003e`schedule`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`user`\" pulumi-lang-dotnet=\"`User`\" pulumi-lang-go=\"`user`\" pulumi-lang-python=\"`user`\" pulumi-lang-yaml=\"`user`\" pulumi-lang-java=\"`user`\"\u003e`user`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`slackChannel`\" pulumi-lang-dotnet=\"`SlackChannel`\" pulumi-lang-go=\"`slackChannel`\" pulumi-lang-python=\"`slack_channel`\" pulumi-lang-yaml=\"`slackChannel`\" pulumi-lang-java=\"`slackChannel`\"\u003e`slack_channel`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`msteamsChannel`\" pulumi-lang-dotnet=\"`MsteamsChannel`\" pulumi-lang-go=\"`msteamsChannel`\" pulumi-lang-python=\"`msteams_channel`\" pulumi-lang-yaml=\"`msteamsChannel`\" pulumi-lang-java=\"`msteamsChannel`\"\u003e`msteams_channel`\u003c/span\u003e.\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target. Possible values are: \u003cspan pulumi-lang-nodejs=\"`high`\" pulumi-lang-dotnet=\"`High`\" pulumi-lang-go=\"`high`\" pulumi-lang-python=\"`high`\" pulumi-lang-yaml=\"`high`\" pulumi-lang-java=\"`high`\"\u003e`high`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`low`\" pulumi-lang-dotnet=\"`Low`\" pulumi-lang-go=\"`low`\" pulumi-lang-python=\"`low`\" pulumi-lang-yaml=\"`low`\" pulumi-lang-java=\"`low`\"\u003e`low`\u003c/span\u003e.\n"}},"type":"object","required":["id","type","urgency"],"language":{"nodejs":{"requiredOutputs":["id","scheduleMode","type","urgency"]}}},"incident:index/EscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseElsePathRepeat:EscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseElsePathRepeat":{"properties":{"repeatTimes":{"type":"number","description":"How many times to repeat these nodes\n"},"toNode":{"type":"string","description":"Which node ID we begin repeating from.\n"}},"type":"object","required":["repeatTimes","toNode"]},"incident:index/EscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseThenPath:EscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseThenPath":{"properties":{"id":{"type":"string","description":"An ID for this node, unique within the escalation path.\n\nThis allows you to reference the node in other nodes, such as when configuring a 'repeat' node.\n"},"level":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseThenPathLevel:EscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseThenPathLevel"},"notifyChannel":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseThenPathNotifyChannel:EscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseThenPathNotifyChannel"},"repeat":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseThenPathRepeat:EscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseThenPathRepeat"},"type":{"type":"string","description":"The type of this node. Available types are:\n* level: A set of targets (users or schedules) that should be paged, either all at once, or with a round-robin configuration.\n* notify_channel: Send the escalation to a Slack channel, where it can be acked by anyone in the channel.\n* if_else: Branch the escalation based on a set of conditions.\n* repeat: Go back to a previous node and repeat the logic from there.\n"}},"type":"object","required":["type"],"language":{"nodejs":{"requiredOutputs":["id","type"]}}},"incident:index/EscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseThenPathLevel:EscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseThenPathLevel":{"properties":{"ackMode":{"type":"string","description":"Controls the behaviour of acknowledgements for this level, with 'first' cancelling all other escalations on the same level when someone acks\n"},"roundRobinConfig":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseThenPathLevelRoundRobinConfig:EscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseThenPathLevelRoundRobinConfig"},"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseThenPathLevelTarget:EscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseThenPathLevelTarget"},"description":"The targets (users or schedules) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before proceeding to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["targets"],"language":{"nodejs":{"requiredOutputs":["ackMode","targets"]}}},"incident:index/EscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseThenPathLevelRoundRobinConfig:EscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseThenPathLevelRoundRobinConfig":{"properties":{"enabled":{"type":"boolean","description":"Whether round robin is enabled for this level\n"},"rotateAfterSeconds":{"type":"number","description":"How long should we wait before rotating to the next target in a round robin, if not set will stick with a single target per level.\n"}},"type":"object","required":["enabled"]},"incident:index/EscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseThenPathLevelTarget:EscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseThenPathLevelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently_on_call,\u003cspan pulumi-lang-nodejs=\" allUsers \" pulumi-lang-dotnet=\" AllUsers \" pulumi-lang-go=\" allUsers \" pulumi-lang-python=\" all_users \" pulumi-lang-yaml=\" allUsers \" pulumi-lang-java=\" allUsers \"\u003e all_users \u003c/span\u003eor\u003cspan pulumi-lang-nodejs=\" allUsersForRota \" pulumi-lang-dotnet=\" AllUsersForRota \" pulumi-lang-go=\" allUsersForRota \" pulumi-lang-python=\" all_users_for_rota \" pulumi-lang-yaml=\" allUsersForRota \" pulumi-lang-java=\" allUsersForRota \"\u003e all_users_for_rota \u003c/span\u003eand specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User. Possible values are: \u003cspan pulumi-lang-nodejs=\"`schedule`\" pulumi-lang-dotnet=\"`Schedule`\" pulumi-lang-go=\"`schedule`\" pulumi-lang-python=\"`schedule`\" pulumi-lang-yaml=\"`schedule`\" pulumi-lang-java=\"`schedule`\"\u003e`schedule`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`user`\" pulumi-lang-dotnet=\"`User`\" pulumi-lang-go=\"`user`\" pulumi-lang-python=\"`user`\" pulumi-lang-yaml=\"`user`\" pulumi-lang-java=\"`user`\"\u003e`user`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`slackChannel`\" pulumi-lang-dotnet=\"`SlackChannel`\" pulumi-lang-go=\"`slackChannel`\" pulumi-lang-python=\"`slack_channel`\" pulumi-lang-yaml=\"`slackChannel`\" pulumi-lang-java=\"`slackChannel`\"\u003e`slack_channel`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`msteamsChannel`\" pulumi-lang-dotnet=\"`MsteamsChannel`\" pulumi-lang-go=\"`msteamsChannel`\" pulumi-lang-python=\"`msteams_channel`\" pulumi-lang-yaml=\"`msteamsChannel`\" pulumi-lang-java=\"`msteamsChannel`\"\u003e`msteams_channel`\u003c/span\u003e.\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target. Possible values are: \u003cspan pulumi-lang-nodejs=\"`high`\" pulumi-lang-dotnet=\"`High`\" pulumi-lang-go=\"`high`\" pulumi-lang-python=\"`high`\" pulumi-lang-yaml=\"`high`\" pulumi-lang-java=\"`high`\"\u003e`high`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`low`\" pulumi-lang-dotnet=\"`Low`\" pulumi-lang-go=\"`low`\" pulumi-lang-python=\"`low`\" pulumi-lang-yaml=\"`low`\" pulumi-lang-java=\"`low`\"\u003e`low`\u003c/span\u003e.\n"}},"type":"object","required":["id","type","urgency"],"language":{"nodejs":{"requiredOutputs":["id","scheduleMode","type","urgency"]}}},"incident:index/EscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseThenPathNotifyChannel:EscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseThenPathNotifyChannel":{"properties":{"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseThenPathNotifyChannelTarget:EscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseThenPathNotifyChannelTarget"},"description":"The targets (Slack channels) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before moving on to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["targets"]},"incident:index/EscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseThenPathNotifyChannelTarget:EscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseThenPathNotifyChannelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently_on_call,\u003cspan pulumi-lang-nodejs=\" allUsers \" pulumi-lang-dotnet=\" AllUsers \" pulumi-lang-go=\" allUsers \" pulumi-lang-python=\" all_users \" pulumi-lang-yaml=\" allUsers \" pulumi-lang-java=\" allUsers \"\u003e all_users \u003c/span\u003eor\u003cspan pulumi-lang-nodejs=\" allUsersForRota \" pulumi-lang-dotnet=\" AllUsersForRota \" pulumi-lang-go=\" allUsersForRota \" pulumi-lang-python=\" all_users_for_rota \" pulumi-lang-yaml=\" allUsersForRota \" pulumi-lang-java=\" allUsersForRota \"\u003e all_users_for_rota \u003c/span\u003eand specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User. Possible values are: \u003cspan pulumi-lang-nodejs=\"`schedule`\" pulumi-lang-dotnet=\"`Schedule`\" pulumi-lang-go=\"`schedule`\" pulumi-lang-python=\"`schedule`\" pulumi-lang-yaml=\"`schedule`\" pulumi-lang-java=\"`schedule`\"\u003e`schedule`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`user`\" pulumi-lang-dotnet=\"`User`\" pulumi-lang-go=\"`user`\" pulumi-lang-python=\"`user`\" pulumi-lang-yaml=\"`user`\" pulumi-lang-java=\"`user`\"\u003e`user`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`slackChannel`\" pulumi-lang-dotnet=\"`SlackChannel`\" pulumi-lang-go=\"`slackChannel`\" pulumi-lang-python=\"`slack_channel`\" pulumi-lang-yaml=\"`slackChannel`\" pulumi-lang-java=\"`slackChannel`\"\u003e`slack_channel`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`msteamsChannel`\" pulumi-lang-dotnet=\"`MsteamsChannel`\" pulumi-lang-go=\"`msteamsChannel`\" pulumi-lang-python=\"`msteams_channel`\" pulumi-lang-yaml=\"`msteamsChannel`\" pulumi-lang-java=\"`msteamsChannel`\"\u003e`msteams_channel`\u003c/span\u003e.\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target. Possible values are: \u003cspan pulumi-lang-nodejs=\"`high`\" pulumi-lang-dotnet=\"`High`\" pulumi-lang-go=\"`high`\" pulumi-lang-python=\"`high`\" pulumi-lang-yaml=\"`high`\" pulumi-lang-java=\"`high`\"\u003e`high`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`low`\" pulumi-lang-dotnet=\"`Low`\" pulumi-lang-go=\"`low`\" pulumi-lang-python=\"`low`\" pulumi-lang-yaml=\"`low`\" pulumi-lang-java=\"`low`\"\u003e`low`\u003c/span\u003e.\n"}},"type":"object","required":["id","type","urgency"],"language":{"nodejs":{"requiredOutputs":["id","scheduleMode","type","urgency"]}}},"incident:index/EscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseThenPathRepeat:EscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseThenPathRepeat":{"properties":{"repeatTimes":{"type":"number","description":"How many times to repeat these nodes\n"},"toNode":{"type":"string","description":"Which node ID we begin repeating from.\n"}},"type":"object","required":["repeatTimes","toNode"]},"incident:index/EscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathLevel:EscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathLevel":{"properties":{"ackMode":{"type":"string","description":"Controls the behaviour of acknowledgements for this level, with 'first' cancelling all other escalations on the same level when someone acks\n"},"roundRobinConfig":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathLevelRoundRobinConfig:EscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathLevelRoundRobinConfig"},"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathLevelTarget:EscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathLevelTarget"},"description":"The targets (users or schedules) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before proceeding to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["targets"],"language":{"nodejs":{"requiredOutputs":["ackMode","targets"]}}},"incident:index/EscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathLevelRoundRobinConfig:EscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathLevelRoundRobinConfig":{"properties":{"enabled":{"type":"boolean","description":"Whether round robin is enabled for this level\n"},"rotateAfterSeconds":{"type":"number","description":"How long should we wait before rotating to the next target in a round robin, if not set will stick with a single target per level.\n"}},"type":"object","required":["enabled"]},"incident:index/EscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathLevelTarget:EscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathLevelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently_on_call,\u003cspan pulumi-lang-nodejs=\" allUsers \" pulumi-lang-dotnet=\" AllUsers \" pulumi-lang-go=\" allUsers \" pulumi-lang-python=\" all_users \" pulumi-lang-yaml=\" allUsers \" pulumi-lang-java=\" allUsers \"\u003e all_users \u003c/span\u003eor\u003cspan pulumi-lang-nodejs=\" allUsersForRota \" pulumi-lang-dotnet=\" AllUsersForRota \" pulumi-lang-go=\" allUsersForRota \" pulumi-lang-python=\" all_users_for_rota \" pulumi-lang-yaml=\" allUsersForRota \" pulumi-lang-java=\" allUsersForRota \"\u003e all_users_for_rota \u003c/span\u003eand specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User. Possible values are: \u003cspan pulumi-lang-nodejs=\"`schedule`\" pulumi-lang-dotnet=\"`Schedule`\" pulumi-lang-go=\"`schedule`\" pulumi-lang-python=\"`schedule`\" pulumi-lang-yaml=\"`schedule`\" pulumi-lang-java=\"`schedule`\"\u003e`schedule`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`user`\" pulumi-lang-dotnet=\"`User`\" pulumi-lang-go=\"`user`\" pulumi-lang-python=\"`user`\" pulumi-lang-yaml=\"`user`\" pulumi-lang-java=\"`user`\"\u003e`user`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`slackChannel`\" pulumi-lang-dotnet=\"`SlackChannel`\" pulumi-lang-go=\"`slackChannel`\" pulumi-lang-python=\"`slack_channel`\" pulumi-lang-yaml=\"`slackChannel`\" pulumi-lang-java=\"`slackChannel`\"\u003e`slack_channel`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`msteamsChannel`\" pulumi-lang-dotnet=\"`MsteamsChannel`\" pulumi-lang-go=\"`msteamsChannel`\" pulumi-lang-python=\"`msteams_channel`\" pulumi-lang-yaml=\"`msteamsChannel`\" pulumi-lang-java=\"`msteamsChannel`\"\u003e`msteams_channel`\u003c/span\u003e.\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target. Possible values are: \u003cspan pulumi-lang-nodejs=\"`high`\" pulumi-lang-dotnet=\"`High`\" pulumi-lang-go=\"`high`\" pulumi-lang-python=\"`high`\" pulumi-lang-yaml=\"`high`\" pulumi-lang-java=\"`high`\"\u003e`high`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`low`\" pulumi-lang-dotnet=\"`Low`\" pulumi-lang-go=\"`low`\" pulumi-lang-python=\"`low`\" pulumi-lang-yaml=\"`low`\" pulumi-lang-java=\"`low`\"\u003e`low`\u003c/span\u003e.\n"}},"type":"object","required":["id","type","urgency"],"language":{"nodejs":{"requiredOutputs":["id","scheduleMode","type","urgency"]}}},"incident:index/EscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathNotifyChannel:EscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathNotifyChannel":{"properties":{"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathNotifyChannelTarget:EscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathNotifyChannelTarget"},"description":"The targets (Slack channels) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before moving on to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["targets"]},"incident:index/EscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathNotifyChannelTarget:EscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathNotifyChannelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently_on_call,\u003cspan pulumi-lang-nodejs=\" allUsers \" pulumi-lang-dotnet=\" AllUsers \" pulumi-lang-go=\" allUsers \" pulumi-lang-python=\" all_users \" pulumi-lang-yaml=\" allUsers \" pulumi-lang-java=\" allUsers \"\u003e all_users \u003c/span\u003eor\u003cspan pulumi-lang-nodejs=\" allUsersForRota \" pulumi-lang-dotnet=\" AllUsersForRota \" pulumi-lang-go=\" allUsersForRota \" pulumi-lang-python=\" all_users_for_rota \" pulumi-lang-yaml=\" allUsersForRota \" pulumi-lang-java=\" allUsersForRota \"\u003e all_users_for_rota \u003c/span\u003eand specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User. Possible values are: \u003cspan pulumi-lang-nodejs=\"`schedule`\" pulumi-lang-dotnet=\"`Schedule`\" pulumi-lang-go=\"`schedule`\" pulumi-lang-python=\"`schedule`\" pulumi-lang-yaml=\"`schedule`\" pulumi-lang-java=\"`schedule`\"\u003e`schedule`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`user`\" pulumi-lang-dotnet=\"`User`\" pulumi-lang-go=\"`user`\" pulumi-lang-python=\"`user`\" pulumi-lang-yaml=\"`user`\" pulumi-lang-java=\"`user`\"\u003e`user`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`slackChannel`\" pulumi-lang-dotnet=\"`SlackChannel`\" pulumi-lang-go=\"`slackChannel`\" pulumi-lang-python=\"`slack_channel`\" pulumi-lang-yaml=\"`slackChannel`\" pulumi-lang-java=\"`slackChannel`\"\u003e`slack_channel`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`msteamsChannel`\" pulumi-lang-dotnet=\"`MsteamsChannel`\" pulumi-lang-go=\"`msteamsChannel`\" pulumi-lang-python=\"`msteams_channel`\" pulumi-lang-yaml=\"`msteamsChannel`\" pulumi-lang-java=\"`msteamsChannel`\"\u003e`msteams_channel`\u003c/span\u003e.\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target. Possible values are: \u003cspan pulumi-lang-nodejs=\"`high`\" pulumi-lang-dotnet=\"`High`\" pulumi-lang-go=\"`high`\" pulumi-lang-python=\"`high`\" pulumi-lang-yaml=\"`high`\" pulumi-lang-java=\"`high`\"\u003e`high`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`low`\" pulumi-lang-dotnet=\"`Low`\" pulumi-lang-go=\"`low`\" pulumi-lang-python=\"`low`\" pulumi-lang-yaml=\"`low`\" pulumi-lang-java=\"`low`\"\u003e`low`\u003c/span\u003e.\n"}},"type":"object","required":["id","type","urgency"],"language":{"nodejs":{"requiredOutputs":["id","scheduleMode","type","urgency"]}}},"incident:index/EscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathRepeat:EscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathRepeat":{"properties":{"repeatTimes":{"type":"number","description":"How many times to repeat these nodes\n"},"toNode":{"type":"string","description":"Which node ID we begin repeating from.\n"}},"type":"object","required":["repeatTimes","toNode"]},"incident:index/EscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPath:EscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPath":{"properties":{"id":{"type":"string","description":"An ID for this node, unique within the escalation path.\n\nThis allows you to reference the node in other nodes, such as when configuring a 'repeat' node.\n"},"ifElse":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElse:EscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElse"},"level":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathLevel:EscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathLevel"},"notifyChannel":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathNotifyChannel:EscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathNotifyChannel"},"repeat":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathRepeat:EscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathRepeat"},"type":{"type":"string","description":"The type of this node. Available types are:\n* level: A set of targets (users or schedules) that should be paged, either all at once, or with a round-robin configuration.\n* notify_channel: Send the escalation to a Slack channel, where it can be acked by anyone in the channel.\n* if_else: Branch the escalation based on a set of conditions.\n* repeat: Go back to a previous node and repeat the logic from there.\n"}},"type":"object","required":["type"],"language":{"nodejs":{"requiredOutputs":["id","type"]}}},"incident:index/EscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElse:EscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElse":{"properties":{"conditions":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseCondition:EscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseCondition"},"description":"The prerequisite conditions that must all be satisfied\n"},"elsePaths":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseElsePath:EscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseElsePath"},"description":"The nodes that form the levels if our condition is not met\n"},"thenPaths":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseThenPath:EscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseThenPath"},"description":"Then path nodes\n"}},"type":"object","required":["conditions","thenPaths"]},"incident:index/EscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseCondition:EscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseCondition":{"properties":{"operation":{"type":"string","description":"The logical operation to be applied\n"},"paramBindings":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseConditionParamBinding:EscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseConditionParamBinding"},"description":"Bindings for the operation parameters\n"},"subject":{"type":"string","description":"The subject of the condition, on which the operation is applied\n"}},"type":"object","required":["operation","paramBindings","subject"]},"incident:index/EscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseConditionParamBinding:EscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseConditionParamBinding":{"properties":{"arrayValues":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseConditionParamBindingArrayValue:EscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseConditionParamBindingArrayValue"},"description":"The array of literal or reference parameter values\n"},"value":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseConditionParamBindingValue:EscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseConditionParamBindingValue","description":"The literal or reference parameter value\n"}},"type":"object"},"incident:index/EscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseConditionParamBindingArrayValue:EscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseConditionParamBindingArrayValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object"},"incident:index/EscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseConditionParamBindingValue:EscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseConditionParamBindingValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object"},"incident:index/EscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseElsePath:EscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseElsePath":{"properties":{"id":{"type":"string","description":"An ID for this node, unique within the escalation path.\n\nThis allows you to reference the node in other nodes, such as when configuring a 'repeat' node.\n"},"level":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseElsePathLevel:EscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseElsePathLevel"},"notifyChannel":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseElsePathNotifyChannel:EscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseElsePathNotifyChannel"},"repeat":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseElsePathRepeat:EscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseElsePathRepeat"},"type":{"type":"string","description":"The type of this node. Available types are:\n* level: A set of targets (users or schedules) that should be paged, either all at once, or with a round-robin configuration.\n* notify_channel: Send the escalation to a Slack channel, where it can be acked by anyone in the channel.\n* if_else: Branch the escalation based on a set of conditions.\n* repeat: Go back to a previous node and repeat the logic from there.\n"}},"type":"object","required":["type"],"language":{"nodejs":{"requiredOutputs":["id","type"]}}},"incident:index/EscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseElsePathLevel:EscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseElsePathLevel":{"properties":{"ackMode":{"type":"string","description":"Controls the behaviour of acknowledgements for this level, with 'first' cancelling all other escalations on the same level when someone acks\n"},"roundRobinConfig":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseElsePathLevelRoundRobinConfig:EscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseElsePathLevelRoundRobinConfig"},"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseElsePathLevelTarget:EscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseElsePathLevelTarget"},"description":"The targets (users or schedules) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before proceeding to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["targets"],"language":{"nodejs":{"requiredOutputs":["ackMode","targets"]}}},"incident:index/EscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseElsePathLevelRoundRobinConfig:EscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseElsePathLevelRoundRobinConfig":{"properties":{"enabled":{"type":"boolean","description":"Whether round robin is enabled for this level\n"},"rotateAfterSeconds":{"type":"number","description":"How long should we wait before rotating to the next target in a round robin, if not set will stick with a single target per level.\n"}},"type":"object","required":["enabled"]},"incident:index/EscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseElsePathLevelTarget:EscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseElsePathLevelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently_on_call,\u003cspan pulumi-lang-nodejs=\" allUsers \" pulumi-lang-dotnet=\" AllUsers \" pulumi-lang-go=\" allUsers \" pulumi-lang-python=\" all_users \" pulumi-lang-yaml=\" allUsers \" pulumi-lang-java=\" allUsers \"\u003e all_users \u003c/span\u003eor\u003cspan pulumi-lang-nodejs=\" allUsersForRota \" pulumi-lang-dotnet=\" AllUsersForRota \" pulumi-lang-go=\" allUsersForRota \" pulumi-lang-python=\" all_users_for_rota \" pulumi-lang-yaml=\" allUsersForRota \" pulumi-lang-java=\" allUsersForRota \"\u003e all_users_for_rota \u003c/span\u003eand specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User. Possible values are: \u003cspan pulumi-lang-nodejs=\"`schedule`\" pulumi-lang-dotnet=\"`Schedule`\" pulumi-lang-go=\"`schedule`\" pulumi-lang-python=\"`schedule`\" pulumi-lang-yaml=\"`schedule`\" pulumi-lang-java=\"`schedule`\"\u003e`schedule`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`user`\" pulumi-lang-dotnet=\"`User`\" pulumi-lang-go=\"`user`\" pulumi-lang-python=\"`user`\" pulumi-lang-yaml=\"`user`\" pulumi-lang-java=\"`user`\"\u003e`user`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`slackChannel`\" pulumi-lang-dotnet=\"`SlackChannel`\" pulumi-lang-go=\"`slackChannel`\" pulumi-lang-python=\"`slack_channel`\" pulumi-lang-yaml=\"`slackChannel`\" pulumi-lang-java=\"`slackChannel`\"\u003e`slack_channel`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`msteamsChannel`\" pulumi-lang-dotnet=\"`MsteamsChannel`\" pulumi-lang-go=\"`msteamsChannel`\" pulumi-lang-python=\"`msteams_channel`\" pulumi-lang-yaml=\"`msteamsChannel`\" pulumi-lang-java=\"`msteamsChannel`\"\u003e`msteams_channel`\u003c/span\u003e.\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target. Possible values are: \u003cspan pulumi-lang-nodejs=\"`high`\" pulumi-lang-dotnet=\"`High`\" pulumi-lang-go=\"`high`\" pulumi-lang-python=\"`high`\" pulumi-lang-yaml=\"`high`\" pulumi-lang-java=\"`high`\"\u003e`high`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`low`\" pulumi-lang-dotnet=\"`Low`\" pulumi-lang-go=\"`low`\" pulumi-lang-python=\"`low`\" pulumi-lang-yaml=\"`low`\" pulumi-lang-java=\"`low`\"\u003e`low`\u003c/span\u003e.\n"}},"type":"object","required":["id","type","urgency"],"language":{"nodejs":{"requiredOutputs":["id","scheduleMode","type","urgency"]}}},"incident:index/EscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseElsePathNotifyChannel:EscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseElsePathNotifyChannel":{"properties":{"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseElsePathNotifyChannelTarget:EscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseElsePathNotifyChannelTarget"},"description":"The targets (Slack channels) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before moving on to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["targets"]},"incident:index/EscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseElsePathNotifyChannelTarget:EscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseElsePathNotifyChannelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently_on_call,\u003cspan pulumi-lang-nodejs=\" allUsers \" pulumi-lang-dotnet=\" AllUsers \" pulumi-lang-go=\" allUsers \" pulumi-lang-python=\" all_users \" pulumi-lang-yaml=\" allUsers \" pulumi-lang-java=\" allUsers \"\u003e all_users \u003c/span\u003eor\u003cspan pulumi-lang-nodejs=\" allUsersForRota \" pulumi-lang-dotnet=\" AllUsersForRota \" pulumi-lang-go=\" allUsersForRota \" pulumi-lang-python=\" all_users_for_rota \" pulumi-lang-yaml=\" allUsersForRota \" pulumi-lang-java=\" allUsersForRota \"\u003e all_users_for_rota \u003c/span\u003eand specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User. Possible values are: \u003cspan pulumi-lang-nodejs=\"`schedule`\" pulumi-lang-dotnet=\"`Schedule`\" pulumi-lang-go=\"`schedule`\" pulumi-lang-python=\"`schedule`\" pulumi-lang-yaml=\"`schedule`\" pulumi-lang-java=\"`schedule`\"\u003e`schedule`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`user`\" pulumi-lang-dotnet=\"`User`\" pulumi-lang-go=\"`user`\" pulumi-lang-python=\"`user`\" pulumi-lang-yaml=\"`user`\" pulumi-lang-java=\"`user`\"\u003e`user`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`slackChannel`\" pulumi-lang-dotnet=\"`SlackChannel`\" pulumi-lang-go=\"`slackChannel`\" pulumi-lang-python=\"`slack_channel`\" pulumi-lang-yaml=\"`slackChannel`\" pulumi-lang-java=\"`slackChannel`\"\u003e`slack_channel`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`msteamsChannel`\" pulumi-lang-dotnet=\"`MsteamsChannel`\" pulumi-lang-go=\"`msteamsChannel`\" pulumi-lang-python=\"`msteams_channel`\" pulumi-lang-yaml=\"`msteamsChannel`\" pulumi-lang-java=\"`msteamsChannel`\"\u003e`msteams_channel`\u003c/span\u003e.\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target. Possible values are: \u003cspan pulumi-lang-nodejs=\"`high`\" pulumi-lang-dotnet=\"`High`\" pulumi-lang-go=\"`high`\" pulumi-lang-python=\"`high`\" pulumi-lang-yaml=\"`high`\" pulumi-lang-java=\"`high`\"\u003e`high`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`low`\" pulumi-lang-dotnet=\"`Low`\" pulumi-lang-go=\"`low`\" pulumi-lang-python=\"`low`\" pulumi-lang-yaml=\"`low`\" pulumi-lang-java=\"`low`\"\u003e`low`\u003c/span\u003e.\n"}},"type":"object","required":["id","type","urgency"],"language":{"nodejs":{"requiredOutputs":["id","scheduleMode","type","urgency"]}}},"incident:index/EscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseElsePathRepeat:EscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseElsePathRepeat":{"properties":{"repeatTimes":{"type":"number","description":"How many times to repeat these nodes\n"},"toNode":{"type":"string","description":"Which node ID we begin repeating from.\n"}},"type":"object","required":["repeatTimes","toNode"]},"incident:index/EscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseThenPath:EscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseThenPath":{"properties":{"id":{"type":"string","description":"An ID for this node, unique within the escalation path.\n\nThis allows you to reference the node in other nodes, such as when configuring a 'repeat' node.\n"},"level":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseThenPathLevel:EscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseThenPathLevel"},"notifyChannel":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseThenPathNotifyChannel:EscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseThenPathNotifyChannel"},"repeat":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseThenPathRepeat:EscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseThenPathRepeat"},"type":{"type":"string","description":"The type of this node. Available types are:\n* level: A set of targets (users or schedules) that should be paged, either all at once, or with a round-robin configuration.\n* notify_channel: Send the escalation to a Slack channel, where it can be acked by anyone in the channel.\n* if_else: Branch the escalation based on a set of conditions.\n* repeat: Go back to a previous node and repeat the logic from there.\n"}},"type":"object","required":["type"],"language":{"nodejs":{"requiredOutputs":["id","type"]}}},"incident:index/EscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseThenPathLevel:EscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseThenPathLevel":{"properties":{"ackMode":{"type":"string","description":"Controls the behaviour of acknowledgements for this level, with 'first' cancelling all other escalations on the same level when someone acks\n"},"roundRobinConfig":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseThenPathLevelRoundRobinConfig:EscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseThenPathLevelRoundRobinConfig"},"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseThenPathLevelTarget:EscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseThenPathLevelTarget"},"description":"The targets (users or schedules) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before proceeding to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["targets"],"language":{"nodejs":{"requiredOutputs":["ackMode","targets"]}}},"incident:index/EscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseThenPathLevelRoundRobinConfig:EscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseThenPathLevelRoundRobinConfig":{"properties":{"enabled":{"type":"boolean","description":"Whether round robin is enabled for this level\n"},"rotateAfterSeconds":{"type":"number","description":"How long should we wait before rotating to the next target in a round robin, if not set will stick with a single target per level.\n"}},"type":"object","required":["enabled"]},"incident:index/EscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseThenPathLevelTarget:EscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseThenPathLevelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently_on_call,\u003cspan pulumi-lang-nodejs=\" allUsers \" pulumi-lang-dotnet=\" AllUsers \" pulumi-lang-go=\" allUsers \" pulumi-lang-python=\" all_users \" pulumi-lang-yaml=\" allUsers \" pulumi-lang-java=\" allUsers \"\u003e all_users \u003c/span\u003eor\u003cspan pulumi-lang-nodejs=\" allUsersForRota \" pulumi-lang-dotnet=\" AllUsersForRota \" pulumi-lang-go=\" allUsersForRota \" pulumi-lang-python=\" all_users_for_rota \" pulumi-lang-yaml=\" allUsersForRota \" pulumi-lang-java=\" allUsersForRota \"\u003e all_users_for_rota \u003c/span\u003eand specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User. Possible values are: \u003cspan pulumi-lang-nodejs=\"`schedule`\" pulumi-lang-dotnet=\"`Schedule`\" pulumi-lang-go=\"`schedule`\" pulumi-lang-python=\"`schedule`\" pulumi-lang-yaml=\"`schedule`\" pulumi-lang-java=\"`schedule`\"\u003e`schedule`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`user`\" pulumi-lang-dotnet=\"`User`\" pulumi-lang-go=\"`user`\" pulumi-lang-python=\"`user`\" pulumi-lang-yaml=\"`user`\" pulumi-lang-java=\"`user`\"\u003e`user`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`slackChannel`\" pulumi-lang-dotnet=\"`SlackChannel`\" pulumi-lang-go=\"`slackChannel`\" pulumi-lang-python=\"`slack_channel`\" pulumi-lang-yaml=\"`slackChannel`\" pulumi-lang-java=\"`slackChannel`\"\u003e`slack_channel`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`msteamsChannel`\" pulumi-lang-dotnet=\"`MsteamsChannel`\" pulumi-lang-go=\"`msteamsChannel`\" pulumi-lang-python=\"`msteams_channel`\" pulumi-lang-yaml=\"`msteamsChannel`\" pulumi-lang-java=\"`msteamsChannel`\"\u003e`msteams_channel`\u003c/span\u003e.\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target. Possible values are: \u003cspan pulumi-lang-nodejs=\"`high`\" pulumi-lang-dotnet=\"`High`\" pulumi-lang-go=\"`high`\" pulumi-lang-python=\"`high`\" pulumi-lang-yaml=\"`high`\" pulumi-lang-java=\"`high`\"\u003e`high`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`low`\" pulumi-lang-dotnet=\"`Low`\" pulumi-lang-go=\"`low`\" pulumi-lang-python=\"`low`\" pulumi-lang-yaml=\"`low`\" pulumi-lang-java=\"`low`\"\u003e`low`\u003c/span\u003e.\n"}},"type":"object","required":["id","type","urgency"],"language":{"nodejs":{"requiredOutputs":["id","scheduleMode","type","urgency"]}}},"incident:index/EscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseThenPathNotifyChannel:EscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseThenPathNotifyChannel":{"properties":{"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseThenPathNotifyChannelTarget:EscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseThenPathNotifyChannelTarget"},"description":"The targets (Slack channels) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before moving on to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["targets"]},"incident:index/EscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseThenPathNotifyChannelTarget:EscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseThenPathNotifyChannelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently_on_call,\u003cspan pulumi-lang-nodejs=\" allUsers \" pulumi-lang-dotnet=\" AllUsers \" pulumi-lang-go=\" allUsers \" pulumi-lang-python=\" all_users \" pulumi-lang-yaml=\" allUsers \" pulumi-lang-java=\" allUsers \"\u003e all_users \u003c/span\u003eor\u003cspan pulumi-lang-nodejs=\" allUsersForRota \" pulumi-lang-dotnet=\" AllUsersForRota \" pulumi-lang-go=\" allUsersForRota \" pulumi-lang-python=\" all_users_for_rota \" pulumi-lang-yaml=\" allUsersForRota \" pulumi-lang-java=\" allUsersForRota \"\u003e all_users_for_rota \u003c/span\u003eand specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User. Possible values are: \u003cspan pulumi-lang-nodejs=\"`schedule`\" pulumi-lang-dotnet=\"`Schedule`\" pulumi-lang-go=\"`schedule`\" pulumi-lang-python=\"`schedule`\" pulumi-lang-yaml=\"`schedule`\" pulumi-lang-java=\"`schedule`\"\u003e`schedule`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`user`\" pulumi-lang-dotnet=\"`User`\" pulumi-lang-go=\"`user`\" pulumi-lang-python=\"`user`\" pulumi-lang-yaml=\"`user`\" pulumi-lang-java=\"`user`\"\u003e`user`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`slackChannel`\" pulumi-lang-dotnet=\"`SlackChannel`\" pulumi-lang-go=\"`slackChannel`\" pulumi-lang-python=\"`slack_channel`\" pulumi-lang-yaml=\"`slackChannel`\" pulumi-lang-java=\"`slackChannel`\"\u003e`slack_channel`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`msteamsChannel`\" pulumi-lang-dotnet=\"`MsteamsChannel`\" pulumi-lang-go=\"`msteamsChannel`\" pulumi-lang-python=\"`msteams_channel`\" pulumi-lang-yaml=\"`msteamsChannel`\" pulumi-lang-java=\"`msteamsChannel`\"\u003e`msteams_channel`\u003c/span\u003e.\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target. Possible values are: \u003cspan pulumi-lang-nodejs=\"`high`\" pulumi-lang-dotnet=\"`High`\" pulumi-lang-go=\"`high`\" pulumi-lang-python=\"`high`\" pulumi-lang-yaml=\"`high`\" pulumi-lang-java=\"`high`\"\u003e`high`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`low`\" pulumi-lang-dotnet=\"`Low`\" pulumi-lang-go=\"`low`\" pulumi-lang-python=\"`low`\" pulumi-lang-yaml=\"`low`\" pulumi-lang-java=\"`low`\"\u003e`low`\u003c/span\u003e.\n"}},"type":"object","required":["id","type","urgency"],"language":{"nodejs":{"requiredOutputs":["id","scheduleMode","type","urgency"]}}},"incident:index/EscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseThenPathRepeat:EscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseThenPathRepeat":{"properties":{"repeatTimes":{"type":"number","description":"How many times to repeat these nodes\n"},"toNode":{"type":"string","description":"Which node ID we begin repeating from.\n"}},"type":"object","required":["repeatTimes","toNode"]},"incident:index/EscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathLevel:EscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathLevel":{"properties":{"ackMode":{"type":"string","description":"Controls the behaviour of acknowledgements for this level, with 'first' cancelling all other escalations on the same level when someone acks\n"},"roundRobinConfig":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathLevelRoundRobinConfig:EscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathLevelRoundRobinConfig"},"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathLevelTarget:EscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathLevelTarget"},"description":"The targets (users or schedules) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before proceeding to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["targets"],"language":{"nodejs":{"requiredOutputs":["ackMode","targets"]}}},"incident:index/EscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathLevelRoundRobinConfig:EscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathLevelRoundRobinConfig":{"properties":{"enabled":{"type":"boolean","description":"Whether round robin is enabled for this level\n"},"rotateAfterSeconds":{"type":"number","description":"How long should we wait before rotating to the next target in a round robin, if not set will stick with a single target per level.\n"}},"type":"object","required":["enabled"]},"incident:index/EscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathLevelTarget:EscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathLevelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently_on_call,\u003cspan pulumi-lang-nodejs=\" allUsers \" pulumi-lang-dotnet=\" AllUsers \" pulumi-lang-go=\" allUsers \" pulumi-lang-python=\" all_users \" pulumi-lang-yaml=\" allUsers \" pulumi-lang-java=\" allUsers \"\u003e all_users \u003c/span\u003eor\u003cspan pulumi-lang-nodejs=\" allUsersForRota \" pulumi-lang-dotnet=\" AllUsersForRota \" pulumi-lang-go=\" allUsersForRota \" pulumi-lang-python=\" all_users_for_rota \" pulumi-lang-yaml=\" allUsersForRota \" pulumi-lang-java=\" allUsersForRota \"\u003e all_users_for_rota \u003c/span\u003eand specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User. Possible values are: \u003cspan pulumi-lang-nodejs=\"`schedule`\" pulumi-lang-dotnet=\"`Schedule`\" pulumi-lang-go=\"`schedule`\" pulumi-lang-python=\"`schedule`\" pulumi-lang-yaml=\"`schedule`\" pulumi-lang-java=\"`schedule`\"\u003e`schedule`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`user`\" pulumi-lang-dotnet=\"`User`\" pulumi-lang-go=\"`user`\" pulumi-lang-python=\"`user`\" pulumi-lang-yaml=\"`user`\" pulumi-lang-java=\"`user`\"\u003e`user`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`slackChannel`\" pulumi-lang-dotnet=\"`SlackChannel`\" pulumi-lang-go=\"`slackChannel`\" pulumi-lang-python=\"`slack_channel`\" pulumi-lang-yaml=\"`slackChannel`\" pulumi-lang-java=\"`slackChannel`\"\u003e`slack_channel`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`msteamsChannel`\" pulumi-lang-dotnet=\"`MsteamsChannel`\" pulumi-lang-go=\"`msteamsChannel`\" pulumi-lang-python=\"`msteams_channel`\" pulumi-lang-yaml=\"`msteamsChannel`\" pulumi-lang-java=\"`msteamsChannel`\"\u003e`msteams_channel`\u003c/span\u003e.\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target. Possible values are: \u003cspan pulumi-lang-nodejs=\"`high`\" pulumi-lang-dotnet=\"`High`\" pulumi-lang-go=\"`high`\" pulumi-lang-python=\"`high`\" pulumi-lang-yaml=\"`high`\" pulumi-lang-java=\"`high`\"\u003e`high`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`low`\" pulumi-lang-dotnet=\"`Low`\" pulumi-lang-go=\"`low`\" pulumi-lang-python=\"`low`\" pulumi-lang-yaml=\"`low`\" pulumi-lang-java=\"`low`\"\u003e`low`\u003c/span\u003e.\n"}},"type":"object","required":["id","type","urgency"],"language":{"nodejs":{"requiredOutputs":["id","scheduleMode","type","urgency"]}}},"incident:index/EscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathNotifyChannel:EscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathNotifyChannel":{"properties":{"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathNotifyChannelTarget:EscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathNotifyChannelTarget"},"description":"The targets (Slack channels) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before moving on to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["targets"]},"incident:index/EscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathNotifyChannelTarget:EscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathNotifyChannelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently_on_call,\u003cspan pulumi-lang-nodejs=\" allUsers \" pulumi-lang-dotnet=\" AllUsers \" pulumi-lang-go=\" allUsers \" pulumi-lang-python=\" all_users \" pulumi-lang-yaml=\" allUsers \" pulumi-lang-java=\" allUsers \"\u003e all_users \u003c/span\u003eor\u003cspan pulumi-lang-nodejs=\" allUsersForRota \" pulumi-lang-dotnet=\" AllUsersForRota \" pulumi-lang-go=\" allUsersForRota \" pulumi-lang-python=\" all_users_for_rota \" pulumi-lang-yaml=\" allUsersForRota \" pulumi-lang-java=\" allUsersForRota \"\u003e all_users_for_rota \u003c/span\u003eand specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User. Possible values are: \u003cspan pulumi-lang-nodejs=\"`schedule`\" pulumi-lang-dotnet=\"`Schedule`\" pulumi-lang-go=\"`schedule`\" pulumi-lang-python=\"`schedule`\" pulumi-lang-yaml=\"`schedule`\" pulumi-lang-java=\"`schedule`\"\u003e`schedule`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`user`\" pulumi-lang-dotnet=\"`User`\" pulumi-lang-go=\"`user`\" pulumi-lang-python=\"`user`\" pulumi-lang-yaml=\"`user`\" pulumi-lang-java=\"`user`\"\u003e`user`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`slackChannel`\" pulumi-lang-dotnet=\"`SlackChannel`\" pulumi-lang-go=\"`slackChannel`\" pulumi-lang-python=\"`slack_channel`\" pulumi-lang-yaml=\"`slackChannel`\" pulumi-lang-java=\"`slackChannel`\"\u003e`slack_channel`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`msteamsChannel`\" pulumi-lang-dotnet=\"`MsteamsChannel`\" pulumi-lang-go=\"`msteamsChannel`\" pulumi-lang-python=\"`msteams_channel`\" pulumi-lang-yaml=\"`msteamsChannel`\" pulumi-lang-java=\"`msteamsChannel`\"\u003e`msteams_channel`\u003c/span\u003e.\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target. Possible values are: \u003cspan pulumi-lang-nodejs=\"`high`\" pulumi-lang-dotnet=\"`High`\" pulumi-lang-go=\"`high`\" pulumi-lang-python=\"`high`\" pulumi-lang-yaml=\"`high`\" pulumi-lang-java=\"`high`\"\u003e`high`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`low`\" pulumi-lang-dotnet=\"`Low`\" pulumi-lang-go=\"`low`\" pulumi-lang-python=\"`low`\" pulumi-lang-yaml=\"`low`\" pulumi-lang-java=\"`low`\"\u003e`low`\u003c/span\u003e.\n"}},"type":"object","required":["id","type","urgency"],"language":{"nodejs":{"requiredOutputs":["id","scheduleMode","type","urgency"]}}},"incident:index/EscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathRepeat:EscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathRepeat":{"properties":{"repeatTimes":{"type":"number","description":"How many times to repeat these nodes\n"},"toNode":{"type":"string","description":"Which node ID we begin repeating from.\n"}},"type":"object","required":["repeatTimes","toNode"]},"incident:index/EscalationPathPathIfElseElsePathIfElseThenPathLevel:EscalationPathPathIfElseElsePathIfElseThenPathLevel":{"properties":{"ackMode":{"type":"string","description":"Controls the behaviour of acknowledgements for this level, with 'first' cancelling all other escalations on the same level when someone acks\n"},"roundRobinConfig":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseThenPathLevelRoundRobinConfig:EscalationPathPathIfElseElsePathIfElseThenPathLevelRoundRobinConfig"},"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseThenPathLevelTarget:EscalationPathPathIfElseElsePathIfElseThenPathLevelTarget"},"description":"The targets (users or schedules) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before proceeding to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["targets"],"language":{"nodejs":{"requiredOutputs":["ackMode","targets"]}}},"incident:index/EscalationPathPathIfElseElsePathIfElseThenPathLevelRoundRobinConfig:EscalationPathPathIfElseElsePathIfElseThenPathLevelRoundRobinConfig":{"properties":{"enabled":{"type":"boolean","description":"Whether round robin is enabled for this level\n"},"rotateAfterSeconds":{"type":"number","description":"How long should we wait before rotating to the next target in a round robin, if not set will stick with a single target per level.\n"}},"type":"object","required":["enabled"]},"incident:index/EscalationPathPathIfElseElsePathIfElseThenPathLevelTarget:EscalationPathPathIfElseElsePathIfElseThenPathLevelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently_on_call,\u003cspan pulumi-lang-nodejs=\" allUsers \" pulumi-lang-dotnet=\" AllUsers \" pulumi-lang-go=\" allUsers \" pulumi-lang-python=\" all_users \" pulumi-lang-yaml=\" allUsers \" pulumi-lang-java=\" allUsers \"\u003e all_users \u003c/span\u003eor\u003cspan pulumi-lang-nodejs=\" allUsersForRota \" pulumi-lang-dotnet=\" AllUsersForRota \" pulumi-lang-go=\" allUsersForRota \" pulumi-lang-python=\" all_users_for_rota \" pulumi-lang-yaml=\" allUsersForRota \" pulumi-lang-java=\" allUsersForRota \"\u003e all_users_for_rota \u003c/span\u003eand specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User. Possible values are: \u003cspan pulumi-lang-nodejs=\"`schedule`\" pulumi-lang-dotnet=\"`Schedule`\" pulumi-lang-go=\"`schedule`\" pulumi-lang-python=\"`schedule`\" pulumi-lang-yaml=\"`schedule`\" pulumi-lang-java=\"`schedule`\"\u003e`schedule`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`user`\" pulumi-lang-dotnet=\"`User`\" pulumi-lang-go=\"`user`\" pulumi-lang-python=\"`user`\" pulumi-lang-yaml=\"`user`\" pulumi-lang-java=\"`user`\"\u003e`user`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`slackChannel`\" pulumi-lang-dotnet=\"`SlackChannel`\" pulumi-lang-go=\"`slackChannel`\" pulumi-lang-python=\"`slack_channel`\" pulumi-lang-yaml=\"`slackChannel`\" pulumi-lang-java=\"`slackChannel`\"\u003e`slack_channel`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`msteamsChannel`\" pulumi-lang-dotnet=\"`MsteamsChannel`\" pulumi-lang-go=\"`msteamsChannel`\" pulumi-lang-python=\"`msteams_channel`\" pulumi-lang-yaml=\"`msteamsChannel`\" pulumi-lang-java=\"`msteamsChannel`\"\u003e`msteams_channel`\u003c/span\u003e.\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target. Possible values are: \u003cspan pulumi-lang-nodejs=\"`high`\" pulumi-lang-dotnet=\"`High`\" pulumi-lang-go=\"`high`\" pulumi-lang-python=\"`high`\" pulumi-lang-yaml=\"`high`\" pulumi-lang-java=\"`high`\"\u003e`high`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`low`\" pulumi-lang-dotnet=\"`Low`\" pulumi-lang-go=\"`low`\" pulumi-lang-python=\"`low`\" pulumi-lang-yaml=\"`low`\" pulumi-lang-java=\"`low`\"\u003e`low`\u003c/span\u003e.\n"}},"type":"object","required":["id","type","urgency"],"language":{"nodejs":{"requiredOutputs":["id","scheduleMode","type","urgency"]}}},"incident:index/EscalationPathPathIfElseElsePathIfElseThenPathNotifyChannel:EscalationPathPathIfElseElsePathIfElseThenPathNotifyChannel":{"properties":{"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathIfElseThenPathNotifyChannelTarget:EscalationPathPathIfElseElsePathIfElseThenPathNotifyChannelTarget"},"description":"The targets (Slack channels) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before moving on to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["targets"]},"incident:index/EscalationPathPathIfElseElsePathIfElseThenPathNotifyChannelTarget:EscalationPathPathIfElseElsePathIfElseThenPathNotifyChannelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently_on_call,\u003cspan pulumi-lang-nodejs=\" allUsers \" pulumi-lang-dotnet=\" AllUsers \" pulumi-lang-go=\" allUsers \" pulumi-lang-python=\" all_users \" pulumi-lang-yaml=\" allUsers \" pulumi-lang-java=\" allUsers \"\u003e all_users \u003c/span\u003eor\u003cspan pulumi-lang-nodejs=\" allUsersForRota \" pulumi-lang-dotnet=\" AllUsersForRota \" pulumi-lang-go=\" allUsersForRota \" pulumi-lang-python=\" all_users_for_rota \" pulumi-lang-yaml=\" allUsersForRota \" pulumi-lang-java=\" allUsersForRota \"\u003e all_users_for_rota \u003c/span\u003eand specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User. Possible values are: \u003cspan pulumi-lang-nodejs=\"`schedule`\" pulumi-lang-dotnet=\"`Schedule`\" pulumi-lang-go=\"`schedule`\" pulumi-lang-python=\"`schedule`\" pulumi-lang-yaml=\"`schedule`\" pulumi-lang-java=\"`schedule`\"\u003e`schedule`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`user`\" pulumi-lang-dotnet=\"`User`\" pulumi-lang-go=\"`user`\" pulumi-lang-python=\"`user`\" pulumi-lang-yaml=\"`user`\" pulumi-lang-java=\"`user`\"\u003e`user`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`slackChannel`\" pulumi-lang-dotnet=\"`SlackChannel`\" pulumi-lang-go=\"`slackChannel`\" pulumi-lang-python=\"`slack_channel`\" pulumi-lang-yaml=\"`slackChannel`\" pulumi-lang-java=\"`slackChannel`\"\u003e`slack_channel`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`msteamsChannel`\" pulumi-lang-dotnet=\"`MsteamsChannel`\" pulumi-lang-go=\"`msteamsChannel`\" pulumi-lang-python=\"`msteams_channel`\" pulumi-lang-yaml=\"`msteamsChannel`\" pulumi-lang-java=\"`msteamsChannel`\"\u003e`msteams_channel`\u003c/span\u003e.\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target. Possible values are: \u003cspan pulumi-lang-nodejs=\"`high`\" pulumi-lang-dotnet=\"`High`\" pulumi-lang-go=\"`high`\" pulumi-lang-python=\"`high`\" pulumi-lang-yaml=\"`high`\" pulumi-lang-java=\"`high`\"\u003e`high`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`low`\" pulumi-lang-dotnet=\"`Low`\" pulumi-lang-go=\"`low`\" pulumi-lang-python=\"`low`\" pulumi-lang-yaml=\"`low`\" pulumi-lang-java=\"`low`\"\u003e`low`\u003c/span\u003e.\n"}},"type":"object","required":["id","type","urgency"],"language":{"nodejs":{"requiredOutputs":["id","scheduleMode","type","urgency"]}}},"incident:index/EscalationPathPathIfElseElsePathIfElseThenPathRepeat:EscalationPathPathIfElseElsePathIfElseThenPathRepeat":{"properties":{"repeatTimes":{"type":"number","description":"How many times to repeat these nodes\n"},"toNode":{"type":"string","description":"Which node ID we begin repeating from.\n"}},"type":"object","required":["repeatTimes","toNode"]},"incident:index/EscalationPathPathIfElseElsePathLevel:EscalationPathPathIfElseElsePathLevel":{"properties":{"ackMode":{"type":"string","description":"Controls the behaviour of acknowledgements for this level, with 'first' cancelling all other escalations on the same level when someone acks\n"},"roundRobinConfig":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathLevelRoundRobinConfig:EscalationPathPathIfElseElsePathLevelRoundRobinConfig"},"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathLevelTarget:EscalationPathPathIfElseElsePathLevelTarget"},"description":"The targets (users or schedules) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before proceeding to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["targets"],"language":{"nodejs":{"requiredOutputs":["ackMode","targets"]}}},"incident:index/EscalationPathPathIfElseElsePathLevelRoundRobinConfig:EscalationPathPathIfElseElsePathLevelRoundRobinConfig":{"properties":{"enabled":{"type":"boolean","description":"Whether round robin is enabled for this level\n"},"rotateAfterSeconds":{"type":"number","description":"How long should we wait before rotating to the next target in a round robin, if not set will stick with a single target per level.\n"}},"type":"object","required":["enabled"]},"incident:index/EscalationPathPathIfElseElsePathLevelTarget:EscalationPathPathIfElseElsePathLevelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently_on_call,\u003cspan pulumi-lang-nodejs=\" allUsers \" pulumi-lang-dotnet=\" AllUsers \" pulumi-lang-go=\" allUsers \" pulumi-lang-python=\" all_users \" pulumi-lang-yaml=\" allUsers \" pulumi-lang-java=\" allUsers \"\u003e all_users \u003c/span\u003eor\u003cspan pulumi-lang-nodejs=\" allUsersForRota \" pulumi-lang-dotnet=\" AllUsersForRota \" pulumi-lang-go=\" allUsersForRota \" pulumi-lang-python=\" all_users_for_rota \" pulumi-lang-yaml=\" allUsersForRota \" pulumi-lang-java=\" allUsersForRota \"\u003e all_users_for_rota \u003c/span\u003eand specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User. Possible values are: \u003cspan pulumi-lang-nodejs=\"`schedule`\" pulumi-lang-dotnet=\"`Schedule`\" pulumi-lang-go=\"`schedule`\" pulumi-lang-python=\"`schedule`\" pulumi-lang-yaml=\"`schedule`\" pulumi-lang-java=\"`schedule`\"\u003e`schedule`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`user`\" pulumi-lang-dotnet=\"`User`\" pulumi-lang-go=\"`user`\" pulumi-lang-python=\"`user`\" pulumi-lang-yaml=\"`user`\" pulumi-lang-java=\"`user`\"\u003e`user`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`slackChannel`\" pulumi-lang-dotnet=\"`SlackChannel`\" pulumi-lang-go=\"`slackChannel`\" pulumi-lang-python=\"`slack_channel`\" pulumi-lang-yaml=\"`slackChannel`\" pulumi-lang-java=\"`slackChannel`\"\u003e`slack_channel`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`msteamsChannel`\" pulumi-lang-dotnet=\"`MsteamsChannel`\" pulumi-lang-go=\"`msteamsChannel`\" pulumi-lang-python=\"`msteams_channel`\" pulumi-lang-yaml=\"`msteamsChannel`\" pulumi-lang-java=\"`msteamsChannel`\"\u003e`msteams_channel`\u003c/span\u003e.\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target. Possible values are: \u003cspan pulumi-lang-nodejs=\"`high`\" pulumi-lang-dotnet=\"`High`\" pulumi-lang-go=\"`high`\" pulumi-lang-python=\"`high`\" pulumi-lang-yaml=\"`high`\" pulumi-lang-java=\"`high`\"\u003e`high`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`low`\" pulumi-lang-dotnet=\"`Low`\" pulumi-lang-go=\"`low`\" pulumi-lang-python=\"`low`\" pulumi-lang-yaml=\"`low`\" pulumi-lang-java=\"`low`\"\u003e`low`\u003c/span\u003e.\n"}},"type":"object","required":["id","type","urgency"],"language":{"nodejs":{"requiredOutputs":["id","scheduleMode","type","urgency"]}}},"incident:index/EscalationPathPathIfElseElsePathNotifyChannel:EscalationPathPathIfElseElsePathNotifyChannel":{"properties":{"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseElsePathNotifyChannelTarget:EscalationPathPathIfElseElsePathNotifyChannelTarget"},"description":"The targets (Slack channels) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before moving on to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["targets"]},"incident:index/EscalationPathPathIfElseElsePathNotifyChannelTarget:EscalationPathPathIfElseElsePathNotifyChannelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently_on_call,\u003cspan pulumi-lang-nodejs=\" allUsers \" pulumi-lang-dotnet=\" AllUsers \" pulumi-lang-go=\" allUsers \" pulumi-lang-python=\" all_users \" pulumi-lang-yaml=\" allUsers \" pulumi-lang-java=\" allUsers \"\u003e all_users \u003c/span\u003eor\u003cspan pulumi-lang-nodejs=\" allUsersForRota \" pulumi-lang-dotnet=\" AllUsersForRota \" pulumi-lang-go=\" allUsersForRota \" pulumi-lang-python=\" all_users_for_rota \" pulumi-lang-yaml=\" allUsersForRota \" pulumi-lang-java=\" allUsersForRota \"\u003e all_users_for_rota \u003c/span\u003eand specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User. Possible values are: \u003cspan pulumi-lang-nodejs=\"`schedule`\" pulumi-lang-dotnet=\"`Schedule`\" pulumi-lang-go=\"`schedule`\" pulumi-lang-python=\"`schedule`\" pulumi-lang-yaml=\"`schedule`\" pulumi-lang-java=\"`schedule`\"\u003e`schedule`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`user`\" pulumi-lang-dotnet=\"`User`\" pulumi-lang-go=\"`user`\" pulumi-lang-python=\"`user`\" pulumi-lang-yaml=\"`user`\" pulumi-lang-java=\"`user`\"\u003e`user`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`slackChannel`\" pulumi-lang-dotnet=\"`SlackChannel`\" pulumi-lang-go=\"`slackChannel`\" pulumi-lang-python=\"`slack_channel`\" pulumi-lang-yaml=\"`slackChannel`\" pulumi-lang-java=\"`slackChannel`\"\u003e`slack_channel`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`msteamsChannel`\" pulumi-lang-dotnet=\"`MsteamsChannel`\" pulumi-lang-go=\"`msteamsChannel`\" pulumi-lang-python=\"`msteams_channel`\" pulumi-lang-yaml=\"`msteamsChannel`\" pulumi-lang-java=\"`msteamsChannel`\"\u003e`msteams_channel`\u003c/span\u003e.\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target. Possible values are: \u003cspan pulumi-lang-nodejs=\"`high`\" pulumi-lang-dotnet=\"`High`\" pulumi-lang-go=\"`high`\" pulumi-lang-python=\"`high`\" pulumi-lang-yaml=\"`high`\" pulumi-lang-java=\"`high`\"\u003e`high`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`low`\" pulumi-lang-dotnet=\"`Low`\" pulumi-lang-go=\"`low`\" pulumi-lang-python=\"`low`\" pulumi-lang-yaml=\"`low`\" pulumi-lang-java=\"`low`\"\u003e`low`\u003c/span\u003e.\n"}},"type":"object","required":["id","type","urgency"],"language":{"nodejs":{"requiredOutputs":["id","scheduleMode","type","urgency"]}}},"incident:index/EscalationPathPathIfElseElsePathRepeat:EscalationPathPathIfElseElsePathRepeat":{"properties":{"repeatTimes":{"type":"number","description":"How many times to repeat these nodes\n"},"toNode":{"type":"string","description":"Which node ID we begin repeating from.\n"}},"type":"object","required":["repeatTimes","toNode"]},"incident:index/EscalationPathPathIfElseThenPath:EscalationPathPathIfElseThenPath":{"properties":{"id":{"type":"string","description":"An ID for this node, unique within the escalation path.\n\nThis allows you to reference the node in other nodes, such as when configuring a 'repeat' node.\n"},"ifElse":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElse:EscalationPathPathIfElseThenPathIfElse"},"level":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathLevel:EscalationPathPathIfElseThenPathLevel"},"notifyChannel":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathNotifyChannel:EscalationPathPathIfElseThenPathNotifyChannel"},"repeat":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathRepeat:EscalationPathPathIfElseThenPathRepeat"},"type":{"type":"string","description":"The type of this node. Available types are:\n* level: A set of targets (users or schedules) that should be paged, either all at once, or with a round-robin configuration.\n* notify_channel: Send the escalation to a Slack channel, where it can be acked by anyone in the channel.\n* if_else: Branch the escalation based on a set of conditions.\n* repeat: Go back to a previous node and repeat the logic from there.\n"}},"type":"object","required":["type"],"language":{"nodejs":{"requiredOutputs":["id","type"]}}},"incident:index/EscalationPathPathIfElseThenPathIfElse:EscalationPathPathIfElseThenPathIfElse":{"properties":{"conditions":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseCondition:EscalationPathPathIfElseThenPathIfElseCondition"},"description":"The prerequisite conditions that must all be satisfied\n"},"elsePaths":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseElsePath:EscalationPathPathIfElseThenPathIfElseElsePath"},"description":"The nodes that form the levels if our condition is not met\n"},"thenPaths":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseThenPath:EscalationPathPathIfElseThenPathIfElseThenPath"},"description":"Then path nodes\n"}},"type":"object","required":["conditions","thenPaths"]},"incident:index/EscalationPathPathIfElseThenPathIfElseCondition:EscalationPathPathIfElseThenPathIfElseCondition":{"properties":{"operation":{"type":"string","description":"The logical operation to be applied\n"},"paramBindings":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseConditionParamBinding:EscalationPathPathIfElseThenPathIfElseConditionParamBinding"},"description":"Bindings for the operation parameters\n"},"subject":{"type":"string","description":"The subject of the condition, on which the operation is applied\n"}},"type":"object","required":["operation","paramBindings","subject"]},"incident:index/EscalationPathPathIfElseThenPathIfElseConditionParamBinding:EscalationPathPathIfElseThenPathIfElseConditionParamBinding":{"properties":{"arrayValues":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseConditionParamBindingArrayValue:EscalationPathPathIfElseThenPathIfElseConditionParamBindingArrayValue"},"description":"The array of literal or reference parameter values\n"},"value":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseConditionParamBindingValue:EscalationPathPathIfElseThenPathIfElseConditionParamBindingValue","description":"The literal or reference parameter value\n"}},"type":"object"},"incident:index/EscalationPathPathIfElseThenPathIfElseConditionParamBindingArrayValue:EscalationPathPathIfElseThenPathIfElseConditionParamBindingArrayValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object"},"incident:index/EscalationPathPathIfElseThenPathIfElseConditionParamBindingValue:EscalationPathPathIfElseThenPathIfElseConditionParamBindingValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object"},"incident:index/EscalationPathPathIfElseThenPathIfElseElsePath:EscalationPathPathIfElseThenPathIfElseElsePath":{"properties":{"id":{"type":"string","description":"An ID for this node, unique within the escalation path.\n\nThis allows you to reference the node in other nodes, such as when configuring a 'repeat' node.\n"},"ifElse":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseElsePathIfElse:EscalationPathPathIfElseThenPathIfElseElsePathIfElse"},"level":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseElsePathLevel:EscalationPathPathIfElseThenPathIfElseElsePathLevel"},"notifyChannel":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseElsePathNotifyChannel:EscalationPathPathIfElseThenPathIfElseElsePathNotifyChannel"},"repeat":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseElsePathRepeat:EscalationPathPathIfElseThenPathIfElseElsePathRepeat"},"type":{"type":"string","description":"The type of this node. Available types are:\n* level: A set of targets (users or schedules) that should be paged, either all at once, or with a round-robin configuration.\n* notify_channel: Send the escalation to a Slack channel, where it can be acked by anyone in the channel.\n* if_else: Branch the escalation based on a set of conditions.\n* repeat: Go back to a previous node and repeat the logic from there.\n"}},"type":"object","required":["type"],"language":{"nodejs":{"requiredOutputs":["id","type"]}}},"incident:index/EscalationPathPathIfElseThenPathIfElseElsePathIfElse:EscalationPathPathIfElseThenPathIfElseElsePathIfElse":{"properties":{"conditions":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseElsePathIfElseCondition:EscalationPathPathIfElseThenPathIfElseElsePathIfElseCondition"},"description":"The prerequisite conditions that must all be satisfied\n"},"elsePaths":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePath:EscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePath"},"description":"The nodes that form the levels if our condition is not met\n"},"thenPaths":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPath:EscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPath"},"description":"Then path nodes\n"}},"type":"object","required":["conditions","thenPaths"]},"incident:index/EscalationPathPathIfElseThenPathIfElseElsePathIfElseCondition:EscalationPathPathIfElseThenPathIfElseElsePathIfElseCondition":{"properties":{"operation":{"type":"string","description":"The logical operation to be applied\n"},"paramBindings":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseElsePathIfElseConditionParamBinding:EscalationPathPathIfElseThenPathIfElseElsePathIfElseConditionParamBinding"},"description":"Bindings for the operation parameters\n"},"subject":{"type":"string","description":"The subject of the condition, on which the operation is applied\n"}},"type":"object","required":["operation","paramBindings","subject"]},"incident:index/EscalationPathPathIfElseThenPathIfElseElsePathIfElseConditionParamBinding:EscalationPathPathIfElseThenPathIfElseElsePathIfElseConditionParamBinding":{"properties":{"arrayValues":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseElsePathIfElseConditionParamBindingArrayValue:EscalationPathPathIfElseThenPathIfElseElsePathIfElseConditionParamBindingArrayValue"},"description":"The array of literal or reference parameter values\n"},"value":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseElsePathIfElseConditionParamBindingValue:EscalationPathPathIfElseThenPathIfElseElsePathIfElseConditionParamBindingValue","description":"The literal or reference parameter value\n"}},"type":"object"},"incident:index/EscalationPathPathIfElseThenPathIfElseElsePathIfElseConditionParamBindingArrayValue:EscalationPathPathIfElseThenPathIfElseElsePathIfElseConditionParamBindingArrayValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object"},"incident:index/EscalationPathPathIfElseThenPathIfElseElsePathIfElseConditionParamBindingValue:EscalationPathPathIfElseThenPathIfElseElsePathIfElseConditionParamBindingValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object"},"incident:index/EscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePath:EscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePath":{"properties":{"id":{"type":"string","description":"An ID for this node, unique within the escalation path.\n\nThis allows you to reference the node in other nodes, such as when configuring a 'repeat' node.\n"},"ifElse":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElse:EscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElse"},"level":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathLevel:EscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathLevel"},"notifyChannel":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathNotifyChannel:EscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathNotifyChannel"},"repeat":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathRepeat:EscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathRepeat"},"type":{"type":"string","description":"The type of this node. Available types are:\n* level: A set of targets (users or schedules) that should be paged, either all at once, or with a round-robin configuration.\n* notify_channel: Send the escalation to a Slack channel, where it can be acked by anyone in the channel.\n* if_else: Branch the escalation based on a set of conditions.\n* repeat: Go back to a previous node and repeat the logic from there.\n"}},"type":"object","required":["type"],"language":{"nodejs":{"requiredOutputs":["id","type"]}}},"incident:index/EscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElse:EscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElse":{"properties":{"conditions":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseCondition:EscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseCondition"},"description":"The prerequisite conditions that must all be satisfied\n"},"elsePaths":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseElsePath:EscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseElsePath"},"description":"The nodes that form the levels if our condition is not met\n"},"thenPaths":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseThenPath:EscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseThenPath"},"description":"Then path nodes\n"}},"type":"object","required":["conditions","thenPaths"]},"incident:index/EscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseCondition:EscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseCondition":{"properties":{"operation":{"type":"string","description":"The logical operation to be applied\n"},"paramBindings":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseConditionParamBinding:EscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseConditionParamBinding"},"description":"Bindings for the operation parameters\n"},"subject":{"type":"string","description":"The subject of the condition, on which the operation is applied\n"}},"type":"object","required":["operation","paramBindings","subject"]},"incident:index/EscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseConditionParamBinding:EscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseConditionParamBinding":{"properties":{"arrayValues":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseConditionParamBindingArrayValue:EscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseConditionParamBindingArrayValue"},"description":"The array of literal or reference parameter values\n"},"value":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseConditionParamBindingValue:EscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseConditionParamBindingValue","description":"The literal or reference parameter value\n"}},"type":"object"},"incident:index/EscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseConditionParamBindingArrayValue:EscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseConditionParamBindingArrayValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object"},"incident:index/EscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseConditionParamBindingValue:EscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseConditionParamBindingValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object"},"incident:index/EscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseElsePath:EscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseElsePath":{"properties":{"id":{"type":"string","description":"An ID for this node, unique within the escalation path.\n\nThis allows you to reference the node in other nodes, such as when configuring a 'repeat' node.\n"},"level":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseElsePathLevel:EscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseElsePathLevel"},"notifyChannel":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseElsePathNotifyChannel:EscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseElsePathNotifyChannel"},"repeat":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseElsePathRepeat:EscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseElsePathRepeat"},"type":{"type":"string","description":"The type of this node. Available types are:\n* level: A set of targets (users or schedules) that should be paged, either all at once, or with a round-robin configuration.\n* notify_channel: Send the escalation to a Slack channel, where it can be acked by anyone in the channel.\n* if_else: Branch the escalation based on a set of conditions.\n* repeat: Go back to a previous node and repeat the logic from there.\n"}},"type":"object","required":["type"],"language":{"nodejs":{"requiredOutputs":["id","type"]}}},"incident:index/EscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseElsePathLevel:EscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseElsePathLevel":{"properties":{"ackMode":{"type":"string","description":"Controls the behaviour of acknowledgements for this level, with 'first' cancelling all other escalations on the same level when someone acks\n"},"roundRobinConfig":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseElsePathLevelRoundRobinConfig:EscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseElsePathLevelRoundRobinConfig"},"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseElsePathLevelTarget:EscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseElsePathLevelTarget"},"description":"The targets (users or schedules) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before proceeding to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["targets"],"language":{"nodejs":{"requiredOutputs":["ackMode","targets"]}}},"incident:index/EscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseElsePathLevelRoundRobinConfig:EscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseElsePathLevelRoundRobinConfig":{"properties":{"enabled":{"type":"boolean","description":"Whether round robin is enabled for this level\n"},"rotateAfterSeconds":{"type":"number","description":"How long should we wait before rotating to the next target in a round robin, if not set will stick with a single target per level.\n"}},"type":"object","required":["enabled"]},"incident:index/EscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseElsePathLevelTarget:EscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseElsePathLevelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently_on_call,\u003cspan pulumi-lang-nodejs=\" allUsers \" pulumi-lang-dotnet=\" AllUsers \" pulumi-lang-go=\" allUsers \" pulumi-lang-python=\" all_users \" pulumi-lang-yaml=\" allUsers \" pulumi-lang-java=\" allUsers \"\u003e all_users \u003c/span\u003eor\u003cspan pulumi-lang-nodejs=\" allUsersForRota \" pulumi-lang-dotnet=\" AllUsersForRota \" pulumi-lang-go=\" allUsersForRota \" pulumi-lang-python=\" all_users_for_rota \" pulumi-lang-yaml=\" allUsersForRota \" pulumi-lang-java=\" allUsersForRota \"\u003e all_users_for_rota \u003c/span\u003eand specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User. Possible values are: \u003cspan pulumi-lang-nodejs=\"`schedule`\" pulumi-lang-dotnet=\"`Schedule`\" pulumi-lang-go=\"`schedule`\" pulumi-lang-python=\"`schedule`\" pulumi-lang-yaml=\"`schedule`\" pulumi-lang-java=\"`schedule`\"\u003e`schedule`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`user`\" pulumi-lang-dotnet=\"`User`\" pulumi-lang-go=\"`user`\" pulumi-lang-python=\"`user`\" pulumi-lang-yaml=\"`user`\" pulumi-lang-java=\"`user`\"\u003e`user`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`slackChannel`\" pulumi-lang-dotnet=\"`SlackChannel`\" pulumi-lang-go=\"`slackChannel`\" pulumi-lang-python=\"`slack_channel`\" pulumi-lang-yaml=\"`slackChannel`\" pulumi-lang-java=\"`slackChannel`\"\u003e`slack_channel`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`msteamsChannel`\" pulumi-lang-dotnet=\"`MsteamsChannel`\" pulumi-lang-go=\"`msteamsChannel`\" pulumi-lang-python=\"`msteams_channel`\" pulumi-lang-yaml=\"`msteamsChannel`\" pulumi-lang-java=\"`msteamsChannel`\"\u003e`msteams_channel`\u003c/span\u003e.\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target. Possible values are: \u003cspan pulumi-lang-nodejs=\"`high`\" pulumi-lang-dotnet=\"`High`\" pulumi-lang-go=\"`high`\" pulumi-lang-python=\"`high`\" pulumi-lang-yaml=\"`high`\" pulumi-lang-java=\"`high`\"\u003e`high`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`low`\" pulumi-lang-dotnet=\"`Low`\" pulumi-lang-go=\"`low`\" pulumi-lang-python=\"`low`\" pulumi-lang-yaml=\"`low`\" pulumi-lang-java=\"`low`\"\u003e`low`\u003c/span\u003e.\n"}},"type":"object","required":["id","type","urgency"],"language":{"nodejs":{"requiredOutputs":["id","scheduleMode","type","urgency"]}}},"incident:index/EscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseElsePathNotifyChannel:EscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseElsePathNotifyChannel":{"properties":{"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseElsePathNotifyChannelTarget:EscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseElsePathNotifyChannelTarget"},"description":"The targets (Slack channels) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before moving on to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["targets"]},"incident:index/EscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseElsePathNotifyChannelTarget:EscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseElsePathNotifyChannelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently_on_call,\u003cspan pulumi-lang-nodejs=\" allUsers \" pulumi-lang-dotnet=\" AllUsers \" pulumi-lang-go=\" allUsers \" pulumi-lang-python=\" all_users \" pulumi-lang-yaml=\" allUsers \" pulumi-lang-java=\" allUsers \"\u003e all_users \u003c/span\u003eor\u003cspan pulumi-lang-nodejs=\" allUsersForRota \" pulumi-lang-dotnet=\" AllUsersForRota \" pulumi-lang-go=\" allUsersForRota \" pulumi-lang-python=\" all_users_for_rota \" pulumi-lang-yaml=\" allUsersForRota \" pulumi-lang-java=\" allUsersForRota \"\u003e all_users_for_rota \u003c/span\u003eand specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User. Possible values are: \u003cspan pulumi-lang-nodejs=\"`schedule`\" pulumi-lang-dotnet=\"`Schedule`\" pulumi-lang-go=\"`schedule`\" pulumi-lang-python=\"`schedule`\" pulumi-lang-yaml=\"`schedule`\" pulumi-lang-java=\"`schedule`\"\u003e`schedule`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`user`\" pulumi-lang-dotnet=\"`User`\" pulumi-lang-go=\"`user`\" pulumi-lang-python=\"`user`\" pulumi-lang-yaml=\"`user`\" pulumi-lang-java=\"`user`\"\u003e`user`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`slackChannel`\" pulumi-lang-dotnet=\"`SlackChannel`\" pulumi-lang-go=\"`slackChannel`\" pulumi-lang-python=\"`slack_channel`\" pulumi-lang-yaml=\"`slackChannel`\" pulumi-lang-java=\"`slackChannel`\"\u003e`slack_channel`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`msteamsChannel`\" pulumi-lang-dotnet=\"`MsteamsChannel`\" pulumi-lang-go=\"`msteamsChannel`\" pulumi-lang-python=\"`msteams_channel`\" pulumi-lang-yaml=\"`msteamsChannel`\" pulumi-lang-java=\"`msteamsChannel`\"\u003e`msteams_channel`\u003c/span\u003e.\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target. Possible values are: \u003cspan pulumi-lang-nodejs=\"`high`\" pulumi-lang-dotnet=\"`High`\" pulumi-lang-go=\"`high`\" pulumi-lang-python=\"`high`\" pulumi-lang-yaml=\"`high`\" pulumi-lang-java=\"`high`\"\u003e`high`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`low`\" pulumi-lang-dotnet=\"`Low`\" pulumi-lang-go=\"`low`\" pulumi-lang-python=\"`low`\" pulumi-lang-yaml=\"`low`\" pulumi-lang-java=\"`low`\"\u003e`low`\u003c/span\u003e.\n"}},"type":"object","required":["id","type","urgency"],"language":{"nodejs":{"requiredOutputs":["id","scheduleMode","type","urgency"]}}},"incident:index/EscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseElsePathRepeat:EscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseElsePathRepeat":{"properties":{"repeatTimes":{"type":"number","description":"How many times to repeat these nodes\n"},"toNode":{"type":"string","description":"Which node ID we begin repeating from.\n"}},"type":"object","required":["repeatTimes","toNode"]},"incident:index/EscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseThenPath:EscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseThenPath":{"properties":{"id":{"type":"string","description":"An ID for this node, unique within the escalation path.\n\nThis allows you to reference the node in other nodes, such as when configuring a 'repeat' node.\n"},"level":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseThenPathLevel:EscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseThenPathLevel"},"notifyChannel":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseThenPathNotifyChannel:EscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseThenPathNotifyChannel"},"repeat":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseThenPathRepeat:EscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseThenPathRepeat"},"type":{"type":"string","description":"The type of this node. Available types are:\n* level: A set of targets (users or schedules) that should be paged, either all at once, or with a round-robin configuration.\n* notify_channel: Send the escalation to a Slack channel, where it can be acked by anyone in the channel.\n* if_else: Branch the escalation based on a set of conditions.\n* repeat: Go back to a previous node and repeat the logic from there.\n"}},"type":"object","required":["type"],"language":{"nodejs":{"requiredOutputs":["id","type"]}}},"incident:index/EscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseThenPathLevel:EscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseThenPathLevel":{"properties":{"ackMode":{"type":"string","description":"Controls the behaviour of acknowledgements for this level, with 'first' cancelling all other escalations on the same level when someone acks\n"},"roundRobinConfig":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseThenPathLevelRoundRobinConfig:EscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseThenPathLevelRoundRobinConfig"},"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseThenPathLevelTarget:EscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseThenPathLevelTarget"},"description":"The targets (users or schedules) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before proceeding to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["targets"],"language":{"nodejs":{"requiredOutputs":["ackMode","targets"]}}},"incident:index/EscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseThenPathLevelRoundRobinConfig:EscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseThenPathLevelRoundRobinConfig":{"properties":{"enabled":{"type":"boolean","description":"Whether round robin is enabled for this level\n"},"rotateAfterSeconds":{"type":"number","description":"How long should we wait before rotating to the next target in a round robin, if not set will stick with a single target per level.\n"}},"type":"object","required":["enabled"]},"incident:index/EscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseThenPathLevelTarget:EscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseThenPathLevelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently_on_call,\u003cspan pulumi-lang-nodejs=\" allUsers \" pulumi-lang-dotnet=\" AllUsers \" pulumi-lang-go=\" allUsers \" pulumi-lang-python=\" all_users \" pulumi-lang-yaml=\" allUsers \" pulumi-lang-java=\" allUsers \"\u003e all_users \u003c/span\u003eor\u003cspan pulumi-lang-nodejs=\" allUsersForRota \" pulumi-lang-dotnet=\" AllUsersForRota \" pulumi-lang-go=\" allUsersForRota \" pulumi-lang-python=\" all_users_for_rota \" pulumi-lang-yaml=\" allUsersForRota \" pulumi-lang-java=\" allUsersForRota \"\u003e all_users_for_rota \u003c/span\u003eand specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User. Possible values are: \u003cspan pulumi-lang-nodejs=\"`schedule`\" pulumi-lang-dotnet=\"`Schedule`\" pulumi-lang-go=\"`schedule`\" pulumi-lang-python=\"`schedule`\" pulumi-lang-yaml=\"`schedule`\" pulumi-lang-java=\"`schedule`\"\u003e`schedule`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`user`\" pulumi-lang-dotnet=\"`User`\" pulumi-lang-go=\"`user`\" pulumi-lang-python=\"`user`\" pulumi-lang-yaml=\"`user`\" pulumi-lang-java=\"`user`\"\u003e`user`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`slackChannel`\" pulumi-lang-dotnet=\"`SlackChannel`\" pulumi-lang-go=\"`slackChannel`\" pulumi-lang-python=\"`slack_channel`\" pulumi-lang-yaml=\"`slackChannel`\" pulumi-lang-java=\"`slackChannel`\"\u003e`slack_channel`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`msteamsChannel`\" pulumi-lang-dotnet=\"`MsteamsChannel`\" pulumi-lang-go=\"`msteamsChannel`\" pulumi-lang-python=\"`msteams_channel`\" pulumi-lang-yaml=\"`msteamsChannel`\" pulumi-lang-java=\"`msteamsChannel`\"\u003e`msteams_channel`\u003c/span\u003e.\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target. Possible values are: \u003cspan pulumi-lang-nodejs=\"`high`\" pulumi-lang-dotnet=\"`High`\" pulumi-lang-go=\"`high`\" pulumi-lang-python=\"`high`\" pulumi-lang-yaml=\"`high`\" pulumi-lang-java=\"`high`\"\u003e`high`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`low`\" pulumi-lang-dotnet=\"`Low`\" pulumi-lang-go=\"`low`\" pulumi-lang-python=\"`low`\" pulumi-lang-yaml=\"`low`\" pulumi-lang-java=\"`low`\"\u003e`low`\u003c/span\u003e.\n"}},"type":"object","required":["id","type","urgency"],"language":{"nodejs":{"requiredOutputs":["id","scheduleMode","type","urgency"]}}},"incident:index/EscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseThenPathNotifyChannel:EscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseThenPathNotifyChannel":{"properties":{"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseThenPathNotifyChannelTarget:EscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseThenPathNotifyChannelTarget"},"description":"The targets (Slack channels) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before moving on to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["targets"]},"incident:index/EscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseThenPathNotifyChannelTarget:EscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseThenPathNotifyChannelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently_on_call,\u003cspan pulumi-lang-nodejs=\" allUsers \" pulumi-lang-dotnet=\" AllUsers \" pulumi-lang-go=\" allUsers \" pulumi-lang-python=\" all_users \" pulumi-lang-yaml=\" allUsers \" pulumi-lang-java=\" allUsers \"\u003e all_users \u003c/span\u003eor\u003cspan pulumi-lang-nodejs=\" allUsersForRota \" pulumi-lang-dotnet=\" AllUsersForRota \" pulumi-lang-go=\" allUsersForRota \" pulumi-lang-python=\" all_users_for_rota \" pulumi-lang-yaml=\" allUsersForRota \" pulumi-lang-java=\" allUsersForRota \"\u003e all_users_for_rota \u003c/span\u003eand specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User. Possible values are: \u003cspan pulumi-lang-nodejs=\"`schedule`\" pulumi-lang-dotnet=\"`Schedule`\" pulumi-lang-go=\"`schedule`\" pulumi-lang-python=\"`schedule`\" pulumi-lang-yaml=\"`schedule`\" pulumi-lang-java=\"`schedule`\"\u003e`schedule`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`user`\" pulumi-lang-dotnet=\"`User`\" pulumi-lang-go=\"`user`\" pulumi-lang-python=\"`user`\" pulumi-lang-yaml=\"`user`\" pulumi-lang-java=\"`user`\"\u003e`user`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`slackChannel`\" pulumi-lang-dotnet=\"`SlackChannel`\" pulumi-lang-go=\"`slackChannel`\" pulumi-lang-python=\"`slack_channel`\" pulumi-lang-yaml=\"`slackChannel`\" pulumi-lang-java=\"`slackChannel`\"\u003e`slack_channel`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`msteamsChannel`\" pulumi-lang-dotnet=\"`MsteamsChannel`\" pulumi-lang-go=\"`msteamsChannel`\" pulumi-lang-python=\"`msteams_channel`\" pulumi-lang-yaml=\"`msteamsChannel`\" pulumi-lang-java=\"`msteamsChannel`\"\u003e`msteams_channel`\u003c/span\u003e.\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target. Possible values are: \u003cspan pulumi-lang-nodejs=\"`high`\" pulumi-lang-dotnet=\"`High`\" pulumi-lang-go=\"`high`\" pulumi-lang-python=\"`high`\" pulumi-lang-yaml=\"`high`\" pulumi-lang-java=\"`high`\"\u003e`high`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`low`\" pulumi-lang-dotnet=\"`Low`\" pulumi-lang-go=\"`low`\" pulumi-lang-python=\"`low`\" pulumi-lang-yaml=\"`low`\" pulumi-lang-java=\"`low`\"\u003e`low`\u003c/span\u003e.\n"}},"type":"object","required":["id","type","urgency"],"language":{"nodejs":{"requiredOutputs":["id","scheduleMode","type","urgency"]}}},"incident:index/EscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseThenPathRepeat:EscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseThenPathRepeat":{"properties":{"repeatTimes":{"type":"number","description":"How many times to repeat these nodes\n"},"toNode":{"type":"string","description":"Which node ID we begin repeating from.\n"}},"type":"object","required":["repeatTimes","toNode"]},"incident:index/EscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathLevel:EscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathLevel":{"properties":{"ackMode":{"type":"string","description":"Controls the behaviour of acknowledgements for this level, with 'first' cancelling all other escalations on the same level when someone acks\n"},"roundRobinConfig":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathLevelRoundRobinConfig:EscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathLevelRoundRobinConfig"},"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathLevelTarget:EscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathLevelTarget"},"description":"The targets (users or schedules) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before proceeding to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["targets"],"language":{"nodejs":{"requiredOutputs":["ackMode","targets"]}}},"incident:index/EscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathLevelRoundRobinConfig:EscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathLevelRoundRobinConfig":{"properties":{"enabled":{"type":"boolean","description":"Whether round robin is enabled for this level\n"},"rotateAfterSeconds":{"type":"number","description":"How long should we wait before rotating to the next target in a round robin, if not set will stick with a single target per level.\n"}},"type":"object","required":["enabled"]},"incident:index/EscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathLevelTarget:EscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathLevelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently_on_call,\u003cspan pulumi-lang-nodejs=\" allUsers \" pulumi-lang-dotnet=\" AllUsers \" pulumi-lang-go=\" allUsers \" pulumi-lang-python=\" all_users \" pulumi-lang-yaml=\" allUsers \" pulumi-lang-java=\" allUsers \"\u003e all_users \u003c/span\u003eor\u003cspan pulumi-lang-nodejs=\" allUsersForRota \" pulumi-lang-dotnet=\" AllUsersForRota \" pulumi-lang-go=\" allUsersForRota \" pulumi-lang-python=\" all_users_for_rota \" pulumi-lang-yaml=\" allUsersForRota \" pulumi-lang-java=\" allUsersForRota \"\u003e all_users_for_rota \u003c/span\u003eand specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User. Possible values are: \u003cspan pulumi-lang-nodejs=\"`schedule`\" pulumi-lang-dotnet=\"`Schedule`\" pulumi-lang-go=\"`schedule`\" pulumi-lang-python=\"`schedule`\" pulumi-lang-yaml=\"`schedule`\" pulumi-lang-java=\"`schedule`\"\u003e`schedule`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`user`\" pulumi-lang-dotnet=\"`User`\" pulumi-lang-go=\"`user`\" pulumi-lang-python=\"`user`\" pulumi-lang-yaml=\"`user`\" pulumi-lang-java=\"`user`\"\u003e`user`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`slackChannel`\" pulumi-lang-dotnet=\"`SlackChannel`\" pulumi-lang-go=\"`slackChannel`\" pulumi-lang-python=\"`slack_channel`\" pulumi-lang-yaml=\"`slackChannel`\" pulumi-lang-java=\"`slackChannel`\"\u003e`slack_channel`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`msteamsChannel`\" pulumi-lang-dotnet=\"`MsteamsChannel`\" pulumi-lang-go=\"`msteamsChannel`\" pulumi-lang-python=\"`msteams_channel`\" pulumi-lang-yaml=\"`msteamsChannel`\" pulumi-lang-java=\"`msteamsChannel`\"\u003e`msteams_channel`\u003c/span\u003e.\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target. Possible values are: \u003cspan pulumi-lang-nodejs=\"`high`\" pulumi-lang-dotnet=\"`High`\" pulumi-lang-go=\"`high`\" pulumi-lang-python=\"`high`\" pulumi-lang-yaml=\"`high`\" pulumi-lang-java=\"`high`\"\u003e`high`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`low`\" pulumi-lang-dotnet=\"`Low`\" pulumi-lang-go=\"`low`\" pulumi-lang-python=\"`low`\" pulumi-lang-yaml=\"`low`\" pulumi-lang-java=\"`low`\"\u003e`low`\u003c/span\u003e.\n"}},"type":"object","required":["id","type","urgency"],"language":{"nodejs":{"requiredOutputs":["id","scheduleMode","type","urgency"]}}},"incident:index/EscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathNotifyChannel:EscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathNotifyChannel":{"properties":{"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathNotifyChannelTarget:EscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathNotifyChannelTarget"},"description":"The targets (Slack channels) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before moving on to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["targets"]},"incident:index/EscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathNotifyChannelTarget:EscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathNotifyChannelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently_on_call,\u003cspan pulumi-lang-nodejs=\" allUsers \" pulumi-lang-dotnet=\" AllUsers \" pulumi-lang-go=\" allUsers \" pulumi-lang-python=\" all_users \" pulumi-lang-yaml=\" allUsers \" pulumi-lang-java=\" allUsers \"\u003e all_users \u003c/span\u003eor\u003cspan pulumi-lang-nodejs=\" allUsersForRota \" pulumi-lang-dotnet=\" AllUsersForRota \" pulumi-lang-go=\" allUsersForRota \" pulumi-lang-python=\" all_users_for_rota \" pulumi-lang-yaml=\" allUsersForRota \" pulumi-lang-java=\" allUsersForRota \"\u003e all_users_for_rota \u003c/span\u003eand specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User. Possible values are: \u003cspan pulumi-lang-nodejs=\"`schedule`\" pulumi-lang-dotnet=\"`Schedule`\" pulumi-lang-go=\"`schedule`\" pulumi-lang-python=\"`schedule`\" pulumi-lang-yaml=\"`schedule`\" pulumi-lang-java=\"`schedule`\"\u003e`schedule`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`user`\" pulumi-lang-dotnet=\"`User`\" pulumi-lang-go=\"`user`\" pulumi-lang-python=\"`user`\" pulumi-lang-yaml=\"`user`\" pulumi-lang-java=\"`user`\"\u003e`user`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`slackChannel`\" pulumi-lang-dotnet=\"`SlackChannel`\" pulumi-lang-go=\"`slackChannel`\" pulumi-lang-python=\"`slack_channel`\" pulumi-lang-yaml=\"`slackChannel`\" pulumi-lang-java=\"`slackChannel`\"\u003e`slack_channel`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`msteamsChannel`\" pulumi-lang-dotnet=\"`MsteamsChannel`\" pulumi-lang-go=\"`msteamsChannel`\" pulumi-lang-python=\"`msteams_channel`\" pulumi-lang-yaml=\"`msteamsChannel`\" pulumi-lang-java=\"`msteamsChannel`\"\u003e`msteams_channel`\u003c/span\u003e.\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target. Possible values are: \u003cspan pulumi-lang-nodejs=\"`high`\" pulumi-lang-dotnet=\"`High`\" pulumi-lang-go=\"`high`\" pulumi-lang-python=\"`high`\" pulumi-lang-yaml=\"`high`\" pulumi-lang-java=\"`high`\"\u003e`high`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`low`\" pulumi-lang-dotnet=\"`Low`\" pulumi-lang-go=\"`low`\" pulumi-lang-python=\"`low`\" pulumi-lang-yaml=\"`low`\" pulumi-lang-java=\"`low`\"\u003e`low`\u003c/span\u003e.\n"}},"type":"object","required":["id","type","urgency"],"language":{"nodejs":{"requiredOutputs":["id","scheduleMode","type","urgency"]}}},"incident:index/EscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathRepeat:EscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathRepeat":{"properties":{"repeatTimes":{"type":"number","description":"How many times to repeat these nodes\n"},"toNode":{"type":"string","description":"Which node ID we begin repeating from.\n"}},"type":"object","required":["repeatTimes","toNode"]},"incident:index/EscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPath:EscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPath":{"properties":{"id":{"type":"string","description":"An ID for this node, unique within the escalation path.\n\nThis allows you to reference the node in other nodes, such as when configuring a 'repeat' node.\n"},"ifElse":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElse:EscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElse"},"level":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathLevel:EscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathLevel"},"notifyChannel":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathNotifyChannel:EscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathNotifyChannel"},"repeat":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathRepeat:EscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathRepeat"},"type":{"type":"string","description":"The type of this node. Available types are:\n* level: A set of targets (users or schedules) that should be paged, either all at once, or with a round-robin configuration.\n* notify_channel: Send the escalation to a Slack channel, where it can be acked by anyone in the channel.\n* if_else: Branch the escalation based on a set of conditions.\n* repeat: Go back to a previous node and repeat the logic from there.\n"}},"type":"object","required":["type"],"language":{"nodejs":{"requiredOutputs":["id","type"]}}},"incident:index/EscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElse:EscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElse":{"properties":{"conditions":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseCondition:EscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseCondition"},"description":"The prerequisite conditions that must all be satisfied\n"},"elsePaths":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseElsePath:EscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseElsePath"},"description":"The nodes that form the levels if our condition is not met\n"},"thenPaths":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseThenPath:EscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseThenPath"},"description":"Then path nodes\n"}},"type":"object","required":["conditions","thenPaths"]},"incident:index/EscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseCondition:EscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseCondition":{"properties":{"operation":{"type":"string","description":"The logical operation to be applied\n"},"paramBindings":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseConditionParamBinding:EscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseConditionParamBinding"},"description":"Bindings for the operation parameters\n"},"subject":{"type":"string","description":"The subject of the condition, on which the operation is applied\n"}},"type":"object","required":["operation","paramBindings","subject"]},"incident:index/EscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseConditionParamBinding:EscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseConditionParamBinding":{"properties":{"arrayValues":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseConditionParamBindingArrayValue:EscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseConditionParamBindingArrayValue"},"description":"The array of literal or reference parameter values\n"},"value":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseConditionParamBindingValue:EscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseConditionParamBindingValue","description":"The literal or reference parameter value\n"}},"type":"object"},"incident:index/EscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseConditionParamBindingArrayValue:EscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseConditionParamBindingArrayValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object"},"incident:index/EscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseConditionParamBindingValue:EscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseConditionParamBindingValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object"},"incident:index/EscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseElsePath:EscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseElsePath":{"properties":{"id":{"type":"string","description":"An ID for this node, unique within the escalation path.\n\nThis allows you to reference the node in other nodes, such as when configuring a 'repeat' node.\n"},"level":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseElsePathLevel:EscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseElsePathLevel"},"notifyChannel":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseElsePathNotifyChannel:EscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseElsePathNotifyChannel"},"repeat":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseElsePathRepeat:EscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseElsePathRepeat"},"type":{"type":"string","description":"The type of this node. Available types are:\n* level: A set of targets (users or schedules) that should be paged, either all at once, or with a round-robin configuration.\n* notify_channel: Send the escalation to a Slack channel, where it can be acked by anyone in the channel.\n* if_else: Branch the escalation based on a set of conditions.\n* repeat: Go back to a previous node and repeat the logic from there.\n"}},"type":"object","required":["type"],"language":{"nodejs":{"requiredOutputs":["id","type"]}}},"incident:index/EscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseElsePathLevel:EscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseElsePathLevel":{"properties":{"ackMode":{"type":"string","description":"Controls the behaviour of acknowledgements for this level, with 'first' cancelling all other escalations on the same level when someone acks\n"},"roundRobinConfig":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseElsePathLevelRoundRobinConfig:EscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseElsePathLevelRoundRobinConfig"},"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseElsePathLevelTarget:EscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseElsePathLevelTarget"},"description":"The targets (users or schedules) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before proceeding to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["targets"],"language":{"nodejs":{"requiredOutputs":["ackMode","targets"]}}},"incident:index/EscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseElsePathLevelRoundRobinConfig:EscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseElsePathLevelRoundRobinConfig":{"properties":{"enabled":{"type":"boolean","description":"Whether round robin is enabled for this level\n"},"rotateAfterSeconds":{"type":"number","description":"How long should we wait before rotating to the next target in a round robin, if not set will stick with a single target per level.\n"}},"type":"object","required":["enabled"]},"incident:index/EscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseElsePathLevelTarget:EscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseElsePathLevelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently_on_call,\u003cspan pulumi-lang-nodejs=\" allUsers \" pulumi-lang-dotnet=\" AllUsers \" pulumi-lang-go=\" allUsers \" pulumi-lang-python=\" all_users \" pulumi-lang-yaml=\" allUsers \" pulumi-lang-java=\" allUsers \"\u003e all_users \u003c/span\u003eor\u003cspan pulumi-lang-nodejs=\" allUsersForRota \" pulumi-lang-dotnet=\" AllUsersForRota \" pulumi-lang-go=\" allUsersForRota \" pulumi-lang-python=\" all_users_for_rota \" pulumi-lang-yaml=\" allUsersForRota \" pulumi-lang-java=\" allUsersForRota \"\u003e all_users_for_rota \u003c/span\u003eand specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User. Possible values are: \u003cspan pulumi-lang-nodejs=\"`schedule`\" pulumi-lang-dotnet=\"`Schedule`\" pulumi-lang-go=\"`schedule`\" pulumi-lang-python=\"`schedule`\" pulumi-lang-yaml=\"`schedule`\" pulumi-lang-java=\"`schedule`\"\u003e`schedule`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`user`\" pulumi-lang-dotnet=\"`User`\" pulumi-lang-go=\"`user`\" pulumi-lang-python=\"`user`\" pulumi-lang-yaml=\"`user`\" pulumi-lang-java=\"`user`\"\u003e`user`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`slackChannel`\" pulumi-lang-dotnet=\"`SlackChannel`\" pulumi-lang-go=\"`slackChannel`\" pulumi-lang-python=\"`slack_channel`\" pulumi-lang-yaml=\"`slackChannel`\" pulumi-lang-java=\"`slackChannel`\"\u003e`slack_channel`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`msteamsChannel`\" pulumi-lang-dotnet=\"`MsteamsChannel`\" pulumi-lang-go=\"`msteamsChannel`\" pulumi-lang-python=\"`msteams_channel`\" pulumi-lang-yaml=\"`msteamsChannel`\" pulumi-lang-java=\"`msteamsChannel`\"\u003e`msteams_channel`\u003c/span\u003e.\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target. Possible values are: \u003cspan pulumi-lang-nodejs=\"`high`\" pulumi-lang-dotnet=\"`High`\" pulumi-lang-go=\"`high`\" pulumi-lang-python=\"`high`\" pulumi-lang-yaml=\"`high`\" pulumi-lang-java=\"`high`\"\u003e`high`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`low`\" pulumi-lang-dotnet=\"`Low`\" pulumi-lang-go=\"`low`\" pulumi-lang-python=\"`low`\" pulumi-lang-yaml=\"`low`\" pulumi-lang-java=\"`low`\"\u003e`low`\u003c/span\u003e.\n"}},"type":"object","required":["id","type","urgency"],"language":{"nodejs":{"requiredOutputs":["id","scheduleMode","type","urgency"]}}},"incident:index/EscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseElsePathNotifyChannel:EscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseElsePathNotifyChannel":{"properties":{"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseElsePathNotifyChannelTarget:EscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseElsePathNotifyChannelTarget"},"description":"The targets (Slack channels) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before moving on to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["targets"]},"incident:index/EscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseElsePathNotifyChannelTarget:EscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseElsePathNotifyChannelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently_on_call,\u003cspan pulumi-lang-nodejs=\" allUsers \" pulumi-lang-dotnet=\" AllUsers \" pulumi-lang-go=\" allUsers \" pulumi-lang-python=\" all_users \" pulumi-lang-yaml=\" allUsers \" pulumi-lang-java=\" allUsers \"\u003e all_users \u003c/span\u003eor\u003cspan pulumi-lang-nodejs=\" allUsersForRota \" pulumi-lang-dotnet=\" AllUsersForRota \" pulumi-lang-go=\" allUsersForRota \" pulumi-lang-python=\" all_users_for_rota \" pulumi-lang-yaml=\" allUsersForRota \" pulumi-lang-java=\" allUsersForRota \"\u003e all_users_for_rota \u003c/span\u003eand specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User. Possible values are: \u003cspan pulumi-lang-nodejs=\"`schedule`\" pulumi-lang-dotnet=\"`Schedule`\" pulumi-lang-go=\"`schedule`\" pulumi-lang-python=\"`schedule`\" pulumi-lang-yaml=\"`schedule`\" pulumi-lang-java=\"`schedule`\"\u003e`schedule`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`user`\" pulumi-lang-dotnet=\"`User`\" pulumi-lang-go=\"`user`\" pulumi-lang-python=\"`user`\" pulumi-lang-yaml=\"`user`\" pulumi-lang-java=\"`user`\"\u003e`user`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`slackChannel`\" pulumi-lang-dotnet=\"`SlackChannel`\" pulumi-lang-go=\"`slackChannel`\" pulumi-lang-python=\"`slack_channel`\" pulumi-lang-yaml=\"`slackChannel`\" pulumi-lang-java=\"`slackChannel`\"\u003e`slack_channel`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`msteamsChannel`\" pulumi-lang-dotnet=\"`MsteamsChannel`\" pulumi-lang-go=\"`msteamsChannel`\" pulumi-lang-python=\"`msteams_channel`\" pulumi-lang-yaml=\"`msteamsChannel`\" pulumi-lang-java=\"`msteamsChannel`\"\u003e`msteams_channel`\u003c/span\u003e.\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target. Possible values are: \u003cspan pulumi-lang-nodejs=\"`high`\" pulumi-lang-dotnet=\"`High`\" pulumi-lang-go=\"`high`\" pulumi-lang-python=\"`high`\" pulumi-lang-yaml=\"`high`\" pulumi-lang-java=\"`high`\"\u003e`high`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`low`\" pulumi-lang-dotnet=\"`Low`\" pulumi-lang-go=\"`low`\" pulumi-lang-python=\"`low`\" pulumi-lang-yaml=\"`low`\" pulumi-lang-java=\"`low`\"\u003e`low`\u003c/span\u003e.\n"}},"type":"object","required":["id","type","urgency"],"language":{"nodejs":{"requiredOutputs":["id","scheduleMode","type","urgency"]}}},"incident:index/EscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseElsePathRepeat:EscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseElsePathRepeat":{"properties":{"repeatTimes":{"type":"number","description":"How many times to repeat these nodes\n"},"toNode":{"type":"string","description":"Which node ID we begin repeating from.\n"}},"type":"object","required":["repeatTimes","toNode"]},"incident:index/EscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseThenPath:EscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseThenPath":{"properties":{"id":{"type":"string","description":"An ID for this node, unique within the escalation path.\n\nThis allows you to reference the node in other nodes, such as when configuring a 'repeat' node.\n"},"level":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseThenPathLevel:EscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseThenPathLevel"},"notifyChannel":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseThenPathNotifyChannel:EscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseThenPathNotifyChannel"},"repeat":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseThenPathRepeat:EscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseThenPathRepeat"},"type":{"type":"string","description":"The type of this node. Available types are:\n* level: A set of targets (users or schedules) that should be paged, either all at once, or with a round-robin configuration.\n* notify_channel: Send the escalation to a Slack channel, where it can be acked by anyone in the channel.\n* if_else: Branch the escalation based on a set of conditions.\n* repeat: Go back to a previous node and repeat the logic from there.\n"}},"type":"object","required":["type"],"language":{"nodejs":{"requiredOutputs":["id","type"]}}},"incident:index/EscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseThenPathLevel:EscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseThenPathLevel":{"properties":{"ackMode":{"type":"string","description":"Controls the behaviour of acknowledgements for this level, with 'first' cancelling all other escalations on the same level when someone acks\n"},"roundRobinConfig":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseThenPathLevelRoundRobinConfig:EscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseThenPathLevelRoundRobinConfig"},"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseThenPathLevelTarget:EscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseThenPathLevelTarget"},"description":"The targets (users or schedules) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before proceeding to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["targets"],"language":{"nodejs":{"requiredOutputs":["ackMode","targets"]}}},"incident:index/EscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseThenPathLevelRoundRobinConfig:EscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseThenPathLevelRoundRobinConfig":{"properties":{"enabled":{"type":"boolean","description":"Whether round robin is enabled for this level\n"},"rotateAfterSeconds":{"type":"number","description":"How long should we wait before rotating to the next target in a round robin, if not set will stick with a single target per level.\n"}},"type":"object","required":["enabled"]},"incident:index/EscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseThenPathLevelTarget:EscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseThenPathLevelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently_on_call,\u003cspan pulumi-lang-nodejs=\" allUsers \" pulumi-lang-dotnet=\" AllUsers \" pulumi-lang-go=\" allUsers \" pulumi-lang-python=\" all_users \" pulumi-lang-yaml=\" allUsers \" pulumi-lang-java=\" allUsers \"\u003e all_users \u003c/span\u003eor\u003cspan pulumi-lang-nodejs=\" allUsersForRota \" pulumi-lang-dotnet=\" AllUsersForRota \" pulumi-lang-go=\" allUsersForRota \" pulumi-lang-python=\" all_users_for_rota \" pulumi-lang-yaml=\" allUsersForRota \" pulumi-lang-java=\" allUsersForRota \"\u003e all_users_for_rota \u003c/span\u003eand specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User. Possible values are: \u003cspan pulumi-lang-nodejs=\"`schedule`\" pulumi-lang-dotnet=\"`Schedule`\" pulumi-lang-go=\"`schedule`\" pulumi-lang-python=\"`schedule`\" pulumi-lang-yaml=\"`schedule`\" pulumi-lang-java=\"`schedule`\"\u003e`schedule`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`user`\" pulumi-lang-dotnet=\"`User`\" pulumi-lang-go=\"`user`\" pulumi-lang-python=\"`user`\" pulumi-lang-yaml=\"`user`\" pulumi-lang-java=\"`user`\"\u003e`user`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`slackChannel`\" pulumi-lang-dotnet=\"`SlackChannel`\" pulumi-lang-go=\"`slackChannel`\" pulumi-lang-python=\"`slack_channel`\" pulumi-lang-yaml=\"`slackChannel`\" pulumi-lang-java=\"`slackChannel`\"\u003e`slack_channel`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`msteamsChannel`\" pulumi-lang-dotnet=\"`MsteamsChannel`\" pulumi-lang-go=\"`msteamsChannel`\" pulumi-lang-python=\"`msteams_channel`\" pulumi-lang-yaml=\"`msteamsChannel`\" pulumi-lang-java=\"`msteamsChannel`\"\u003e`msteams_channel`\u003c/span\u003e.\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target. Possible values are: \u003cspan pulumi-lang-nodejs=\"`high`\" pulumi-lang-dotnet=\"`High`\" pulumi-lang-go=\"`high`\" pulumi-lang-python=\"`high`\" pulumi-lang-yaml=\"`high`\" pulumi-lang-java=\"`high`\"\u003e`high`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`low`\" pulumi-lang-dotnet=\"`Low`\" pulumi-lang-go=\"`low`\" pulumi-lang-python=\"`low`\" pulumi-lang-yaml=\"`low`\" pulumi-lang-java=\"`low`\"\u003e`low`\u003c/span\u003e.\n"}},"type":"object","required":["id","type","urgency"],"language":{"nodejs":{"requiredOutputs":["id","scheduleMode","type","urgency"]}}},"incident:index/EscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseThenPathNotifyChannel:EscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseThenPathNotifyChannel":{"properties":{"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseThenPathNotifyChannelTarget:EscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseThenPathNotifyChannelTarget"},"description":"The targets (Slack channels) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before moving on to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["targets"]},"incident:index/EscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseThenPathNotifyChannelTarget:EscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseThenPathNotifyChannelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently_on_call,\u003cspan pulumi-lang-nodejs=\" allUsers \" pulumi-lang-dotnet=\" AllUsers \" pulumi-lang-go=\" allUsers \" pulumi-lang-python=\" all_users \" pulumi-lang-yaml=\" allUsers \" pulumi-lang-java=\" allUsers \"\u003e all_users \u003c/span\u003eor\u003cspan pulumi-lang-nodejs=\" allUsersForRota \" pulumi-lang-dotnet=\" AllUsersForRota \" pulumi-lang-go=\" allUsersForRota \" pulumi-lang-python=\" all_users_for_rota \" pulumi-lang-yaml=\" allUsersForRota \" pulumi-lang-java=\" allUsersForRota \"\u003e all_users_for_rota \u003c/span\u003eand specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User. Possible values are: \u003cspan pulumi-lang-nodejs=\"`schedule`\" pulumi-lang-dotnet=\"`Schedule`\" pulumi-lang-go=\"`schedule`\" pulumi-lang-python=\"`schedule`\" pulumi-lang-yaml=\"`schedule`\" pulumi-lang-java=\"`schedule`\"\u003e`schedule`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`user`\" pulumi-lang-dotnet=\"`User`\" pulumi-lang-go=\"`user`\" pulumi-lang-python=\"`user`\" pulumi-lang-yaml=\"`user`\" pulumi-lang-java=\"`user`\"\u003e`user`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`slackChannel`\" pulumi-lang-dotnet=\"`SlackChannel`\" pulumi-lang-go=\"`slackChannel`\" pulumi-lang-python=\"`slack_channel`\" pulumi-lang-yaml=\"`slackChannel`\" pulumi-lang-java=\"`slackChannel`\"\u003e`slack_channel`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`msteamsChannel`\" pulumi-lang-dotnet=\"`MsteamsChannel`\" pulumi-lang-go=\"`msteamsChannel`\" pulumi-lang-python=\"`msteams_channel`\" pulumi-lang-yaml=\"`msteamsChannel`\" pulumi-lang-java=\"`msteamsChannel`\"\u003e`msteams_channel`\u003c/span\u003e.\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target. Possible values are: \u003cspan pulumi-lang-nodejs=\"`high`\" pulumi-lang-dotnet=\"`High`\" pulumi-lang-go=\"`high`\" pulumi-lang-python=\"`high`\" pulumi-lang-yaml=\"`high`\" pulumi-lang-java=\"`high`\"\u003e`high`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`low`\" pulumi-lang-dotnet=\"`Low`\" pulumi-lang-go=\"`low`\" pulumi-lang-python=\"`low`\" pulumi-lang-yaml=\"`low`\" pulumi-lang-java=\"`low`\"\u003e`low`\u003c/span\u003e.\n"}},"type":"object","required":["id","type","urgency"],"language":{"nodejs":{"requiredOutputs":["id","scheduleMode","type","urgency"]}}},"incident:index/EscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseThenPathRepeat:EscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseThenPathRepeat":{"properties":{"repeatTimes":{"type":"number","description":"How many times to repeat these nodes\n"},"toNode":{"type":"string","description":"Which node ID we begin repeating from.\n"}},"type":"object","required":["repeatTimes","toNode"]},"incident:index/EscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathLevel:EscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathLevel":{"properties":{"ackMode":{"type":"string","description":"Controls the behaviour of acknowledgements for this level, with 'first' cancelling all other escalations on the same level when someone acks\n"},"roundRobinConfig":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathLevelRoundRobinConfig:EscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathLevelRoundRobinConfig"},"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathLevelTarget:EscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathLevelTarget"},"description":"The targets (users or schedules) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before proceeding to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["targets"],"language":{"nodejs":{"requiredOutputs":["ackMode","targets"]}}},"incident:index/EscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathLevelRoundRobinConfig:EscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathLevelRoundRobinConfig":{"properties":{"enabled":{"type":"boolean","description":"Whether round robin is enabled for this level\n"},"rotateAfterSeconds":{"type":"number","description":"How long should we wait before rotating to the next target in a round robin, if not set will stick with a single target per level.\n"}},"type":"object","required":["enabled"]},"incident:index/EscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathLevelTarget:EscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathLevelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently_on_call,\u003cspan pulumi-lang-nodejs=\" allUsers \" pulumi-lang-dotnet=\" AllUsers \" pulumi-lang-go=\" allUsers \" pulumi-lang-python=\" all_users \" pulumi-lang-yaml=\" allUsers \" pulumi-lang-java=\" allUsers \"\u003e all_users \u003c/span\u003eor\u003cspan pulumi-lang-nodejs=\" allUsersForRota \" pulumi-lang-dotnet=\" AllUsersForRota \" pulumi-lang-go=\" allUsersForRota \" pulumi-lang-python=\" all_users_for_rota \" pulumi-lang-yaml=\" allUsersForRota \" pulumi-lang-java=\" allUsersForRota \"\u003e all_users_for_rota \u003c/span\u003eand specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User. Possible values are: \u003cspan pulumi-lang-nodejs=\"`schedule`\" pulumi-lang-dotnet=\"`Schedule`\" pulumi-lang-go=\"`schedule`\" pulumi-lang-python=\"`schedule`\" pulumi-lang-yaml=\"`schedule`\" pulumi-lang-java=\"`schedule`\"\u003e`schedule`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`user`\" pulumi-lang-dotnet=\"`User`\" pulumi-lang-go=\"`user`\" pulumi-lang-python=\"`user`\" pulumi-lang-yaml=\"`user`\" pulumi-lang-java=\"`user`\"\u003e`user`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`slackChannel`\" pulumi-lang-dotnet=\"`SlackChannel`\" pulumi-lang-go=\"`slackChannel`\" pulumi-lang-python=\"`slack_channel`\" pulumi-lang-yaml=\"`slackChannel`\" pulumi-lang-java=\"`slackChannel`\"\u003e`slack_channel`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`msteamsChannel`\" pulumi-lang-dotnet=\"`MsteamsChannel`\" pulumi-lang-go=\"`msteamsChannel`\" pulumi-lang-python=\"`msteams_channel`\" pulumi-lang-yaml=\"`msteamsChannel`\" pulumi-lang-java=\"`msteamsChannel`\"\u003e`msteams_channel`\u003c/span\u003e.\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target. Possible values are: \u003cspan pulumi-lang-nodejs=\"`high`\" pulumi-lang-dotnet=\"`High`\" pulumi-lang-go=\"`high`\" pulumi-lang-python=\"`high`\" pulumi-lang-yaml=\"`high`\" pulumi-lang-java=\"`high`\"\u003e`high`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`low`\" pulumi-lang-dotnet=\"`Low`\" pulumi-lang-go=\"`low`\" pulumi-lang-python=\"`low`\" pulumi-lang-yaml=\"`low`\" pulumi-lang-java=\"`low`\"\u003e`low`\u003c/span\u003e.\n"}},"type":"object","required":["id","type","urgency"],"language":{"nodejs":{"requiredOutputs":["id","scheduleMode","type","urgency"]}}},"incident:index/EscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathNotifyChannel:EscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathNotifyChannel":{"properties":{"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathNotifyChannelTarget:EscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathNotifyChannelTarget"},"description":"The targets (Slack channels) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before moving on to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["targets"]},"incident:index/EscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathNotifyChannelTarget:EscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathNotifyChannelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently_on_call,\u003cspan pulumi-lang-nodejs=\" allUsers \" pulumi-lang-dotnet=\" AllUsers \" pulumi-lang-go=\" allUsers \" pulumi-lang-python=\" all_users \" pulumi-lang-yaml=\" allUsers \" pulumi-lang-java=\" allUsers \"\u003e all_users \u003c/span\u003eor\u003cspan pulumi-lang-nodejs=\" allUsersForRota \" pulumi-lang-dotnet=\" AllUsersForRota \" pulumi-lang-go=\" allUsersForRota \" pulumi-lang-python=\" all_users_for_rota \" pulumi-lang-yaml=\" allUsersForRota \" pulumi-lang-java=\" allUsersForRota \"\u003e all_users_for_rota \u003c/span\u003eand specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User. Possible values are: \u003cspan pulumi-lang-nodejs=\"`schedule`\" pulumi-lang-dotnet=\"`Schedule`\" pulumi-lang-go=\"`schedule`\" pulumi-lang-python=\"`schedule`\" pulumi-lang-yaml=\"`schedule`\" pulumi-lang-java=\"`schedule`\"\u003e`schedule`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`user`\" pulumi-lang-dotnet=\"`User`\" pulumi-lang-go=\"`user`\" pulumi-lang-python=\"`user`\" pulumi-lang-yaml=\"`user`\" pulumi-lang-java=\"`user`\"\u003e`user`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`slackChannel`\" pulumi-lang-dotnet=\"`SlackChannel`\" pulumi-lang-go=\"`slackChannel`\" pulumi-lang-python=\"`slack_channel`\" pulumi-lang-yaml=\"`slackChannel`\" pulumi-lang-java=\"`slackChannel`\"\u003e`slack_channel`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`msteamsChannel`\" pulumi-lang-dotnet=\"`MsteamsChannel`\" pulumi-lang-go=\"`msteamsChannel`\" pulumi-lang-python=\"`msteams_channel`\" pulumi-lang-yaml=\"`msteamsChannel`\" pulumi-lang-java=\"`msteamsChannel`\"\u003e`msteams_channel`\u003c/span\u003e.\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target. Possible values are: \u003cspan pulumi-lang-nodejs=\"`high`\" pulumi-lang-dotnet=\"`High`\" pulumi-lang-go=\"`high`\" pulumi-lang-python=\"`high`\" pulumi-lang-yaml=\"`high`\" pulumi-lang-java=\"`high`\"\u003e`high`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`low`\" pulumi-lang-dotnet=\"`Low`\" pulumi-lang-go=\"`low`\" pulumi-lang-python=\"`low`\" pulumi-lang-yaml=\"`low`\" pulumi-lang-java=\"`low`\"\u003e`low`\u003c/span\u003e.\n"}},"type":"object","required":["id","type","urgency"],"language":{"nodejs":{"requiredOutputs":["id","scheduleMode","type","urgency"]}}},"incident:index/EscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathRepeat:EscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathRepeat":{"properties":{"repeatTimes":{"type":"number","description":"How many times to repeat these nodes\n"},"toNode":{"type":"string","description":"Which node ID we begin repeating from.\n"}},"type":"object","required":["repeatTimes","toNode"]},"incident:index/EscalationPathPathIfElseThenPathIfElseElsePathLevel:EscalationPathPathIfElseThenPathIfElseElsePathLevel":{"properties":{"ackMode":{"type":"string","description":"Controls the behaviour of acknowledgements for this level, with 'first' cancelling all other escalations on the same level when someone acks\n"},"roundRobinConfig":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseElsePathLevelRoundRobinConfig:EscalationPathPathIfElseThenPathIfElseElsePathLevelRoundRobinConfig"},"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseElsePathLevelTarget:EscalationPathPathIfElseThenPathIfElseElsePathLevelTarget"},"description":"The targets (users or schedules) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before proceeding to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["targets"],"language":{"nodejs":{"requiredOutputs":["ackMode","targets"]}}},"incident:index/EscalationPathPathIfElseThenPathIfElseElsePathLevelRoundRobinConfig:EscalationPathPathIfElseThenPathIfElseElsePathLevelRoundRobinConfig":{"properties":{"enabled":{"type":"boolean","description":"Whether round robin is enabled for this level\n"},"rotateAfterSeconds":{"type":"number","description":"How long should we wait before rotating to the next target in a round robin, if not set will stick with a single target per level.\n"}},"type":"object","required":["enabled"]},"incident:index/EscalationPathPathIfElseThenPathIfElseElsePathLevelTarget:EscalationPathPathIfElseThenPathIfElseElsePathLevelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently_on_call,\u003cspan pulumi-lang-nodejs=\" allUsers \" pulumi-lang-dotnet=\" AllUsers \" pulumi-lang-go=\" allUsers \" pulumi-lang-python=\" all_users \" pulumi-lang-yaml=\" allUsers \" pulumi-lang-java=\" allUsers \"\u003e all_users \u003c/span\u003eor\u003cspan pulumi-lang-nodejs=\" allUsersForRota \" pulumi-lang-dotnet=\" AllUsersForRota \" pulumi-lang-go=\" allUsersForRota \" pulumi-lang-python=\" all_users_for_rota \" pulumi-lang-yaml=\" allUsersForRota \" pulumi-lang-java=\" allUsersForRota \"\u003e all_users_for_rota \u003c/span\u003eand specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User. Possible values are: \u003cspan pulumi-lang-nodejs=\"`schedule`\" pulumi-lang-dotnet=\"`Schedule`\" pulumi-lang-go=\"`schedule`\" pulumi-lang-python=\"`schedule`\" pulumi-lang-yaml=\"`schedule`\" pulumi-lang-java=\"`schedule`\"\u003e`schedule`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`user`\" pulumi-lang-dotnet=\"`User`\" pulumi-lang-go=\"`user`\" pulumi-lang-python=\"`user`\" pulumi-lang-yaml=\"`user`\" pulumi-lang-java=\"`user`\"\u003e`user`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`slackChannel`\" pulumi-lang-dotnet=\"`SlackChannel`\" pulumi-lang-go=\"`slackChannel`\" pulumi-lang-python=\"`slack_channel`\" pulumi-lang-yaml=\"`slackChannel`\" pulumi-lang-java=\"`slackChannel`\"\u003e`slack_channel`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`msteamsChannel`\" pulumi-lang-dotnet=\"`MsteamsChannel`\" pulumi-lang-go=\"`msteamsChannel`\" pulumi-lang-python=\"`msteams_channel`\" pulumi-lang-yaml=\"`msteamsChannel`\" pulumi-lang-java=\"`msteamsChannel`\"\u003e`msteams_channel`\u003c/span\u003e.\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target. Possible values are: \u003cspan pulumi-lang-nodejs=\"`high`\" pulumi-lang-dotnet=\"`High`\" pulumi-lang-go=\"`high`\" pulumi-lang-python=\"`high`\" pulumi-lang-yaml=\"`high`\" pulumi-lang-java=\"`high`\"\u003e`high`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`low`\" pulumi-lang-dotnet=\"`Low`\" pulumi-lang-go=\"`low`\" pulumi-lang-python=\"`low`\" pulumi-lang-yaml=\"`low`\" pulumi-lang-java=\"`low`\"\u003e`low`\u003c/span\u003e.\n"}},"type":"object","required":["id","type","urgency"],"language":{"nodejs":{"requiredOutputs":["id","scheduleMode","type","urgency"]}}},"incident:index/EscalationPathPathIfElseThenPathIfElseElsePathNotifyChannel:EscalationPathPathIfElseThenPathIfElseElsePathNotifyChannel":{"properties":{"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseElsePathNotifyChannelTarget:EscalationPathPathIfElseThenPathIfElseElsePathNotifyChannelTarget"},"description":"The targets (Slack channels) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before moving on to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["targets"]},"incident:index/EscalationPathPathIfElseThenPathIfElseElsePathNotifyChannelTarget:EscalationPathPathIfElseThenPathIfElseElsePathNotifyChannelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently_on_call,\u003cspan pulumi-lang-nodejs=\" allUsers \" pulumi-lang-dotnet=\" AllUsers \" pulumi-lang-go=\" allUsers \" pulumi-lang-python=\" all_users \" pulumi-lang-yaml=\" allUsers \" pulumi-lang-java=\" allUsers \"\u003e all_users \u003c/span\u003eor\u003cspan pulumi-lang-nodejs=\" allUsersForRota \" pulumi-lang-dotnet=\" AllUsersForRota \" pulumi-lang-go=\" allUsersForRota \" pulumi-lang-python=\" all_users_for_rota \" pulumi-lang-yaml=\" allUsersForRota \" pulumi-lang-java=\" allUsersForRota \"\u003e all_users_for_rota \u003c/span\u003eand specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User. Possible values are: \u003cspan pulumi-lang-nodejs=\"`schedule`\" pulumi-lang-dotnet=\"`Schedule`\" pulumi-lang-go=\"`schedule`\" pulumi-lang-python=\"`schedule`\" pulumi-lang-yaml=\"`schedule`\" pulumi-lang-java=\"`schedule`\"\u003e`schedule`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`user`\" pulumi-lang-dotnet=\"`User`\" pulumi-lang-go=\"`user`\" pulumi-lang-python=\"`user`\" pulumi-lang-yaml=\"`user`\" pulumi-lang-java=\"`user`\"\u003e`user`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`slackChannel`\" pulumi-lang-dotnet=\"`SlackChannel`\" pulumi-lang-go=\"`slackChannel`\" pulumi-lang-python=\"`slack_channel`\" pulumi-lang-yaml=\"`slackChannel`\" pulumi-lang-java=\"`slackChannel`\"\u003e`slack_channel`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`msteamsChannel`\" pulumi-lang-dotnet=\"`MsteamsChannel`\" pulumi-lang-go=\"`msteamsChannel`\" pulumi-lang-python=\"`msteams_channel`\" pulumi-lang-yaml=\"`msteamsChannel`\" pulumi-lang-java=\"`msteamsChannel`\"\u003e`msteams_channel`\u003c/span\u003e.\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target. Possible values are: \u003cspan pulumi-lang-nodejs=\"`high`\" pulumi-lang-dotnet=\"`High`\" pulumi-lang-go=\"`high`\" pulumi-lang-python=\"`high`\" pulumi-lang-yaml=\"`high`\" pulumi-lang-java=\"`high`\"\u003e`high`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`low`\" pulumi-lang-dotnet=\"`Low`\" pulumi-lang-go=\"`low`\" pulumi-lang-python=\"`low`\" pulumi-lang-yaml=\"`low`\" pulumi-lang-java=\"`low`\"\u003e`low`\u003c/span\u003e.\n"}},"type":"object","required":["id","type","urgency"],"language":{"nodejs":{"requiredOutputs":["id","scheduleMode","type","urgency"]}}},"incident:index/EscalationPathPathIfElseThenPathIfElseElsePathRepeat:EscalationPathPathIfElseThenPathIfElseElsePathRepeat":{"properties":{"repeatTimes":{"type":"number","description":"How many times to repeat these nodes\n"},"toNode":{"type":"string","description":"Which node ID we begin repeating from.\n"}},"type":"object","required":["repeatTimes","toNode"]},"incident:index/EscalationPathPathIfElseThenPathIfElseThenPath:EscalationPathPathIfElseThenPathIfElseThenPath":{"properties":{"id":{"type":"string","description":"An ID for this node, unique within the escalation path.\n\nThis allows you to reference the node in other nodes, such as when configuring a 'repeat' node.\n"},"ifElse":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseThenPathIfElse:EscalationPathPathIfElseThenPathIfElseThenPathIfElse"},"level":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseThenPathLevel:EscalationPathPathIfElseThenPathIfElseThenPathLevel"},"notifyChannel":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseThenPathNotifyChannel:EscalationPathPathIfElseThenPathIfElseThenPathNotifyChannel"},"repeat":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseThenPathRepeat:EscalationPathPathIfElseThenPathIfElseThenPathRepeat"},"type":{"type":"string","description":"The type of this node. Available types are:\n* level: A set of targets (users or schedules) that should be paged, either all at once, or with a round-robin configuration.\n* notify_channel: Send the escalation to a Slack channel, where it can be acked by anyone in the channel.\n* if_else: Branch the escalation based on a set of conditions.\n* repeat: Go back to a previous node and repeat the logic from there.\n"}},"type":"object","required":["type"],"language":{"nodejs":{"requiredOutputs":["id","type"]}}},"incident:index/EscalationPathPathIfElseThenPathIfElseThenPathIfElse:EscalationPathPathIfElseThenPathIfElseThenPathIfElse":{"properties":{"conditions":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseThenPathIfElseCondition:EscalationPathPathIfElseThenPathIfElseThenPathIfElseCondition"},"description":"The prerequisite conditions that must all be satisfied\n"},"elsePaths":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePath:EscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePath"},"description":"The nodes that form the levels if our condition is not met\n"},"thenPaths":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPath:EscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPath"},"description":"Then path nodes\n"}},"type":"object","required":["conditions","thenPaths"]},"incident:index/EscalationPathPathIfElseThenPathIfElseThenPathIfElseCondition:EscalationPathPathIfElseThenPathIfElseThenPathIfElseCondition":{"properties":{"operation":{"type":"string","description":"The logical operation to be applied\n"},"paramBindings":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseThenPathIfElseConditionParamBinding:EscalationPathPathIfElseThenPathIfElseThenPathIfElseConditionParamBinding"},"description":"Bindings for the operation parameters\n"},"subject":{"type":"string","description":"The subject of the condition, on which the operation is applied\n"}},"type":"object","required":["operation","paramBindings","subject"]},"incident:index/EscalationPathPathIfElseThenPathIfElseThenPathIfElseConditionParamBinding:EscalationPathPathIfElseThenPathIfElseThenPathIfElseConditionParamBinding":{"properties":{"arrayValues":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseThenPathIfElseConditionParamBindingArrayValue:EscalationPathPathIfElseThenPathIfElseThenPathIfElseConditionParamBindingArrayValue"},"description":"The array of literal or reference parameter values\n"},"value":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseThenPathIfElseConditionParamBindingValue:EscalationPathPathIfElseThenPathIfElseThenPathIfElseConditionParamBindingValue","description":"The literal or reference parameter value\n"}},"type":"object"},"incident:index/EscalationPathPathIfElseThenPathIfElseThenPathIfElseConditionParamBindingArrayValue:EscalationPathPathIfElseThenPathIfElseThenPathIfElseConditionParamBindingArrayValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object"},"incident:index/EscalationPathPathIfElseThenPathIfElseThenPathIfElseConditionParamBindingValue:EscalationPathPathIfElseThenPathIfElseThenPathIfElseConditionParamBindingValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object"},"incident:index/EscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePath:EscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePath":{"properties":{"id":{"type":"string","description":"An ID for this node, unique within the escalation path.\n\nThis allows you to reference the node in other nodes, such as when configuring a 'repeat' node.\n"},"ifElse":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElse:EscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElse"},"level":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathLevel:EscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathLevel"},"notifyChannel":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathNotifyChannel:EscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathNotifyChannel"},"repeat":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathRepeat:EscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathRepeat"},"type":{"type":"string","description":"The type of this node. Available types are:\n* level: A set of targets (users or schedules) that should be paged, either all at once, or with a round-robin configuration.\n* notify_channel: Send the escalation to a Slack channel, where it can be acked by anyone in the channel.\n* if_else: Branch the escalation based on a set of conditions.\n* repeat: Go back to a previous node and repeat the logic from there.\n"}},"type":"object","required":["type"],"language":{"nodejs":{"requiredOutputs":["id","type"]}}},"incident:index/EscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElse:EscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElse":{"properties":{"conditions":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseCondition:EscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseCondition"},"description":"The prerequisite conditions that must all be satisfied\n"},"elsePaths":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseElsePath:EscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseElsePath"},"description":"The nodes that form the levels if our condition is not met\n"},"thenPaths":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseThenPath:EscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseThenPath"},"description":"Then path nodes\n"}},"type":"object","required":["conditions","thenPaths"]},"incident:index/EscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseCondition:EscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseCondition":{"properties":{"operation":{"type":"string","description":"The logical operation to be applied\n"},"paramBindings":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseConditionParamBinding:EscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseConditionParamBinding"},"description":"Bindings for the operation parameters\n"},"subject":{"type":"string","description":"The subject of the condition, on which the operation is applied\n"}},"type":"object","required":["operation","paramBindings","subject"]},"incident:index/EscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseConditionParamBinding:EscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseConditionParamBinding":{"properties":{"arrayValues":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseConditionParamBindingArrayValue:EscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseConditionParamBindingArrayValue"},"description":"The array of literal or reference parameter values\n"},"value":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseConditionParamBindingValue:EscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseConditionParamBindingValue","description":"The literal or reference parameter value\n"}},"type":"object"},"incident:index/EscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseConditionParamBindingArrayValue:EscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseConditionParamBindingArrayValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object"},"incident:index/EscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseConditionParamBindingValue:EscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseConditionParamBindingValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object"},"incident:index/EscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseElsePath:EscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseElsePath":{"properties":{"id":{"type":"string","description":"An ID for this node, unique within the escalation path.\n\nThis allows you to reference the node in other nodes, such as when configuring a 'repeat' node.\n"},"level":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseElsePathLevel:EscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseElsePathLevel"},"notifyChannel":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseElsePathNotifyChannel:EscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseElsePathNotifyChannel"},"repeat":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseElsePathRepeat:EscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseElsePathRepeat"},"type":{"type":"string","description":"The type of this node. Available types are:\n* level: A set of targets (users or schedules) that should be paged, either all at once, or with a round-robin configuration.\n* notify_channel: Send the escalation to a Slack channel, where it can be acked by anyone in the channel.\n* if_else: Branch the escalation based on a set of conditions.\n* repeat: Go back to a previous node and repeat the logic from there.\n"}},"type":"object","required":["type"],"language":{"nodejs":{"requiredOutputs":["id","type"]}}},"incident:index/EscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseElsePathLevel:EscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseElsePathLevel":{"properties":{"ackMode":{"type":"string","description":"Controls the behaviour of acknowledgements for this level, with 'first' cancelling all other escalations on the same level when someone acks\n"},"roundRobinConfig":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseElsePathLevelRoundRobinConfig:EscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseElsePathLevelRoundRobinConfig"},"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseElsePathLevelTarget:EscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseElsePathLevelTarget"},"description":"The targets (users or schedules) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before proceeding to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["targets"],"language":{"nodejs":{"requiredOutputs":["ackMode","targets"]}}},"incident:index/EscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseElsePathLevelRoundRobinConfig:EscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseElsePathLevelRoundRobinConfig":{"properties":{"enabled":{"type":"boolean","description":"Whether round robin is enabled for this level\n"},"rotateAfterSeconds":{"type":"number","description":"How long should we wait before rotating to the next target in a round robin, if not set will stick with a single target per level.\n"}},"type":"object","required":["enabled"]},"incident:index/EscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseElsePathLevelTarget:EscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseElsePathLevelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently_on_call,\u003cspan pulumi-lang-nodejs=\" allUsers \" pulumi-lang-dotnet=\" AllUsers \" pulumi-lang-go=\" allUsers \" pulumi-lang-python=\" all_users \" pulumi-lang-yaml=\" allUsers \" pulumi-lang-java=\" allUsers \"\u003e all_users \u003c/span\u003eor\u003cspan pulumi-lang-nodejs=\" allUsersForRota \" pulumi-lang-dotnet=\" AllUsersForRota \" pulumi-lang-go=\" allUsersForRota \" pulumi-lang-python=\" all_users_for_rota \" pulumi-lang-yaml=\" allUsersForRota \" pulumi-lang-java=\" allUsersForRota \"\u003e all_users_for_rota \u003c/span\u003eand specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User. Possible values are: \u003cspan pulumi-lang-nodejs=\"`schedule`\" pulumi-lang-dotnet=\"`Schedule`\" pulumi-lang-go=\"`schedule`\" pulumi-lang-python=\"`schedule`\" pulumi-lang-yaml=\"`schedule`\" pulumi-lang-java=\"`schedule`\"\u003e`schedule`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`user`\" pulumi-lang-dotnet=\"`User`\" pulumi-lang-go=\"`user`\" pulumi-lang-python=\"`user`\" pulumi-lang-yaml=\"`user`\" pulumi-lang-java=\"`user`\"\u003e`user`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`slackChannel`\" pulumi-lang-dotnet=\"`SlackChannel`\" pulumi-lang-go=\"`slackChannel`\" pulumi-lang-python=\"`slack_channel`\" pulumi-lang-yaml=\"`slackChannel`\" pulumi-lang-java=\"`slackChannel`\"\u003e`slack_channel`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`msteamsChannel`\" pulumi-lang-dotnet=\"`MsteamsChannel`\" pulumi-lang-go=\"`msteamsChannel`\" pulumi-lang-python=\"`msteams_channel`\" pulumi-lang-yaml=\"`msteamsChannel`\" pulumi-lang-java=\"`msteamsChannel`\"\u003e`msteams_channel`\u003c/span\u003e.\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target. Possible values are: \u003cspan pulumi-lang-nodejs=\"`high`\" pulumi-lang-dotnet=\"`High`\" pulumi-lang-go=\"`high`\" pulumi-lang-python=\"`high`\" pulumi-lang-yaml=\"`high`\" pulumi-lang-java=\"`high`\"\u003e`high`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`low`\" pulumi-lang-dotnet=\"`Low`\" pulumi-lang-go=\"`low`\" pulumi-lang-python=\"`low`\" pulumi-lang-yaml=\"`low`\" pulumi-lang-java=\"`low`\"\u003e`low`\u003c/span\u003e.\n"}},"type":"object","required":["id","type","urgency"],"language":{"nodejs":{"requiredOutputs":["id","scheduleMode","type","urgency"]}}},"incident:index/EscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseElsePathNotifyChannel:EscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseElsePathNotifyChannel":{"properties":{"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseElsePathNotifyChannelTarget:EscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseElsePathNotifyChannelTarget"},"description":"The targets (Slack channels) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before moving on to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["targets"]},"incident:index/EscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseElsePathNotifyChannelTarget:EscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseElsePathNotifyChannelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently_on_call,\u003cspan pulumi-lang-nodejs=\" allUsers \" pulumi-lang-dotnet=\" AllUsers \" pulumi-lang-go=\" allUsers \" pulumi-lang-python=\" all_users \" pulumi-lang-yaml=\" allUsers \" pulumi-lang-java=\" allUsers \"\u003e all_users \u003c/span\u003eor\u003cspan pulumi-lang-nodejs=\" allUsersForRota \" pulumi-lang-dotnet=\" AllUsersForRota \" pulumi-lang-go=\" allUsersForRota \" pulumi-lang-python=\" all_users_for_rota \" pulumi-lang-yaml=\" allUsersForRota \" pulumi-lang-java=\" allUsersForRota \"\u003e all_users_for_rota \u003c/span\u003eand specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User. Possible values are: \u003cspan pulumi-lang-nodejs=\"`schedule`\" pulumi-lang-dotnet=\"`Schedule`\" pulumi-lang-go=\"`schedule`\" pulumi-lang-python=\"`schedule`\" pulumi-lang-yaml=\"`schedule`\" pulumi-lang-java=\"`schedule`\"\u003e`schedule`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`user`\" pulumi-lang-dotnet=\"`User`\" pulumi-lang-go=\"`user`\" pulumi-lang-python=\"`user`\" pulumi-lang-yaml=\"`user`\" pulumi-lang-java=\"`user`\"\u003e`user`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`slackChannel`\" pulumi-lang-dotnet=\"`SlackChannel`\" pulumi-lang-go=\"`slackChannel`\" pulumi-lang-python=\"`slack_channel`\" pulumi-lang-yaml=\"`slackChannel`\" pulumi-lang-java=\"`slackChannel`\"\u003e`slack_channel`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`msteamsChannel`\" pulumi-lang-dotnet=\"`MsteamsChannel`\" pulumi-lang-go=\"`msteamsChannel`\" pulumi-lang-python=\"`msteams_channel`\" pulumi-lang-yaml=\"`msteamsChannel`\" pulumi-lang-java=\"`msteamsChannel`\"\u003e`msteams_channel`\u003c/span\u003e.\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target. Possible values are: \u003cspan pulumi-lang-nodejs=\"`high`\" pulumi-lang-dotnet=\"`High`\" pulumi-lang-go=\"`high`\" pulumi-lang-python=\"`high`\" pulumi-lang-yaml=\"`high`\" pulumi-lang-java=\"`high`\"\u003e`high`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`low`\" pulumi-lang-dotnet=\"`Low`\" pulumi-lang-go=\"`low`\" pulumi-lang-python=\"`low`\" pulumi-lang-yaml=\"`low`\" pulumi-lang-java=\"`low`\"\u003e`low`\u003c/span\u003e.\n"}},"type":"object","required":["id","type","urgency"],"language":{"nodejs":{"requiredOutputs":["id","scheduleMode","type","urgency"]}}},"incident:index/EscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseElsePathRepeat:EscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseElsePathRepeat":{"properties":{"repeatTimes":{"type":"number","description":"How many times to repeat these nodes\n"},"toNode":{"type":"string","description":"Which node ID we begin repeating from.\n"}},"type":"object","required":["repeatTimes","toNode"]},"incident:index/EscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseThenPath:EscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseThenPath":{"properties":{"id":{"type":"string","description":"An ID for this node, unique within the escalation path.\n\nThis allows you to reference the node in other nodes, such as when configuring a 'repeat' node.\n"},"level":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseThenPathLevel:EscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseThenPathLevel"},"notifyChannel":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseThenPathNotifyChannel:EscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseThenPathNotifyChannel"},"repeat":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseThenPathRepeat:EscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseThenPathRepeat"},"type":{"type":"string","description":"The type of this node. Available types are:\n* level: A set of targets (users or schedules) that should be paged, either all at once, or with a round-robin configuration.\n* notify_channel: Send the escalation to a Slack channel, where it can be acked by anyone in the channel.\n* if_else: Branch the escalation based on a set of conditions.\n* repeat: Go back to a previous node and repeat the logic from there.\n"}},"type":"object","required":["type"],"language":{"nodejs":{"requiredOutputs":["id","type"]}}},"incident:index/EscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseThenPathLevel:EscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseThenPathLevel":{"properties":{"ackMode":{"type":"string","description":"Controls the behaviour of acknowledgements for this level, with 'first' cancelling all other escalations on the same level when someone acks\n"},"roundRobinConfig":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseThenPathLevelRoundRobinConfig:EscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseThenPathLevelRoundRobinConfig"},"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseThenPathLevelTarget:EscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseThenPathLevelTarget"},"description":"The targets (users or schedules) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before proceeding to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["targets"],"language":{"nodejs":{"requiredOutputs":["ackMode","targets"]}}},"incident:index/EscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseThenPathLevelRoundRobinConfig:EscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseThenPathLevelRoundRobinConfig":{"properties":{"enabled":{"type":"boolean","description":"Whether round robin is enabled for this level\n"},"rotateAfterSeconds":{"type":"number","description":"How long should we wait before rotating to the next target in a round robin, if not set will stick with a single target per level.\n"}},"type":"object","required":["enabled"]},"incident:index/EscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseThenPathLevelTarget:EscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseThenPathLevelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently_on_call,\u003cspan pulumi-lang-nodejs=\" allUsers \" pulumi-lang-dotnet=\" AllUsers \" pulumi-lang-go=\" allUsers \" pulumi-lang-python=\" all_users \" pulumi-lang-yaml=\" allUsers \" pulumi-lang-java=\" allUsers \"\u003e all_users \u003c/span\u003eor\u003cspan pulumi-lang-nodejs=\" allUsersForRota \" pulumi-lang-dotnet=\" AllUsersForRota \" pulumi-lang-go=\" allUsersForRota \" pulumi-lang-python=\" all_users_for_rota \" pulumi-lang-yaml=\" allUsersForRota \" pulumi-lang-java=\" allUsersForRota \"\u003e all_users_for_rota \u003c/span\u003eand specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User. Possible values are: \u003cspan pulumi-lang-nodejs=\"`schedule`\" pulumi-lang-dotnet=\"`Schedule`\" pulumi-lang-go=\"`schedule`\" pulumi-lang-python=\"`schedule`\" pulumi-lang-yaml=\"`schedule`\" pulumi-lang-java=\"`schedule`\"\u003e`schedule`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`user`\" pulumi-lang-dotnet=\"`User`\" pulumi-lang-go=\"`user`\" pulumi-lang-python=\"`user`\" pulumi-lang-yaml=\"`user`\" pulumi-lang-java=\"`user`\"\u003e`user`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`slackChannel`\" pulumi-lang-dotnet=\"`SlackChannel`\" pulumi-lang-go=\"`slackChannel`\" pulumi-lang-python=\"`slack_channel`\" pulumi-lang-yaml=\"`slackChannel`\" pulumi-lang-java=\"`slackChannel`\"\u003e`slack_channel`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`msteamsChannel`\" pulumi-lang-dotnet=\"`MsteamsChannel`\" pulumi-lang-go=\"`msteamsChannel`\" pulumi-lang-python=\"`msteams_channel`\" pulumi-lang-yaml=\"`msteamsChannel`\" pulumi-lang-java=\"`msteamsChannel`\"\u003e`msteams_channel`\u003c/span\u003e.\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target. Possible values are: \u003cspan pulumi-lang-nodejs=\"`high`\" pulumi-lang-dotnet=\"`High`\" pulumi-lang-go=\"`high`\" pulumi-lang-python=\"`high`\" pulumi-lang-yaml=\"`high`\" pulumi-lang-java=\"`high`\"\u003e`high`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`low`\" pulumi-lang-dotnet=\"`Low`\" pulumi-lang-go=\"`low`\" pulumi-lang-python=\"`low`\" pulumi-lang-yaml=\"`low`\" pulumi-lang-java=\"`low`\"\u003e`low`\u003c/span\u003e.\n"}},"type":"object","required":["id","type","urgency"],"language":{"nodejs":{"requiredOutputs":["id","scheduleMode","type","urgency"]}}},"incident:index/EscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseThenPathNotifyChannel:EscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseThenPathNotifyChannel":{"properties":{"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseThenPathNotifyChannelTarget:EscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseThenPathNotifyChannelTarget"},"description":"The targets (Slack channels) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before moving on to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["targets"]},"incident:index/EscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseThenPathNotifyChannelTarget:EscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseThenPathNotifyChannelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently_on_call,\u003cspan pulumi-lang-nodejs=\" allUsers \" pulumi-lang-dotnet=\" AllUsers \" pulumi-lang-go=\" allUsers \" pulumi-lang-python=\" all_users \" pulumi-lang-yaml=\" allUsers \" pulumi-lang-java=\" allUsers \"\u003e all_users \u003c/span\u003eor\u003cspan pulumi-lang-nodejs=\" allUsersForRota \" pulumi-lang-dotnet=\" AllUsersForRota \" pulumi-lang-go=\" allUsersForRota \" pulumi-lang-python=\" all_users_for_rota \" pulumi-lang-yaml=\" allUsersForRota \" pulumi-lang-java=\" allUsersForRota \"\u003e all_users_for_rota \u003c/span\u003eand specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User. Possible values are: \u003cspan pulumi-lang-nodejs=\"`schedule`\" pulumi-lang-dotnet=\"`Schedule`\" pulumi-lang-go=\"`schedule`\" pulumi-lang-python=\"`schedule`\" pulumi-lang-yaml=\"`schedule`\" pulumi-lang-java=\"`schedule`\"\u003e`schedule`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`user`\" pulumi-lang-dotnet=\"`User`\" pulumi-lang-go=\"`user`\" pulumi-lang-python=\"`user`\" pulumi-lang-yaml=\"`user`\" pulumi-lang-java=\"`user`\"\u003e`user`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`slackChannel`\" pulumi-lang-dotnet=\"`SlackChannel`\" pulumi-lang-go=\"`slackChannel`\" pulumi-lang-python=\"`slack_channel`\" pulumi-lang-yaml=\"`slackChannel`\" pulumi-lang-java=\"`slackChannel`\"\u003e`slack_channel`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`msteamsChannel`\" pulumi-lang-dotnet=\"`MsteamsChannel`\" pulumi-lang-go=\"`msteamsChannel`\" pulumi-lang-python=\"`msteams_channel`\" pulumi-lang-yaml=\"`msteamsChannel`\" pulumi-lang-java=\"`msteamsChannel`\"\u003e`msteams_channel`\u003c/span\u003e.\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target. Possible values are: \u003cspan pulumi-lang-nodejs=\"`high`\" pulumi-lang-dotnet=\"`High`\" pulumi-lang-go=\"`high`\" pulumi-lang-python=\"`high`\" pulumi-lang-yaml=\"`high`\" pulumi-lang-java=\"`high`\"\u003e`high`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`low`\" pulumi-lang-dotnet=\"`Low`\" pulumi-lang-go=\"`low`\" pulumi-lang-python=\"`low`\" pulumi-lang-yaml=\"`low`\" pulumi-lang-java=\"`low`\"\u003e`low`\u003c/span\u003e.\n"}},"type":"object","required":["id","type","urgency"],"language":{"nodejs":{"requiredOutputs":["id","scheduleMode","type","urgency"]}}},"incident:index/EscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseThenPathRepeat:EscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseThenPathRepeat":{"properties":{"repeatTimes":{"type":"number","description":"How many times to repeat these nodes\n"},"toNode":{"type":"string","description":"Which node ID we begin repeating from.\n"}},"type":"object","required":["repeatTimes","toNode"]},"incident:index/EscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathLevel:EscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathLevel":{"properties":{"ackMode":{"type":"string","description":"Controls the behaviour of acknowledgements for this level, with 'first' cancelling all other escalations on the same level when someone acks\n"},"roundRobinConfig":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathLevelRoundRobinConfig:EscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathLevelRoundRobinConfig"},"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathLevelTarget:EscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathLevelTarget"},"description":"The targets (users or schedules) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before proceeding to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["targets"],"language":{"nodejs":{"requiredOutputs":["ackMode","targets"]}}},"incident:index/EscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathLevelRoundRobinConfig:EscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathLevelRoundRobinConfig":{"properties":{"enabled":{"type":"boolean","description":"Whether round robin is enabled for this level\n"},"rotateAfterSeconds":{"type":"number","description":"How long should we wait before rotating to the next target in a round robin, if not set will stick with a single target per level.\n"}},"type":"object","required":["enabled"]},"incident:index/EscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathLevelTarget:EscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathLevelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently_on_call,\u003cspan pulumi-lang-nodejs=\" allUsers \" pulumi-lang-dotnet=\" AllUsers \" pulumi-lang-go=\" allUsers \" pulumi-lang-python=\" all_users \" pulumi-lang-yaml=\" allUsers \" pulumi-lang-java=\" allUsers \"\u003e all_users \u003c/span\u003eor\u003cspan pulumi-lang-nodejs=\" allUsersForRota \" pulumi-lang-dotnet=\" AllUsersForRota \" pulumi-lang-go=\" allUsersForRota \" pulumi-lang-python=\" all_users_for_rota \" pulumi-lang-yaml=\" allUsersForRota \" pulumi-lang-java=\" allUsersForRota \"\u003e all_users_for_rota \u003c/span\u003eand specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User. Possible values are: \u003cspan pulumi-lang-nodejs=\"`schedule`\" pulumi-lang-dotnet=\"`Schedule`\" pulumi-lang-go=\"`schedule`\" pulumi-lang-python=\"`schedule`\" pulumi-lang-yaml=\"`schedule`\" pulumi-lang-java=\"`schedule`\"\u003e`schedule`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`user`\" pulumi-lang-dotnet=\"`User`\" pulumi-lang-go=\"`user`\" pulumi-lang-python=\"`user`\" pulumi-lang-yaml=\"`user`\" pulumi-lang-java=\"`user`\"\u003e`user`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`slackChannel`\" pulumi-lang-dotnet=\"`SlackChannel`\" pulumi-lang-go=\"`slackChannel`\" pulumi-lang-python=\"`slack_channel`\" pulumi-lang-yaml=\"`slackChannel`\" pulumi-lang-java=\"`slackChannel`\"\u003e`slack_channel`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`msteamsChannel`\" pulumi-lang-dotnet=\"`MsteamsChannel`\" pulumi-lang-go=\"`msteamsChannel`\" pulumi-lang-python=\"`msteams_channel`\" pulumi-lang-yaml=\"`msteamsChannel`\" pulumi-lang-java=\"`msteamsChannel`\"\u003e`msteams_channel`\u003c/span\u003e.\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target. Possible values are: \u003cspan pulumi-lang-nodejs=\"`high`\" pulumi-lang-dotnet=\"`High`\" pulumi-lang-go=\"`high`\" pulumi-lang-python=\"`high`\" pulumi-lang-yaml=\"`high`\" pulumi-lang-java=\"`high`\"\u003e`high`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`low`\" pulumi-lang-dotnet=\"`Low`\" pulumi-lang-go=\"`low`\" pulumi-lang-python=\"`low`\" pulumi-lang-yaml=\"`low`\" pulumi-lang-java=\"`low`\"\u003e`low`\u003c/span\u003e.\n"}},"type":"object","required":["id","type","urgency"],"language":{"nodejs":{"requiredOutputs":["id","scheduleMode","type","urgency"]}}},"incident:index/EscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathNotifyChannel:EscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathNotifyChannel":{"properties":{"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathNotifyChannelTarget:EscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathNotifyChannelTarget"},"description":"The targets (Slack channels) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before moving on to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["targets"]},"incident:index/EscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathNotifyChannelTarget:EscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathNotifyChannelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently_on_call,\u003cspan pulumi-lang-nodejs=\" allUsers \" pulumi-lang-dotnet=\" AllUsers \" pulumi-lang-go=\" allUsers \" pulumi-lang-python=\" all_users \" pulumi-lang-yaml=\" allUsers \" pulumi-lang-java=\" allUsers \"\u003e all_users \u003c/span\u003eor\u003cspan pulumi-lang-nodejs=\" allUsersForRota \" pulumi-lang-dotnet=\" AllUsersForRota \" pulumi-lang-go=\" allUsersForRota \" pulumi-lang-python=\" all_users_for_rota \" pulumi-lang-yaml=\" allUsersForRota \" pulumi-lang-java=\" allUsersForRota \"\u003e all_users_for_rota \u003c/span\u003eand specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User. Possible values are: \u003cspan pulumi-lang-nodejs=\"`schedule`\" pulumi-lang-dotnet=\"`Schedule`\" pulumi-lang-go=\"`schedule`\" pulumi-lang-python=\"`schedule`\" pulumi-lang-yaml=\"`schedule`\" pulumi-lang-java=\"`schedule`\"\u003e`schedule`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`user`\" pulumi-lang-dotnet=\"`User`\" pulumi-lang-go=\"`user`\" pulumi-lang-python=\"`user`\" pulumi-lang-yaml=\"`user`\" pulumi-lang-java=\"`user`\"\u003e`user`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`slackChannel`\" pulumi-lang-dotnet=\"`SlackChannel`\" pulumi-lang-go=\"`slackChannel`\" pulumi-lang-python=\"`slack_channel`\" pulumi-lang-yaml=\"`slackChannel`\" pulumi-lang-java=\"`slackChannel`\"\u003e`slack_channel`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`msteamsChannel`\" pulumi-lang-dotnet=\"`MsteamsChannel`\" pulumi-lang-go=\"`msteamsChannel`\" pulumi-lang-python=\"`msteams_channel`\" pulumi-lang-yaml=\"`msteamsChannel`\" pulumi-lang-java=\"`msteamsChannel`\"\u003e`msteams_channel`\u003c/span\u003e.\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target. Possible values are: \u003cspan pulumi-lang-nodejs=\"`high`\" pulumi-lang-dotnet=\"`High`\" pulumi-lang-go=\"`high`\" pulumi-lang-python=\"`high`\" pulumi-lang-yaml=\"`high`\" pulumi-lang-java=\"`high`\"\u003e`high`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`low`\" pulumi-lang-dotnet=\"`Low`\" pulumi-lang-go=\"`low`\" pulumi-lang-python=\"`low`\" pulumi-lang-yaml=\"`low`\" pulumi-lang-java=\"`low`\"\u003e`low`\u003c/span\u003e.\n"}},"type":"object","required":["id","type","urgency"],"language":{"nodejs":{"requiredOutputs":["id","scheduleMode","type","urgency"]}}},"incident:index/EscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathRepeat:EscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathRepeat":{"properties":{"repeatTimes":{"type":"number","description":"How many times to repeat these nodes\n"},"toNode":{"type":"string","description":"Which node ID we begin repeating from.\n"}},"type":"object","required":["repeatTimes","toNode"]},"incident:index/EscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPath:EscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPath":{"properties":{"id":{"type":"string","description":"An ID for this node, unique within the escalation path.\n\nThis allows you to reference the node in other nodes, such as when configuring a 'repeat' node.\n"},"ifElse":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElse:EscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElse"},"level":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathLevel:EscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathLevel"},"notifyChannel":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathNotifyChannel:EscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathNotifyChannel"},"repeat":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathRepeat:EscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathRepeat"},"type":{"type":"string","description":"The type of this node. Available types are:\n* level: A set of targets (users or schedules) that should be paged, either all at once, or with a round-robin configuration.\n* notify_channel: Send the escalation to a Slack channel, where it can be acked by anyone in the channel.\n* if_else: Branch the escalation based on a set of conditions.\n* repeat: Go back to a previous node and repeat the logic from there.\n"}},"type":"object","required":["type"],"language":{"nodejs":{"requiredOutputs":["id","type"]}}},"incident:index/EscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElse:EscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElse":{"properties":{"conditions":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseCondition:EscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseCondition"},"description":"The prerequisite conditions that must all be satisfied\n"},"elsePaths":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseElsePath:EscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseElsePath"},"description":"The nodes that form the levels if our condition is not met\n"},"thenPaths":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseThenPath:EscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseThenPath"},"description":"Then path nodes\n"}},"type":"object","required":["conditions","thenPaths"]},"incident:index/EscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseCondition:EscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseCondition":{"properties":{"operation":{"type":"string","description":"The logical operation to be applied\n"},"paramBindings":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseConditionParamBinding:EscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseConditionParamBinding"},"description":"Bindings for the operation parameters\n"},"subject":{"type":"string","description":"The subject of the condition, on which the operation is applied\n"}},"type":"object","required":["operation","paramBindings","subject"]},"incident:index/EscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseConditionParamBinding:EscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseConditionParamBinding":{"properties":{"arrayValues":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseConditionParamBindingArrayValue:EscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseConditionParamBindingArrayValue"},"description":"The array of literal or reference parameter values\n"},"value":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseConditionParamBindingValue:EscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseConditionParamBindingValue","description":"The literal or reference parameter value\n"}},"type":"object"},"incident:index/EscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseConditionParamBindingArrayValue:EscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseConditionParamBindingArrayValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object"},"incident:index/EscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseConditionParamBindingValue:EscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseConditionParamBindingValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object"},"incident:index/EscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseElsePath:EscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseElsePath":{"properties":{"id":{"type":"string","description":"An ID for this node, unique within the escalation path.\n\nThis allows you to reference the node in other nodes, such as when configuring a 'repeat' node.\n"},"level":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseElsePathLevel:EscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseElsePathLevel"},"notifyChannel":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseElsePathNotifyChannel:EscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseElsePathNotifyChannel"},"repeat":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseElsePathRepeat:EscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseElsePathRepeat"},"type":{"type":"string","description":"The type of this node. Available types are:\n* level: A set of targets (users or schedules) that should be paged, either all at once, or with a round-robin configuration.\n* notify_channel: Send the escalation to a Slack channel, where it can be acked by anyone in the channel.\n* if_else: Branch the escalation based on a set of conditions.\n* repeat: Go back to a previous node and repeat the logic from there.\n"}},"type":"object","required":["type"],"language":{"nodejs":{"requiredOutputs":["id","type"]}}},"incident:index/EscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseElsePathLevel:EscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseElsePathLevel":{"properties":{"ackMode":{"type":"string","description":"Controls the behaviour of acknowledgements for this level, with 'first' cancelling all other escalations on the same level when someone acks\n"},"roundRobinConfig":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseElsePathLevelRoundRobinConfig:EscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseElsePathLevelRoundRobinConfig"},"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseElsePathLevelTarget:EscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseElsePathLevelTarget"},"description":"The targets (users or schedules) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before proceeding to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["targets"],"language":{"nodejs":{"requiredOutputs":["ackMode","targets"]}}},"incident:index/EscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseElsePathLevelRoundRobinConfig:EscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseElsePathLevelRoundRobinConfig":{"properties":{"enabled":{"type":"boolean","description":"Whether round robin is enabled for this level\n"},"rotateAfterSeconds":{"type":"number","description":"How long should we wait before rotating to the next target in a round robin, if not set will stick with a single target per level.\n"}},"type":"object","required":["enabled"]},"incident:index/EscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseElsePathLevelTarget:EscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseElsePathLevelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently_on_call,\u003cspan pulumi-lang-nodejs=\" allUsers \" pulumi-lang-dotnet=\" AllUsers \" pulumi-lang-go=\" allUsers \" pulumi-lang-python=\" all_users \" pulumi-lang-yaml=\" allUsers \" pulumi-lang-java=\" allUsers \"\u003e all_users \u003c/span\u003eor\u003cspan pulumi-lang-nodejs=\" allUsersForRota \" pulumi-lang-dotnet=\" AllUsersForRota \" pulumi-lang-go=\" allUsersForRota \" pulumi-lang-python=\" all_users_for_rota \" pulumi-lang-yaml=\" allUsersForRota \" pulumi-lang-java=\" allUsersForRota \"\u003e all_users_for_rota \u003c/span\u003eand specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User. Possible values are: \u003cspan pulumi-lang-nodejs=\"`schedule`\" pulumi-lang-dotnet=\"`Schedule`\" pulumi-lang-go=\"`schedule`\" pulumi-lang-python=\"`schedule`\" pulumi-lang-yaml=\"`schedule`\" pulumi-lang-java=\"`schedule`\"\u003e`schedule`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`user`\" pulumi-lang-dotnet=\"`User`\" pulumi-lang-go=\"`user`\" pulumi-lang-python=\"`user`\" pulumi-lang-yaml=\"`user`\" pulumi-lang-java=\"`user`\"\u003e`user`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`slackChannel`\" pulumi-lang-dotnet=\"`SlackChannel`\" pulumi-lang-go=\"`slackChannel`\" pulumi-lang-python=\"`slack_channel`\" pulumi-lang-yaml=\"`slackChannel`\" pulumi-lang-java=\"`slackChannel`\"\u003e`slack_channel`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`msteamsChannel`\" pulumi-lang-dotnet=\"`MsteamsChannel`\" pulumi-lang-go=\"`msteamsChannel`\" pulumi-lang-python=\"`msteams_channel`\" pulumi-lang-yaml=\"`msteamsChannel`\" pulumi-lang-java=\"`msteamsChannel`\"\u003e`msteams_channel`\u003c/span\u003e.\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target. Possible values are: \u003cspan pulumi-lang-nodejs=\"`high`\" pulumi-lang-dotnet=\"`High`\" pulumi-lang-go=\"`high`\" pulumi-lang-python=\"`high`\" pulumi-lang-yaml=\"`high`\" pulumi-lang-java=\"`high`\"\u003e`high`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`low`\" pulumi-lang-dotnet=\"`Low`\" pulumi-lang-go=\"`low`\" pulumi-lang-python=\"`low`\" pulumi-lang-yaml=\"`low`\" pulumi-lang-java=\"`low`\"\u003e`low`\u003c/span\u003e.\n"}},"type":"object","required":["id","type","urgency"],"language":{"nodejs":{"requiredOutputs":["id","scheduleMode","type","urgency"]}}},"incident:index/EscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseElsePathNotifyChannel:EscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseElsePathNotifyChannel":{"properties":{"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseElsePathNotifyChannelTarget:EscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseElsePathNotifyChannelTarget"},"description":"The targets (Slack channels) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before moving on to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["targets"]},"incident:index/EscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseElsePathNotifyChannelTarget:EscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseElsePathNotifyChannelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently_on_call,\u003cspan pulumi-lang-nodejs=\" allUsers \" pulumi-lang-dotnet=\" AllUsers \" pulumi-lang-go=\" allUsers \" pulumi-lang-python=\" all_users \" pulumi-lang-yaml=\" allUsers \" pulumi-lang-java=\" allUsers \"\u003e all_users \u003c/span\u003eor\u003cspan pulumi-lang-nodejs=\" allUsersForRota \" pulumi-lang-dotnet=\" AllUsersForRota \" pulumi-lang-go=\" allUsersForRota \" pulumi-lang-python=\" all_users_for_rota \" pulumi-lang-yaml=\" allUsersForRota \" pulumi-lang-java=\" allUsersForRota \"\u003e all_users_for_rota \u003c/span\u003eand specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User. Possible values are: \u003cspan pulumi-lang-nodejs=\"`schedule`\" pulumi-lang-dotnet=\"`Schedule`\" pulumi-lang-go=\"`schedule`\" pulumi-lang-python=\"`schedule`\" pulumi-lang-yaml=\"`schedule`\" pulumi-lang-java=\"`schedule`\"\u003e`schedule`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`user`\" pulumi-lang-dotnet=\"`User`\" pulumi-lang-go=\"`user`\" pulumi-lang-python=\"`user`\" pulumi-lang-yaml=\"`user`\" pulumi-lang-java=\"`user`\"\u003e`user`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`slackChannel`\" pulumi-lang-dotnet=\"`SlackChannel`\" pulumi-lang-go=\"`slackChannel`\" pulumi-lang-python=\"`slack_channel`\" pulumi-lang-yaml=\"`slackChannel`\" pulumi-lang-java=\"`slackChannel`\"\u003e`slack_channel`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`msteamsChannel`\" pulumi-lang-dotnet=\"`MsteamsChannel`\" pulumi-lang-go=\"`msteamsChannel`\" pulumi-lang-python=\"`msteams_channel`\" pulumi-lang-yaml=\"`msteamsChannel`\" pulumi-lang-java=\"`msteamsChannel`\"\u003e`msteams_channel`\u003c/span\u003e.\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target. Possible values are: \u003cspan pulumi-lang-nodejs=\"`high`\" pulumi-lang-dotnet=\"`High`\" pulumi-lang-go=\"`high`\" pulumi-lang-python=\"`high`\" pulumi-lang-yaml=\"`high`\" pulumi-lang-java=\"`high`\"\u003e`high`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`low`\" pulumi-lang-dotnet=\"`Low`\" pulumi-lang-go=\"`low`\" pulumi-lang-python=\"`low`\" pulumi-lang-yaml=\"`low`\" pulumi-lang-java=\"`low`\"\u003e`low`\u003c/span\u003e.\n"}},"type":"object","required":["id","type","urgency"],"language":{"nodejs":{"requiredOutputs":["id","scheduleMode","type","urgency"]}}},"incident:index/EscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseElsePathRepeat:EscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseElsePathRepeat":{"properties":{"repeatTimes":{"type":"number","description":"How many times to repeat these nodes\n"},"toNode":{"type":"string","description":"Which node ID we begin repeating from.\n"}},"type":"object","required":["repeatTimes","toNode"]},"incident:index/EscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseThenPath:EscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseThenPath":{"properties":{"id":{"type":"string","description":"An ID for this node, unique within the escalation path.\n\nThis allows you to reference the node in other nodes, such as when configuring a 'repeat' node.\n"},"level":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseThenPathLevel:EscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseThenPathLevel"},"notifyChannel":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseThenPathNotifyChannel:EscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseThenPathNotifyChannel"},"repeat":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseThenPathRepeat:EscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseThenPathRepeat"},"type":{"type":"string","description":"The type of this node. Available types are:\n* level: A set of targets (users or schedules) that should be paged, either all at once, or with a round-robin configuration.\n* notify_channel: Send the escalation to a Slack channel, where it can be acked by anyone in the channel.\n* if_else: Branch the escalation based on a set of conditions.\n* repeat: Go back to a previous node and repeat the logic from there.\n"}},"type":"object","required":["type"],"language":{"nodejs":{"requiredOutputs":["id","type"]}}},"incident:index/EscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseThenPathLevel:EscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseThenPathLevel":{"properties":{"ackMode":{"type":"string","description":"Controls the behaviour of acknowledgements for this level, with 'first' cancelling all other escalations on the same level when someone acks\n"},"roundRobinConfig":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseThenPathLevelRoundRobinConfig:EscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseThenPathLevelRoundRobinConfig"},"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseThenPathLevelTarget:EscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseThenPathLevelTarget"},"description":"The targets (users or schedules) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before proceeding to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["targets"],"language":{"nodejs":{"requiredOutputs":["ackMode","targets"]}}},"incident:index/EscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseThenPathLevelRoundRobinConfig:EscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseThenPathLevelRoundRobinConfig":{"properties":{"enabled":{"type":"boolean","description":"Whether round robin is enabled for this level\n"},"rotateAfterSeconds":{"type":"number","description":"How long should we wait before rotating to the next target in a round robin, if not set will stick with a single target per level.\n"}},"type":"object","required":["enabled"]},"incident:index/EscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseThenPathLevelTarget:EscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseThenPathLevelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently_on_call,\u003cspan pulumi-lang-nodejs=\" allUsers \" pulumi-lang-dotnet=\" AllUsers \" pulumi-lang-go=\" allUsers \" pulumi-lang-python=\" all_users \" pulumi-lang-yaml=\" allUsers \" pulumi-lang-java=\" allUsers \"\u003e all_users \u003c/span\u003eor\u003cspan pulumi-lang-nodejs=\" allUsersForRota \" pulumi-lang-dotnet=\" AllUsersForRota \" pulumi-lang-go=\" allUsersForRota \" pulumi-lang-python=\" all_users_for_rota \" pulumi-lang-yaml=\" allUsersForRota \" pulumi-lang-java=\" allUsersForRota \"\u003e all_users_for_rota \u003c/span\u003eand specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User. Possible values are: \u003cspan pulumi-lang-nodejs=\"`schedule`\" pulumi-lang-dotnet=\"`Schedule`\" pulumi-lang-go=\"`schedule`\" pulumi-lang-python=\"`schedule`\" pulumi-lang-yaml=\"`schedule`\" pulumi-lang-java=\"`schedule`\"\u003e`schedule`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`user`\" pulumi-lang-dotnet=\"`User`\" pulumi-lang-go=\"`user`\" pulumi-lang-python=\"`user`\" pulumi-lang-yaml=\"`user`\" pulumi-lang-java=\"`user`\"\u003e`user`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`slackChannel`\" pulumi-lang-dotnet=\"`SlackChannel`\" pulumi-lang-go=\"`slackChannel`\" pulumi-lang-python=\"`slack_channel`\" pulumi-lang-yaml=\"`slackChannel`\" pulumi-lang-java=\"`slackChannel`\"\u003e`slack_channel`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`msteamsChannel`\" pulumi-lang-dotnet=\"`MsteamsChannel`\" pulumi-lang-go=\"`msteamsChannel`\" pulumi-lang-python=\"`msteams_channel`\" pulumi-lang-yaml=\"`msteamsChannel`\" pulumi-lang-java=\"`msteamsChannel`\"\u003e`msteams_channel`\u003c/span\u003e.\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target. Possible values are: \u003cspan pulumi-lang-nodejs=\"`high`\" pulumi-lang-dotnet=\"`High`\" pulumi-lang-go=\"`high`\" pulumi-lang-python=\"`high`\" pulumi-lang-yaml=\"`high`\" pulumi-lang-java=\"`high`\"\u003e`high`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`low`\" pulumi-lang-dotnet=\"`Low`\" pulumi-lang-go=\"`low`\" pulumi-lang-python=\"`low`\" pulumi-lang-yaml=\"`low`\" pulumi-lang-java=\"`low`\"\u003e`low`\u003c/span\u003e.\n"}},"type":"object","required":["id","type","urgency"],"language":{"nodejs":{"requiredOutputs":["id","scheduleMode","type","urgency"]}}},"incident:index/EscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseThenPathNotifyChannel:EscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseThenPathNotifyChannel":{"properties":{"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseThenPathNotifyChannelTarget:EscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseThenPathNotifyChannelTarget"},"description":"The targets (Slack channels) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before moving on to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["targets"]},"incident:index/EscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseThenPathNotifyChannelTarget:EscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseThenPathNotifyChannelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently_on_call,\u003cspan pulumi-lang-nodejs=\" allUsers \" pulumi-lang-dotnet=\" AllUsers \" pulumi-lang-go=\" allUsers \" pulumi-lang-python=\" all_users \" pulumi-lang-yaml=\" allUsers \" pulumi-lang-java=\" allUsers \"\u003e all_users \u003c/span\u003eor\u003cspan pulumi-lang-nodejs=\" allUsersForRota \" pulumi-lang-dotnet=\" AllUsersForRota \" pulumi-lang-go=\" allUsersForRota \" pulumi-lang-python=\" all_users_for_rota \" pulumi-lang-yaml=\" allUsersForRota \" pulumi-lang-java=\" allUsersForRota \"\u003e all_users_for_rota \u003c/span\u003eand specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User. Possible values are: \u003cspan pulumi-lang-nodejs=\"`schedule`\" pulumi-lang-dotnet=\"`Schedule`\" pulumi-lang-go=\"`schedule`\" pulumi-lang-python=\"`schedule`\" pulumi-lang-yaml=\"`schedule`\" pulumi-lang-java=\"`schedule`\"\u003e`schedule`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`user`\" pulumi-lang-dotnet=\"`User`\" pulumi-lang-go=\"`user`\" pulumi-lang-python=\"`user`\" pulumi-lang-yaml=\"`user`\" pulumi-lang-java=\"`user`\"\u003e`user`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`slackChannel`\" pulumi-lang-dotnet=\"`SlackChannel`\" pulumi-lang-go=\"`slackChannel`\" pulumi-lang-python=\"`slack_channel`\" pulumi-lang-yaml=\"`slackChannel`\" pulumi-lang-java=\"`slackChannel`\"\u003e`slack_channel`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`msteamsChannel`\" pulumi-lang-dotnet=\"`MsteamsChannel`\" pulumi-lang-go=\"`msteamsChannel`\" pulumi-lang-python=\"`msteams_channel`\" pulumi-lang-yaml=\"`msteamsChannel`\" pulumi-lang-java=\"`msteamsChannel`\"\u003e`msteams_channel`\u003c/span\u003e.\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target. Possible values are: \u003cspan pulumi-lang-nodejs=\"`high`\" pulumi-lang-dotnet=\"`High`\" pulumi-lang-go=\"`high`\" pulumi-lang-python=\"`high`\" pulumi-lang-yaml=\"`high`\" pulumi-lang-java=\"`high`\"\u003e`high`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`low`\" pulumi-lang-dotnet=\"`Low`\" pulumi-lang-go=\"`low`\" pulumi-lang-python=\"`low`\" pulumi-lang-yaml=\"`low`\" pulumi-lang-java=\"`low`\"\u003e`low`\u003c/span\u003e.\n"}},"type":"object","required":["id","type","urgency"],"language":{"nodejs":{"requiredOutputs":["id","scheduleMode","type","urgency"]}}},"incident:index/EscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseThenPathRepeat:EscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseThenPathRepeat":{"properties":{"repeatTimes":{"type":"number","description":"How many times to repeat these nodes\n"},"toNode":{"type":"string","description":"Which node ID we begin repeating from.\n"}},"type":"object","required":["repeatTimes","toNode"]},"incident:index/EscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathLevel:EscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathLevel":{"properties":{"ackMode":{"type":"string","description":"Controls the behaviour of acknowledgements for this level, with 'first' cancelling all other escalations on the same level when someone acks\n"},"roundRobinConfig":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathLevelRoundRobinConfig:EscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathLevelRoundRobinConfig"},"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathLevelTarget:EscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathLevelTarget"},"description":"The targets (users or schedules) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before proceeding to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["targets"],"language":{"nodejs":{"requiredOutputs":["ackMode","targets"]}}},"incident:index/EscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathLevelRoundRobinConfig:EscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathLevelRoundRobinConfig":{"properties":{"enabled":{"type":"boolean","description":"Whether round robin is enabled for this level\n"},"rotateAfterSeconds":{"type":"number","description":"How long should we wait before rotating to the next target in a round robin, if not set will stick with a single target per level.\n"}},"type":"object","required":["enabled"]},"incident:index/EscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathLevelTarget:EscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathLevelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently_on_call,\u003cspan pulumi-lang-nodejs=\" allUsers \" pulumi-lang-dotnet=\" AllUsers \" pulumi-lang-go=\" allUsers \" pulumi-lang-python=\" all_users \" pulumi-lang-yaml=\" allUsers \" pulumi-lang-java=\" allUsers \"\u003e all_users \u003c/span\u003eor\u003cspan pulumi-lang-nodejs=\" allUsersForRota \" pulumi-lang-dotnet=\" AllUsersForRota \" pulumi-lang-go=\" allUsersForRota \" pulumi-lang-python=\" all_users_for_rota \" pulumi-lang-yaml=\" allUsersForRota \" pulumi-lang-java=\" allUsersForRota \"\u003e all_users_for_rota \u003c/span\u003eand specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User. Possible values are: \u003cspan pulumi-lang-nodejs=\"`schedule`\" pulumi-lang-dotnet=\"`Schedule`\" pulumi-lang-go=\"`schedule`\" pulumi-lang-python=\"`schedule`\" pulumi-lang-yaml=\"`schedule`\" pulumi-lang-java=\"`schedule`\"\u003e`schedule`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`user`\" pulumi-lang-dotnet=\"`User`\" pulumi-lang-go=\"`user`\" pulumi-lang-python=\"`user`\" pulumi-lang-yaml=\"`user`\" pulumi-lang-java=\"`user`\"\u003e`user`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`slackChannel`\" pulumi-lang-dotnet=\"`SlackChannel`\" pulumi-lang-go=\"`slackChannel`\" pulumi-lang-python=\"`slack_channel`\" pulumi-lang-yaml=\"`slackChannel`\" pulumi-lang-java=\"`slackChannel`\"\u003e`slack_channel`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`msteamsChannel`\" pulumi-lang-dotnet=\"`MsteamsChannel`\" pulumi-lang-go=\"`msteamsChannel`\" pulumi-lang-python=\"`msteams_channel`\" pulumi-lang-yaml=\"`msteamsChannel`\" pulumi-lang-java=\"`msteamsChannel`\"\u003e`msteams_channel`\u003c/span\u003e.\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target. Possible values are: \u003cspan pulumi-lang-nodejs=\"`high`\" pulumi-lang-dotnet=\"`High`\" pulumi-lang-go=\"`high`\" pulumi-lang-python=\"`high`\" pulumi-lang-yaml=\"`high`\" pulumi-lang-java=\"`high`\"\u003e`high`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`low`\" pulumi-lang-dotnet=\"`Low`\" pulumi-lang-go=\"`low`\" pulumi-lang-python=\"`low`\" pulumi-lang-yaml=\"`low`\" pulumi-lang-java=\"`low`\"\u003e`low`\u003c/span\u003e.\n"}},"type":"object","required":["id","type","urgency"],"language":{"nodejs":{"requiredOutputs":["id","scheduleMode","type","urgency"]}}},"incident:index/EscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathNotifyChannel:EscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathNotifyChannel":{"properties":{"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathNotifyChannelTarget:EscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathNotifyChannelTarget"},"description":"The targets (Slack channels) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before moving on to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["targets"]},"incident:index/EscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathNotifyChannelTarget:EscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathNotifyChannelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently_on_call,\u003cspan pulumi-lang-nodejs=\" allUsers \" pulumi-lang-dotnet=\" AllUsers \" pulumi-lang-go=\" allUsers \" pulumi-lang-python=\" all_users \" pulumi-lang-yaml=\" allUsers \" pulumi-lang-java=\" allUsers \"\u003e all_users \u003c/span\u003eor\u003cspan pulumi-lang-nodejs=\" allUsersForRota \" pulumi-lang-dotnet=\" AllUsersForRota \" pulumi-lang-go=\" allUsersForRota \" pulumi-lang-python=\" all_users_for_rota \" pulumi-lang-yaml=\" allUsersForRota \" pulumi-lang-java=\" allUsersForRota \"\u003e all_users_for_rota \u003c/span\u003eand specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User. Possible values are: \u003cspan pulumi-lang-nodejs=\"`schedule`\" pulumi-lang-dotnet=\"`Schedule`\" pulumi-lang-go=\"`schedule`\" pulumi-lang-python=\"`schedule`\" pulumi-lang-yaml=\"`schedule`\" pulumi-lang-java=\"`schedule`\"\u003e`schedule`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`user`\" pulumi-lang-dotnet=\"`User`\" pulumi-lang-go=\"`user`\" pulumi-lang-python=\"`user`\" pulumi-lang-yaml=\"`user`\" pulumi-lang-java=\"`user`\"\u003e`user`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`slackChannel`\" pulumi-lang-dotnet=\"`SlackChannel`\" pulumi-lang-go=\"`slackChannel`\" pulumi-lang-python=\"`slack_channel`\" pulumi-lang-yaml=\"`slackChannel`\" pulumi-lang-java=\"`slackChannel`\"\u003e`slack_channel`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`msteamsChannel`\" pulumi-lang-dotnet=\"`MsteamsChannel`\" pulumi-lang-go=\"`msteamsChannel`\" pulumi-lang-python=\"`msteams_channel`\" pulumi-lang-yaml=\"`msteamsChannel`\" pulumi-lang-java=\"`msteamsChannel`\"\u003e`msteams_channel`\u003c/span\u003e.\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target. Possible values are: \u003cspan pulumi-lang-nodejs=\"`high`\" pulumi-lang-dotnet=\"`High`\" pulumi-lang-go=\"`high`\" pulumi-lang-python=\"`high`\" pulumi-lang-yaml=\"`high`\" pulumi-lang-java=\"`high`\"\u003e`high`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`low`\" pulumi-lang-dotnet=\"`Low`\" pulumi-lang-go=\"`low`\" pulumi-lang-python=\"`low`\" pulumi-lang-yaml=\"`low`\" pulumi-lang-java=\"`low`\"\u003e`low`\u003c/span\u003e.\n"}},"type":"object","required":["id","type","urgency"],"language":{"nodejs":{"requiredOutputs":["id","scheduleMode","type","urgency"]}}},"incident:index/EscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathRepeat:EscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathRepeat":{"properties":{"repeatTimes":{"type":"number","description":"How many times to repeat these nodes\n"},"toNode":{"type":"string","description":"Which node ID we begin repeating from.\n"}},"type":"object","required":["repeatTimes","toNode"]},"incident:index/EscalationPathPathIfElseThenPathIfElseThenPathLevel:EscalationPathPathIfElseThenPathIfElseThenPathLevel":{"properties":{"ackMode":{"type":"string","description":"Controls the behaviour of acknowledgements for this level, with 'first' cancelling all other escalations on the same level when someone acks\n"},"roundRobinConfig":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseThenPathLevelRoundRobinConfig:EscalationPathPathIfElseThenPathIfElseThenPathLevelRoundRobinConfig"},"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseThenPathLevelTarget:EscalationPathPathIfElseThenPathIfElseThenPathLevelTarget"},"description":"The targets (users or schedules) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before proceeding to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["targets"],"language":{"nodejs":{"requiredOutputs":["ackMode","targets"]}}},"incident:index/EscalationPathPathIfElseThenPathIfElseThenPathLevelRoundRobinConfig:EscalationPathPathIfElseThenPathIfElseThenPathLevelRoundRobinConfig":{"properties":{"enabled":{"type":"boolean","description":"Whether round robin is enabled for this level\n"},"rotateAfterSeconds":{"type":"number","description":"How long should we wait before rotating to the next target in a round robin, if not set will stick with a single target per level.\n"}},"type":"object","required":["enabled"]},"incident:index/EscalationPathPathIfElseThenPathIfElseThenPathLevelTarget:EscalationPathPathIfElseThenPathIfElseThenPathLevelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently_on_call,\u003cspan pulumi-lang-nodejs=\" allUsers \" pulumi-lang-dotnet=\" AllUsers \" pulumi-lang-go=\" allUsers \" pulumi-lang-python=\" all_users \" pulumi-lang-yaml=\" allUsers \" pulumi-lang-java=\" allUsers \"\u003e all_users \u003c/span\u003eor\u003cspan pulumi-lang-nodejs=\" allUsersForRota \" pulumi-lang-dotnet=\" AllUsersForRota \" pulumi-lang-go=\" allUsersForRota \" pulumi-lang-python=\" all_users_for_rota \" pulumi-lang-yaml=\" allUsersForRota \" pulumi-lang-java=\" allUsersForRota \"\u003e all_users_for_rota \u003c/span\u003eand specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User. Possible values are: \u003cspan pulumi-lang-nodejs=\"`schedule`\" pulumi-lang-dotnet=\"`Schedule`\" pulumi-lang-go=\"`schedule`\" pulumi-lang-python=\"`schedule`\" pulumi-lang-yaml=\"`schedule`\" pulumi-lang-java=\"`schedule`\"\u003e`schedule`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`user`\" pulumi-lang-dotnet=\"`User`\" pulumi-lang-go=\"`user`\" pulumi-lang-python=\"`user`\" pulumi-lang-yaml=\"`user`\" pulumi-lang-java=\"`user`\"\u003e`user`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`slackChannel`\" pulumi-lang-dotnet=\"`SlackChannel`\" pulumi-lang-go=\"`slackChannel`\" pulumi-lang-python=\"`slack_channel`\" pulumi-lang-yaml=\"`slackChannel`\" pulumi-lang-java=\"`slackChannel`\"\u003e`slack_channel`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`msteamsChannel`\" pulumi-lang-dotnet=\"`MsteamsChannel`\" pulumi-lang-go=\"`msteamsChannel`\" pulumi-lang-python=\"`msteams_channel`\" pulumi-lang-yaml=\"`msteamsChannel`\" pulumi-lang-java=\"`msteamsChannel`\"\u003e`msteams_channel`\u003c/span\u003e.\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target. Possible values are: \u003cspan pulumi-lang-nodejs=\"`high`\" pulumi-lang-dotnet=\"`High`\" pulumi-lang-go=\"`high`\" pulumi-lang-python=\"`high`\" pulumi-lang-yaml=\"`high`\" pulumi-lang-java=\"`high`\"\u003e`high`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`low`\" pulumi-lang-dotnet=\"`Low`\" pulumi-lang-go=\"`low`\" pulumi-lang-python=\"`low`\" pulumi-lang-yaml=\"`low`\" pulumi-lang-java=\"`low`\"\u003e`low`\u003c/span\u003e.\n"}},"type":"object","required":["id","type","urgency"],"language":{"nodejs":{"requiredOutputs":["id","scheduleMode","type","urgency"]}}},"incident:index/EscalationPathPathIfElseThenPathIfElseThenPathNotifyChannel:EscalationPathPathIfElseThenPathIfElseThenPathNotifyChannel":{"properties":{"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathIfElseThenPathNotifyChannelTarget:EscalationPathPathIfElseThenPathIfElseThenPathNotifyChannelTarget"},"description":"The targets (Slack channels) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before moving on to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["targets"]},"incident:index/EscalationPathPathIfElseThenPathIfElseThenPathNotifyChannelTarget:EscalationPathPathIfElseThenPathIfElseThenPathNotifyChannelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently_on_call,\u003cspan pulumi-lang-nodejs=\" allUsers \" pulumi-lang-dotnet=\" AllUsers \" pulumi-lang-go=\" allUsers \" pulumi-lang-python=\" all_users \" pulumi-lang-yaml=\" allUsers \" pulumi-lang-java=\" allUsers \"\u003e all_users \u003c/span\u003eor\u003cspan pulumi-lang-nodejs=\" allUsersForRota \" pulumi-lang-dotnet=\" AllUsersForRota \" pulumi-lang-go=\" allUsersForRota \" pulumi-lang-python=\" all_users_for_rota \" pulumi-lang-yaml=\" allUsersForRota \" pulumi-lang-java=\" allUsersForRota \"\u003e all_users_for_rota \u003c/span\u003eand specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User. Possible values are: \u003cspan pulumi-lang-nodejs=\"`schedule`\" pulumi-lang-dotnet=\"`Schedule`\" pulumi-lang-go=\"`schedule`\" pulumi-lang-python=\"`schedule`\" pulumi-lang-yaml=\"`schedule`\" pulumi-lang-java=\"`schedule`\"\u003e`schedule`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`user`\" pulumi-lang-dotnet=\"`User`\" pulumi-lang-go=\"`user`\" pulumi-lang-python=\"`user`\" pulumi-lang-yaml=\"`user`\" pulumi-lang-java=\"`user`\"\u003e`user`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`slackChannel`\" pulumi-lang-dotnet=\"`SlackChannel`\" pulumi-lang-go=\"`slackChannel`\" pulumi-lang-python=\"`slack_channel`\" pulumi-lang-yaml=\"`slackChannel`\" pulumi-lang-java=\"`slackChannel`\"\u003e`slack_channel`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`msteamsChannel`\" pulumi-lang-dotnet=\"`MsteamsChannel`\" pulumi-lang-go=\"`msteamsChannel`\" pulumi-lang-python=\"`msteams_channel`\" pulumi-lang-yaml=\"`msteamsChannel`\" pulumi-lang-java=\"`msteamsChannel`\"\u003e`msteams_channel`\u003c/span\u003e.\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target. Possible values are: \u003cspan pulumi-lang-nodejs=\"`high`\" pulumi-lang-dotnet=\"`High`\" pulumi-lang-go=\"`high`\" pulumi-lang-python=\"`high`\" pulumi-lang-yaml=\"`high`\" pulumi-lang-java=\"`high`\"\u003e`high`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`low`\" pulumi-lang-dotnet=\"`Low`\" pulumi-lang-go=\"`low`\" pulumi-lang-python=\"`low`\" pulumi-lang-yaml=\"`low`\" pulumi-lang-java=\"`low`\"\u003e`low`\u003c/span\u003e.\n"}},"type":"object","required":["id","type","urgency"],"language":{"nodejs":{"requiredOutputs":["id","scheduleMode","type","urgency"]}}},"incident:index/EscalationPathPathIfElseThenPathIfElseThenPathRepeat:EscalationPathPathIfElseThenPathIfElseThenPathRepeat":{"properties":{"repeatTimes":{"type":"number","description":"How many times to repeat these nodes\n"},"toNode":{"type":"string","description":"Which node ID we begin repeating from.\n"}},"type":"object","required":["repeatTimes","toNode"]},"incident:index/EscalationPathPathIfElseThenPathLevel:EscalationPathPathIfElseThenPathLevel":{"properties":{"ackMode":{"type":"string","description":"Controls the behaviour of acknowledgements for this level, with 'first' cancelling all other escalations on the same level when someone acks\n"},"roundRobinConfig":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathLevelRoundRobinConfig:EscalationPathPathIfElseThenPathLevelRoundRobinConfig"},"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathLevelTarget:EscalationPathPathIfElseThenPathLevelTarget"},"description":"The targets (users or schedules) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before proceeding to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["targets"],"language":{"nodejs":{"requiredOutputs":["ackMode","targets"]}}},"incident:index/EscalationPathPathIfElseThenPathLevelRoundRobinConfig:EscalationPathPathIfElseThenPathLevelRoundRobinConfig":{"properties":{"enabled":{"type":"boolean","description":"Whether round robin is enabled for this level\n"},"rotateAfterSeconds":{"type":"number","description":"How long should we wait before rotating to the next target in a round robin, if not set will stick with a single target per level.\n"}},"type":"object","required":["enabled"]},"incident:index/EscalationPathPathIfElseThenPathLevelTarget:EscalationPathPathIfElseThenPathLevelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently_on_call,\u003cspan pulumi-lang-nodejs=\" allUsers \" pulumi-lang-dotnet=\" AllUsers \" pulumi-lang-go=\" allUsers \" pulumi-lang-python=\" all_users \" pulumi-lang-yaml=\" allUsers \" pulumi-lang-java=\" allUsers \"\u003e all_users \u003c/span\u003eor\u003cspan pulumi-lang-nodejs=\" allUsersForRota \" pulumi-lang-dotnet=\" AllUsersForRota \" pulumi-lang-go=\" allUsersForRota \" pulumi-lang-python=\" all_users_for_rota \" pulumi-lang-yaml=\" allUsersForRota \" pulumi-lang-java=\" allUsersForRota \"\u003e all_users_for_rota \u003c/span\u003eand specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User. Possible values are: \u003cspan pulumi-lang-nodejs=\"`schedule`\" pulumi-lang-dotnet=\"`Schedule`\" pulumi-lang-go=\"`schedule`\" pulumi-lang-python=\"`schedule`\" pulumi-lang-yaml=\"`schedule`\" pulumi-lang-java=\"`schedule`\"\u003e`schedule`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`user`\" pulumi-lang-dotnet=\"`User`\" pulumi-lang-go=\"`user`\" pulumi-lang-python=\"`user`\" pulumi-lang-yaml=\"`user`\" pulumi-lang-java=\"`user`\"\u003e`user`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`slackChannel`\" pulumi-lang-dotnet=\"`SlackChannel`\" pulumi-lang-go=\"`slackChannel`\" pulumi-lang-python=\"`slack_channel`\" pulumi-lang-yaml=\"`slackChannel`\" pulumi-lang-java=\"`slackChannel`\"\u003e`slack_channel`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`msteamsChannel`\" pulumi-lang-dotnet=\"`MsteamsChannel`\" pulumi-lang-go=\"`msteamsChannel`\" pulumi-lang-python=\"`msteams_channel`\" pulumi-lang-yaml=\"`msteamsChannel`\" pulumi-lang-java=\"`msteamsChannel`\"\u003e`msteams_channel`\u003c/span\u003e.\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target. Possible values are: \u003cspan pulumi-lang-nodejs=\"`high`\" pulumi-lang-dotnet=\"`High`\" pulumi-lang-go=\"`high`\" pulumi-lang-python=\"`high`\" pulumi-lang-yaml=\"`high`\" pulumi-lang-java=\"`high`\"\u003e`high`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`low`\" pulumi-lang-dotnet=\"`Low`\" pulumi-lang-go=\"`low`\" pulumi-lang-python=\"`low`\" pulumi-lang-yaml=\"`low`\" pulumi-lang-java=\"`low`\"\u003e`low`\u003c/span\u003e.\n"}},"type":"object","required":["id","type","urgency"],"language":{"nodejs":{"requiredOutputs":["id","scheduleMode","type","urgency"]}}},"incident:index/EscalationPathPathIfElseThenPathNotifyChannel:EscalationPathPathIfElseThenPathNotifyChannel":{"properties":{"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathIfElseThenPathNotifyChannelTarget:EscalationPathPathIfElseThenPathNotifyChannelTarget"},"description":"The targets (Slack channels) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before moving on to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["targets"]},"incident:index/EscalationPathPathIfElseThenPathNotifyChannelTarget:EscalationPathPathIfElseThenPathNotifyChannelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently_on_call,\u003cspan pulumi-lang-nodejs=\" allUsers \" pulumi-lang-dotnet=\" AllUsers \" pulumi-lang-go=\" allUsers \" pulumi-lang-python=\" all_users \" pulumi-lang-yaml=\" allUsers \" pulumi-lang-java=\" allUsers \"\u003e all_users \u003c/span\u003eor\u003cspan pulumi-lang-nodejs=\" allUsersForRota \" pulumi-lang-dotnet=\" AllUsersForRota \" pulumi-lang-go=\" allUsersForRota \" pulumi-lang-python=\" all_users_for_rota \" pulumi-lang-yaml=\" allUsersForRota \" pulumi-lang-java=\" allUsersForRota \"\u003e all_users_for_rota \u003c/span\u003eand specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User. Possible values are: \u003cspan pulumi-lang-nodejs=\"`schedule`\" pulumi-lang-dotnet=\"`Schedule`\" pulumi-lang-go=\"`schedule`\" pulumi-lang-python=\"`schedule`\" pulumi-lang-yaml=\"`schedule`\" pulumi-lang-java=\"`schedule`\"\u003e`schedule`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`user`\" pulumi-lang-dotnet=\"`User`\" pulumi-lang-go=\"`user`\" pulumi-lang-python=\"`user`\" pulumi-lang-yaml=\"`user`\" pulumi-lang-java=\"`user`\"\u003e`user`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`slackChannel`\" pulumi-lang-dotnet=\"`SlackChannel`\" pulumi-lang-go=\"`slackChannel`\" pulumi-lang-python=\"`slack_channel`\" pulumi-lang-yaml=\"`slackChannel`\" pulumi-lang-java=\"`slackChannel`\"\u003e`slack_channel`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`msteamsChannel`\" pulumi-lang-dotnet=\"`MsteamsChannel`\" pulumi-lang-go=\"`msteamsChannel`\" pulumi-lang-python=\"`msteams_channel`\" pulumi-lang-yaml=\"`msteamsChannel`\" pulumi-lang-java=\"`msteamsChannel`\"\u003e`msteams_channel`\u003c/span\u003e.\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target. Possible values are: \u003cspan pulumi-lang-nodejs=\"`high`\" pulumi-lang-dotnet=\"`High`\" pulumi-lang-go=\"`high`\" pulumi-lang-python=\"`high`\" pulumi-lang-yaml=\"`high`\" pulumi-lang-java=\"`high`\"\u003e`high`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`low`\" pulumi-lang-dotnet=\"`Low`\" pulumi-lang-go=\"`low`\" pulumi-lang-python=\"`low`\" pulumi-lang-yaml=\"`low`\" pulumi-lang-java=\"`low`\"\u003e`low`\u003c/span\u003e.\n"}},"type":"object","required":["id","type","urgency"],"language":{"nodejs":{"requiredOutputs":["id","scheduleMode","type","urgency"]}}},"incident:index/EscalationPathPathIfElseThenPathRepeat:EscalationPathPathIfElseThenPathRepeat":{"properties":{"repeatTimes":{"type":"number","description":"How many times to repeat these nodes\n"},"toNode":{"type":"string","description":"Which node ID we begin repeating from.\n"}},"type":"object","required":["repeatTimes","toNode"]},"incident:index/EscalationPathPathLevel:EscalationPathPathLevel":{"properties":{"ackMode":{"type":"string","description":"Controls the behaviour of acknowledgements for this level, with 'first' cancelling all other escalations on the same level when someone acks\n"},"roundRobinConfig":{"$ref":"#/types/incident:index%2FEscalationPathPathLevelRoundRobinConfig:EscalationPathPathLevelRoundRobinConfig"},"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathLevelTarget:EscalationPathPathLevelTarget"},"description":"The targets (users or schedules) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before proceeding to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["targets"],"language":{"nodejs":{"requiredOutputs":["ackMode","targets"]}}},"incident:index/EscalationPathPathLevelRoundRobinConfig:EscalationPathPathLevelRoundRobinConfig":{"properties":{"enabled":{"type":"boolean","description":"Whether round robin is enabled for this level\n"},"rotateAfterSeconds":{"type":"number","description":"How long should we wait before rotating to the next target in a round robin, if not set will stick with a single target per level.\n"}},"type":"object","required":["enabled"]},"incident:index/EscalationPathPathLevelTarget:EscalationPathPathLevelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently_on_call,\u003cspan pulumi-lang-nodejs=\" allUsers \" pulumi-lang-dotnet=\" AllUsers \" pulumi-lang-go=\" allUsers \" pulumi-lang-python=\" all_users \" pulumi-lang-yaml=\" allUsers \" pulumi-lang-java=\" allUsers \"\u003e all_users \u003c/span\u003eor\u003cspan pulumi-lang-nodejs=\" allUsersForRota \" pulumi-lang-dotnet=\" AllUsersForRota \" pulumi-lang-go=\" allUsersForRota \" pulumi-lang-python=\" all_users_for_rota \" pulumi-lang-yaml=\" allUsersForRota \" pulumi-lang-java=\" allUsersForRota \"\u003e all_users_for_rota \u003c/span\u003eand specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User. Possible values are: \u003cspan pulumi-lang-nodejs=\"`schedule`\" pulumi-lang-dotnet=\"`Schedule`\" pulumi-lang-go=\"`schedule`\" pulumi-lang-python=\"`schedule`\" pulumi-lang-yaml=\"`schedule`\" pulumi-lang-java=\"`schedule`\"\u003e`schedule`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`user`\" pulumi-lang-dotnet=\"`User`\" pulumi-lang-go=\"`user`\" pulumi-lang-python=\"`user`\" pulumi-lang-yaml=\"`user`\" pulumi-lang-java=\"`user`\"\u003e`user`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`slackChannel`\" pulumi-lang-dotnet=\"`SlackChannel`\" pulumi-lang-go=\"`slackChannel`\" pulumi-lang-python=\"`slack_channel`\" pulumi-lang-yaml=\"`slackChannel`\" pulumi-lang-java=\"`slackChannel`\"\u003e`slack_channel`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`msteamsChannel`\" pulumi-lang-dotnet=\"`MsteamsChannel`\" pulumi-lang-go=\"`msteamsChannel`\" pulumi-lang-python=\"`msteams_channel`\" pulumi-lang-yaml=\"`msteamsChannel`\" pulumi-lang-java=\"`msteamsChannel`\"\u003e`msteams_channel`\u003c/span\u003e.\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target. Possible values are: \u003cspan pulumi-lang-nodejs=\"`high`\" pulumi-lang-dotnet=\"`High`\" pulumi-lang-go=\"`high`\" pulumi-lang-python=\"`high`\" pulumi-lang-yaml=\"`high`\" pulumi-lang-java=\"`high`\"\u003e`high`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`low`\" pulumi-lang-dotnet=\"`Low`\" pulumi-lang-go=\"`low`\" pulumi-lang-python=\"`low`\" pulumi-lang-yaml=\"`low`\" pulumi-lang-java=\"`low`\"\u003e`low`\u003c/span\u003e.\n"}},"type":"object","required":["id","type","urgency"],"language":{"nodejs":{"requiredOutputs":["id","scheduleMode","type","urgency"]}}},"incident:index/EscalationPathPathNotifyChannel:EscalationPathPathNotifyChannel":{"properties":{"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPathNotifyChannelTarget:EscalationPathPathNotifyChannelTarget"},"description":"The targets (Slack channels) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before moving on to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["targets"]},"incident:index/EscalationPathPathNotifyChannelTarget:EscalationPathPathNotifyChannelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently_on_call,\u003cspan pulumi-lang-nodejs=\" allUsers \" pulumi-lang-dotnet=\" AllUsers \" pulumi-lang-go=\" allUsers \" pulumi-lang-python=\" all_users \" pulumi-lang-yaml=\" allUsers \" pulumi-lang-java=\" allUsers \"\u003e all_users \u003c/span\u003eor\u003cspan pulumi-lang-nodejs=\" allUsersForRota \" pulumi-lang-dotnet=\" AllUsersForRota \" pulumi-lang-go=\" allUsersForRota \" pulumi-lang-python=\" all_users_for_rota \" pulumi-lang-yaml=\" allUsersForRota \" pulumi-lang-java=\" allUsersForRota \"\u003e all_users_for_rota \u003c/span\u003eand specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User. Possible values are: \u003cspan pulumi-lang-nodejs=\"`schedule`\" pulumi-lang-dotnet=\"`Schedule`\" pulumi-lang-go=\"`schedule`\" pulumi-lang-python=\"`schedule`\" pulumi-lang-yaml=\"`schedule`\" pulumi-lang-java=\"`schedule`\"\u003e`schedule`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`user`\" pulumi-lang-dotnet=\"`User`\" pulumi-lang-go=\"`user`\" pulumi-lang-python=\"`user`\" pulumi-lang-yaml=\"`user`\" pulumi-lang-java=\"`user`\"\u003e`user`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`slackChannel`\" pulumi-lang-dotnet=\"`SlackChannel`\" pulumi-lang-go=\"`slackChannel`\" pulumi-lang-python=\"`slack_channel`\" pulumi-lang-yaml=\"`slackChannel`\" pulumi-lang-java=\"`slackChannel`\"\u003e`slack_channel`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`msteamsChannel`\" pulumi-lang-dotnet=\"`MsteamsChannel`\" pulumi-lang-go=\"`msteamsChannel`\" pulumi-lang-python=\"`msteams_channel`\" pulumi-lang-yaml=\"`msteamsChannel`\" pulumi-lang-java=\"`msteamsChannel`\"\u003e`msteams_channel`\u003c/span\u003e.\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target. Possible values are: \u003cspan pulumi-lang-nodejs=\"`high`\" pulumi-lang-dotnet=\"`High`\" pulumi-lang-go=\"`high`\" pulumi-lang-python=\"`high`\" pulumi-lang-yaml=\"`high`\" pulumi-lang-java=\"`high`\"\u003e`high`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`low`\" pulumi-lang-dotnet=\"`Low`\" pulumi-lang-go=\"`low`\" pulumi-lang-python=\"`low`\" pulumi-lang-yaml=\"`low`\" pulumi-lang-java=\"`low`\"\u003e`low`\u003c/span\u003e.\n"}},"type":"object","required":["id","type","urgency"],"language":{"nodejs":{"requiredOutputs":["id","scheduleMode","type","urgency"]}}},"incident:index/EscalationPathPathRepeat:EscalationPathPathRepeat":{"properties":{"repeatTimes":{"type":"number","description":"How many times to repeat these nodes\n"},"toNode":{"type":"string","description":"Which node ID we begin repeating from.\n"}},"type":"object","required":["repeatTimes","toNode"]},"incident:index/EscalationPathWorkingHour:EscalationPathWorkingHour":{"properties":{"id":{"type":"string","description":"The unique identifier for this set of working intervals\n"},"name":{"type":"string","description":"A human readable label for this set of working intervals\n"},"timezone":{"type":"string","description":"How to interpret all the intervals\n"},"weekdayIntervals":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathWorkingHourWeekdayInterval:EscalationPathWorkingHourWeekdayInterval"}}},"type":"object","required":["id","name","timezone","weekdayIntervals"]},"incident:index/EscalationPathWorkingHourWeekdayInterval:EscalationPathWorkingHourWeekdayInterval":{"properties":{"endTime":{"type":"string","description":"End time of the interval, in 24hr format\n"},"startTime":{"type":"string","description":"Start time of the interval, in 24hr format\n"},"weekday":{"type":"string","description":"Weekdays for use within a schedule or escalation path\n"}},"type":"object","required":["endTime","startTime","weekday"]},"incident:index/ScheduleHolidaysPublicConfig:ScheduleHolidaysPublicConfig":{"properties":{"countryCodes":{"type":"array","items":{"type":"string"},"description":"ISO 3166-1 alpha-2 country codes for the countries that this schedule is configured to view holidays for\n"}},"type":"object","required":["countryCodes"]},"incident:index/ScheduleRotation:ScheduleRotation":{"properties":{"id":{"type":"string","description":"Unique internal ID of the rotation\n"},"name":{"type":"string","description":"Human readable name synced from external provider\n"},"versions":{"type":"array","items":{"$ref":"#/types/incident:index%2FScheduleRotationVersion:ScheduleRotationVersion"}}},"type":"object","required":["id","name","versions"]},"incident:index/ScheduleRotationVersion:ScheduleRotationVersion":{"properties":{"effectiveFrom":{"type":"string","description":"When this rotation config will be effective from\n"},"handoverStartAt":{"type":"string","description":"Defines the next moment we'll trigger a handover\n"},"handovers":{"type":"array","items":{"$ref":"#/types/incident:index%2FScheduleRotationVersionHandover:ScheduleRotationVersionHandover"},"description":"Defines the handover intervals for this rota, in order they should apply\n"},"layers":{"type":"array","items":{"$ref":"#/types/incident:index%2FScheduleRotationVersionLayer:ScheduleRotationVersionLayer"},"description":"Controls how many people are on-call concurrently\n"},"users":{"type":"array","items":{"type":"string"},"description":"The incident.io ID of a user\n"},"workingIntervals":{"type":"array","items":{"$ref":"#/types/incident:index%2FScheduleRotationVersionWorkingInterval:ScheduleRotationVersionWorkingInterval"},"description":"Optional restrictions that define when to schedule people for this rota\n"}},"type":"object","required":["handoverStartAt","handovers","layers","users"]},"incident:index/ScheduleRotationVersionHandover:ScheduleRotationVersionHandover":{"properties":{"interval":{"type":"number"},"intervalType":{"type":"string","description":"How often a handover occurs. Possible values are: \u003cspan pulumi-lang-nodejs=\"`hourly`\" pulumi-lang-dotnet=\"`Hourly`\" pulumi-lang-go=\"`hourly`\" pulumi-lang-python=\"`hourly`\" pulumi-lang-yaml=\"`hourly`\" pulumi-lang-java=\"`hourly`\"\u003e`hourly`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`daily`\" pulumi-lang-dotnet=\"`Daily`\" pulumi-lang-go=\"`daily`\" pulumi-lang-python=\"`daily`\" pulumi-lang-yaml=\"`daily`\" pulumi-lang-java=\"`daily`\"\u003e`daily`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`weekly`\" pulumi-lang-dotnet=\"`Weekly`\" pulumi-lang-go=\"`weekly`\" pulumi-lang-python=\"`weekly`\" pulumi-lang-yaml=\"`weekly`\" pulumi-lang-java=\"`weekly`\"\u003e`weekly`\u003c/span\u003e.\n"}},"type":"object","required":["interval","intervalType"]},"incident:index/ScheduleRotationVersionLayer:ScheduleRotationVersionLayer":{"properties":{"id":{"type":"string"},"name":{"type":"string"}},"type":"object","required":["id","name"]},"incident:index/ScheduleRotationVersionWorkingInterval:ScheduleRotationVersionWorkingInterval":{"properties":{"endTime":{"type":"string"},"startTime":{"type":"string"},"weekday":{"type":"string"}},"type":"object","required":["endTime","startTime","weekday"]},"incident:index/WorkflowConditionGroup:WorkflowConditionGroup":{"properties":{"conditions":{"type":"array","items":{"$ref":"#/types/incident:index%2FWorkflowConditionGroupCondition:WorkflowConditionGroupCondition"},"description":"The prerequisite conditions that must all be satisfied\n"}},"type":"object","required":["conditions"]},"incident:index/WorkflowConditionGroupCondition:WorkflowConditionGroupCondition":{"properties":{"operation":{"type":"string","description":"The logical operation to be applied\n"},"paramBindings":{"type":"array","items":{"$ref":"#/types/incident:index%2FWorkflowConditionGroupConditionParamBinding:WorkflowConditionGroupConditionParamBinding"},"description":"Bindings for the operation parameters\n"},"subject":{"type":"string","description":"The subject of the condition, on which the operation is applied\n"}},"type":"object","required":["operation","paramBindings","subject"]},"incident:index/WorkflowConditionGroupConditionParamBinding:WorkflowConditionGroupConditionParamBinding":{"properties":{"arrayValues":{"type":"array","items":{"$ref":"#/types/incident:index%2FWorkflowConditionGroupConditionParamBindingArrayValue:WorkflowConditionGroupConditionParamBindingArrayValue"},"description":"The array of literal or reference parameter values\n"},"value":{"$ref":"#/types/incident:index%2FWorkflowConditionGroupConditionParamBindingValue:WorkflowConditionGroupConditionParamBindingValue","description":"The literal or reference parameter value\n"}},"type":"object"},"incident:index/WorkflowConditionGroupConditionParamBindingArrayValue:WorkflowConditionGroupConditionParamBindingArrayValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object"},"incident:index/WorkflowConditionGroupConditionParamBindingValue:WorkflowConditionGroupConditionParamBindingValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object"},"incident:index/WorkflowDelay:WorkflowDelay":{"properties":{"conditionsApplyOverDelay":{"type":"boolean","description":"If this workflow is delayed, whether the conditions should be rechecked between trigger firing and execution\n"},"forSeconds":{"type":"number","description":"Delay in seconds between trigger firing and running the workflow\n"}},"type":"object","required":["conditionsApplyOverDelay","forSeconds"]},"incident:index/WorkflowExpression:WorkflowExpression":{"properties":{"elseBranch":{"$ref":"#/types/incident:index%2FWorkflowExpressionElseBranch:WorkflowExpressionElseBranch","description":"The else branch to resort to if all operations fail\n"},"label":{"type":"string","description":"The human readable label of the expression\n"},"operations":{"type":"array","items":{"$ref":"#/types/incident:index%2FWorkflowExpressionOperation:WorkflowExpressionOperation"},"description":"The operations to execute in sequence for this expression\n"},"reference":{"type":"string","description":"A short ID that can be used to reference the expression\n"},"rootReference":{"type":"string","description":"The root reference for this expression (i.e. where the expression starts)\n"}},"type":"object","required":["label","operations","reference","rootReference"]},"incident:index/WorkflowExpressionElseBranch:WorkflowExpressionElseBranch":{"properties":{"result":{"$ref":"#/types/incident:index%2FWorkflowExpressionElseBranchResult:WorkflowExpressionElseBranchResult","description":"The result assumed if the else branch is reached\n"}},"type":"object","required":["result"]},"incident:index/WorkflowExpressionElseBranchResult:WorkflowExpressionElseBranchResult":{"properties":{"arrayValues":{"type":"array","items":{"$ref":"#/types/incident:index%2FWorkflowExpressionElseBranchResultArrayValue:WorkflowExpressionElseBranchResultArrayValue"},"description":"The array of literal or reference parameter values\n"},"value":{"$ref":"#/types/incident:index%2FWorkflowExpressionElseBranchResultValue:WorkflowExpressionElseBranchResultValue","description":"The literal or reference parameter value\n"}},"type":"object"},"incident:index/WorkflowExpressionElseBranchResultArrayValue:WorkflowExpressionElseBranchResultArrayValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object"},"incident:index/WorkflowExpressionElseBranchResultValue:WorkflowExpressionElseBranchResultValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object"},"incident:index/WorkflowExpressionOperation:WorkflowExpressionOperation":{"properties":{"branches":{"$ref":"#/types/incident:index%2FWorkflowExpressionOperationBranches:WorkflowExpressionOperationBranches","description":"An operation type that allows for a value to be set conditionally by a series of logical branches\n"},"filter":{"$ref":"#/types/incident:index%2FWorkflowExpressionOperationFilter:WorkflowExpressionOperationFilter","description":"An operation type that allows values to be filtered out by conditions\n"},"navigate":{"$ref":"#/types/incident:index%2FWorkflowExpressionOperationNavigate:WorkflowExpressionOperationNavigate","description":"An operation type that allows attributes of a type to be accessed by reference\n"},"operationType":{"type":"string","description":"Indicates which operation type to execute\n"},"parse":{"$ref":"#/types/incident:index%2FWorkflowExpressionOperationParse:WorkflowExpressionOperationParse","description":"An operation type that allows a value to parsed from within a JSON object\n"}},"type":"object","required":["operationType"]},"incident:index/WorkflowExpressionOperationBranches:WorkflowExpressionOperationBranches":{"properties":{"branches":{"type":"array","items":{"$ref":"#/types/incident:index%2FWorkflowExpressionOperationBranchesBranch:WorkflowExpressionOperationBranchesBranch"},"description":"The branches to apply for this operation\n"},"returns":{"$ref":"#/types/incident:index%2FWorkflowExpressionOperationBranchesReturns:WorkflowExpressionOperationBranchesReturns","description":"The return type of an operation\n"}},"type":"object","required":["branches","returns"]},"incident:index/WorkflowExpressionOperationBranchesBranch:WorkflowExpressionOperationBranchesBranch":{"properties":{"conditionGroups":{"type":"array","items":{"$ref":"#/types/incident:index%2FWorkflowExpressionOperationBranchesBranchConditionGroup:WorkflowExpressionOperationBranchesBranchConditionGroup"},"description":"Groups of prerequisite conditions. All conditions in at least one group must be satisfied\n"},"result":{"$ref":"#/types/incident:index%2FWorkflowExpressionOperationBranchesBranchResult:WorkflowExpressionOperationBranchesBranchResult","description":"The result assumed if the condition groups are satisfied\n"}},"type":"object","required":["conditionGroups","result"]},"incident:index/WorkflowExpressionOperationBranchesBranchConditionGroup:WorkflowExpressionOperationBranchesBranchConditionGroup":{"properties":{"conditions":{"type":"array","items":{"$ref":"#/types/incident:index%2FWorkflowExpressionOperationBranchesBranchConditionGroupCondition:WorkflowExpressionOperationBranchesBranchConditionGroupCondition"},"description":"The prerequisite conditions that must all be satisfied\n"}},"type":"object","required":["conditions"]},"incident:index/WorkflowExpressionOperationBranchesBranchConditionGroupCondition:WorkflowExpressionOperationBranchesBranchConditionGroupCondition":{"properties":{"operation":{"type":"string","description":"The logical operation to be applied\n"},"paramBindings":{"type":"array","items":{"$ref":"#/types/incident:index%2FWorkflowExpressionOperationBranchesBranchConditionGroupConditionParamBinding:WorkflowExpressionOperationBranchesBranchConditionGroupConditionParamBinding"},"description":"Bindings for the operation parameters\n"},"subject":{"type":"string","description":"The subject of the condition, on which the operation is applied\n"}},"type":"object","required":["operation","paramBindings","subject"]},"incident:index/WorkflowExpressionOperationBranchesBranchConditionGroupConditionParamBinding:WorkflowExpressionOperationBranchesBranchConditionGroupConditionParamBinding":{"properties":{"arrayValues":{"type":"array","items":{"$ref":"#/types/incident:index%2FWorkflowExpressionOperationBranchesBranchConditionGroupConditionParamBindingArrayValue:WorkflowExpressionOperationBranchesBranchConditionGroupConditionParamBindingArrayValue"},"description":"The array of literal or reference parameter values\n"},"value":{"$ref":"#/types/incident:index%2FWorkflowExpressionOperationBranchesBranchConditionGroupConditionParamBindingValue:WorkflowExpressionOperationBranchesBranchConditionGroupConditionParamBindingValue","description":"The literal or reference parameter value\n"}},"type":"object"},"incident:index/WorkflowExpressionOperationBranchesBranchConditionGroupConditionParamBindingArrayValue:WorkflowExpressionOperationBranchesBranchConditionGroupConditionParamBindingArrayValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object"},"incident:index/WorkflowExpressionOperationBranchesBranchConditionGroupConditionParamBindingValue:WorkflowExpressionOperationBranchesBranchConditionGroupConditionParamBindingValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object"},"incident:index/WorkflowExpressionOperationBranchesBranchResult:WorkflowExpressionOperationBranchesBranchResult":{"properties":{"arrayValues":{"type":"array","items":{"$ref":"#/types/incident:index%2FWorkflowExpressionOperationBranchesBranchResultArrayValue:WorkflowExpressionOperationBranchesBranchResultArrayValue"},"description":"The array of literal or reference parameter values\n"},"value":{"$ref":"#/types/incident:index%2FWorkflowExpressionOperationBranchesBranchResultValue:WorkflowExpressionOperationBranchesBranchResultValue","description":"The literal or reference parameter value\n"}},"type":"object"},"incident:index/WorkflowExpressionOperationBranchesBranchResultArrayValue:WorkflowExpressionOperationBranchesBranchResultArrayValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object"},"incident:index/WorkflowExpressionOperationBranchesBranchResultValue:WorkflowExpressionOperationBranchesBranchResultValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object"},"incident:index/WorkflowExpressionOperationBranchesReturns:WorkflowExpressionOperationBranchesReturns":{"properties":{"array":{"type":"boolean","description":"Whether the return value should be single or multi-value\n"},"type":{"type":"string","description":"Expected return type of this expression (what to try casting the result to)\n"}},"type":"object","required":["array","type"]},"incident:index/WorkflowExpressionOperationFilter:WorkflowExpressionOperationFilter":{"properties":{"conditionGroups":{"type":"array","items":{"$ref":"#/types/incident:index%2FWorkflowExpressionOperationFilterConditionGroup:WorkflowExpressionOperationFilterConditionGroup"},"description":"Groups of prerequisite conditions. All conditions in at least one group must be satisfied\n"}},"type":"object","required":["conditionGroups"]},"incident:index/WorkflowExpressionOperationFilterConditionGroup:WorkflowExpressionOperationFilterConditionGroup":{"properties":{"conditions":{"type":"array","items":{"$ref":"#/types/incident:index%2FWorkflowExpressionOperationFilterConditionGroupCondition:WorkflowExpressionOperationFilterConditionGroupCondition"},"description":"The prerequisite conditions that must all be satisfied\n"}},"type":"object","required":["conditions"]},"incident:index/WorkflowExpressionOperationFilterConditionGroupCondition:WorkflowExpressionOperationFilterConditionGroupCondition":{"properties":{"operation":{"type":"string","description":"The logical operation to be applied\n"},"paramBindings":{"type":"array","items":{"$ref":"#/types/incident:index%2FWorkflowExpressionOperationFilterConditionGroupConditionParamBinding:WorkflowExpressionOperationFilterConditionGroupConditionParamBinding"},"description":"Bindings for the operation parameters\n"},"subject":{"type":"string","description":"The subject of the condition, on which the operation is applied\n"}},"type":"object","required":["operation","paramBindings","subject"]},"incident:index/WorkflowExpressionOperationFilterConditionGroupConditionParamBinding:WorkflowExpressionOperationFilterConditionGroupConditionParamBinding":{"properties":{"arrayValues":{"type":"array","items":{"$ref":"#/types/incident:index%2FWorkflowExpressionOperationFilterConditionGroupConditionParamBindingArrayValue:WorkflowExpressionOperationFilterConditionGroupConditionParamBindingArrayValue"},"description":"The array of literal or reference parameter values\n"},"value":{"$ref":"#/types/incident:index%2FWorkflowExpressionOperationFilterConditionGroupConditionParamBindingValue:WorkflowExpressionOperationFilterConditionGroupConditionParamBindingValue","description":"The literal or reference parameter value\n"}},"type":"object"},"incident:index/WorkflowExpressionOperationFilterConditionGroupConditionParamBindingArrayValue:WorkflowExpressionOperationFilterConditionGroupConditionParamBindingArrayValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object"},"incident:index/WorkflowExpressionOperationFilterConditionGroupConditionParamBindingValue:WorkflowExpressionOperationFilterConditionGroupConditionParamBindingValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object"},"incident:index/WorkflowExpressionOperationNavigate:WorkflowExpressionOperationNavigate":{"properties":{"reference":{"type":"string"}},"type":"object","required":["reference"]},"incident:index/WorkflowExpressionOperationParse:WorkflowExpressionOperationParse":{"properties":{"returns":{"$ref":"#/types/incident:index%2FWorkflowExpressionOperationParseReturns:WorkflowExpressionOperationParseReturns","description":"The return type of an operation\n"},"source":{"type":"string","description":"The ES5 Javascript expression to execute\n"}},"type":"object","required":["returns","source"]},"incident:index/WorkflowExpressionOperationParseReturns:WorkflowExpressionOperationParseReturns":{"properties":{"array":{"type":"boolean","description":"Whether the return value should be single or multi-value\n"},"type":{"type":"string","description":"Expected return type of this expression (what to try casting the result to)\n"}},"type":"object","required":["array","type"]},"incident:index/WorkflowStep:WorkflowStep":{"properties":{"forEach":{"type":"string"},"id":{"type":"string"},"name":{"type":"string"},"paramBindings":{"type":"array","items":{"$ref":"#/types/incident:index%2FWorkflowStepParamBinding:WorkflowStepParamBinding"},"description":"Bindings for the operation parameters\n"}},"type":"object","required":["id","name","paramBindings"]},"incident:index/WorkflowStepParamBinding:WorkflowStepParamBinding":{"properties":{"arrayValues":{"type":"array","items":{"$ref":"#/types/incident:index%2FWorkflowStepParamBindingArrayValue:WorkflowStepParamBindingArrayValue"},"description":"The array of literal or reference parameter values\n"},"value":{"$ref":"#/types/incident:index%2FWorkflowStepParamBindingValue:WorkflowStepParamBindingValue","description":"The literal or reference parameter value\n"}},"type":"object"},"incident:index/WorkflowStepParamBindingArrayValue:WorkflowStepParamBindingArrayValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object"},"incident:index/WorkflowStepParamBindingValue:WorkflowStepParamBindingValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object"},"incident:index/getAlertSourcesAlertSource:getAlertSourcesAlertSource":{"properties":{"emailAddress":{"type":"string","description":"Email address this alert source receives alerts to\n"},"id":{"type":"string","description":"The ID of this alert source\n"},"jiraOptions":{"$ref":"#/types/incident:index%2FgetAlertSourcesAlertSourceJiraOptions:getAlertSourcesAlertSourceJiraOptions"},"name":{"type":"string","description":"Unique name of the alert source\n"},"secretToken":{"type":"string","description":"Secret token used to authenticate this source, if applicable. If applicable, this is the token that must be included in either the query string or the 'Authorization' header when sending events to this alert source.\n","secret":true},"sourceType":{"type":"string","description":"Type of alert source\n"},"template":{"$ref":"#/types/incident:index%2FgetAlertSourcesAlertSourceTemplate:getAlertSourcesAlertSourceTemplate"}},"type":"object","required":["emailAddress","id","jiraOptions","name","secretToken","sourceType","template"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getAlertSourcesAlertSourceJiraOptions:getAlertSourcesAlertSourceJiraOptions":{"properties":{"projectIds":{"type":"array","items":{"type":"string"},"description":"Which projects in Jira should this alert source watch for new issues? IDs can either be IDs of the projects in Jira, or ID of catalog entries in the 'Jira Project' catalog type.\n"}},"type":"object","required":["projectIds"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getAlertSourcesAlertSourceTemplate:getAlertSourcesAlertSourceTemplate":{"properties":{"attributes":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetAlertSourcesAlertSourceTemplateAttribute:getAlertSourcesAlertSourceTemplateAttribute"},"description":"Attributes to set on alerts coming from this source, with a binding describing how to set them.\n"},"description":{"$ref":"#/types/incident:index%2FgetAlertSourcesAlertSourceTemplateDescription:getAlertSourcesAlertSourceTemplateDescription"},"expressions":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetAlertSourcesAlertSourceTemplateExpression:getAlertSourcesAlertSourceTemplateExpression"},"description":"Expressions that make variables available in the scope\n"},"isPrivate":{"type":"boolean","description":"Whether or not alerts produced by this source should be private\n"},"title":{"$ref":"#/types/incident:index%2FgetAlertSourcesAlertSourceTemplateTitle:getAlertSourcesAlertSourceTemplateTitle"},"visibleToTeams":{"$ref":"#/types/incident:index%2FgetAlertSourcesAlertSourceTemplateVisibleToTeams:getAlertSourcesAlertSourceTemplateVisibleToTeams"}},"type":"object","required":["attributes","description","expressions","isPrivate","title","visibleToTeams"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getAlertSourcesAlertSourceTemplateAttribute:getAlertSourcesAlertSourceTemplateAttribute":{"properties":{"alertAttributeId":{"type":"string","description":"ID of the alert attribute to set with this binding\n"},"binding":{"$ref":"#/types/incident:index%2FgetAlertSourcesAlertSourceTemplateAttributeBinding:getAlertSourcesAlertSourceTemplateAttributeBinding"}},"type":"object","required":["alertAttributeId","binding"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getAlertSourcesAlertSourceTemplateAttributeBinding:getAlertSourcesAlertSourceTemplateAttributeBinding":{"properties":{"arrayValues":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetAlertSourcesAlertSourceTemplateAttributeBindingArrayValue:getAlertSourcesAlertSourceTemplateAttributeBindingArrayValue"},"description":"The array of literal or reference parameter values\n"},"mergeStrategy":{"type":"string","description":"Merge strategy for this attribute when alert updates\n"},"value":{"$ref":"#/types/incident:index%2FgetAlertSourcesAlertSourceTemplateAttributeBindingValue:getAlertSourcesAlertSourceTemplateAttributeBindingValue","description":"The literal or reference parameter value\n"}},"type":"object","required":["arrayValues","mergeStrategy","value"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getAlertSourcesAlertSourceTemplateAttributeBindingArrayValue:getAlertSourcesAlertSourceTemplateAttributeBindingArrayValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object","required":["literal","reference"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getAlertSourcesAlertSourceTemplateAttributeBindingValue:getAlertSourcesAlertSourceTemplateAttributeBindingValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object","required":["literal","reference"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getAlertSourcesAlertSourceTemplateDescription:getAlertSourcesAlertSourceTemplateDescription":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object","required":["literal","reference"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getAlertSourcesAlertSourceTemplateExpression:getAlertSourcesAlertSourceTemplateExpression":{"properties":{"elseBranch":{"$ref":"#/types/incident:index%2FgetAlertSourcesAlertSourceTemplateExpressionElseBranch:getAlertSourcesAlertSourceTemplateExpressionElseBranch"},"label":{"type":"string","description":"The human readable label of the expression\n"},"operations":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetAlertSourcesAlertSourceTemplateExpressionOperation:getAlertSourcesAlertSourceTemplateExpressionOperation"}},"reference":{"type":"string","description":"A short ID that can be used to reference the expression\n"},"rootReference":{"type":"string","description":"The root reference for this expression (i.e. where the expression starts)\n"}},"type":"object","required":["elseBranch","label","operations","reference","rootReference"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getAlertSourcesAlertSourceTemplateExpressionElseBranch:getAlertSourcesAlertSourceTemplateExpressionElseBranch":{"properties":{"result":{"$ref":"#/types/incident:index%2FgetAlertSourcesAlertSourceTemplateExpressionElseBranchResult:getAlertSourcesAlertSourceTemplateExpressionElseBranchResult"}},"type":"object","required":["result"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getAlertSourcesAlertSourceTemplateExpressionElseBranchResult:getAlertSourcesAlertSourceTemplateExpressionElseBranchResult":{"properties":{"arrayValues":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetAlertSourcesAlertSourceTemplateExpressionElseBranchResultArrayValue:getAlertSourcesAlertSourceTemplateExpressionElseBranchResultArrayValue"},"description":"If array*value is set, this helps render the values\n"},"value":{"$ref":"#/types/incident:index%2FgetAlertSourcesAlertSourceTemplateExpressionElseBranchResultValue:getAlertSourcesAlertSourceTemplateExpressionElseBranchResultValue"}},"type":"object","required":["arrayValues","value"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getAlertSourcesAlertSourceTemplateExpressionElseBranchResultArrayValue:getAlertSourcesAlertSourceTemplateExpressionElseBranchResultArrayValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object","required":["literal","reference"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getAlertSourcesAlertSourceTemplateExpressionElseBranchResultValue:getAlertSourcesAlertSourceTemplateExpressionElseBranchResultValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object","required":["literal","reference"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getAlertSourcesAlertSourceTemplateExpressionOperation:getAlertSourcesAlertSourceTemplateExpressionOperation":{"properties":{"branches":{"$ref":"#/types/incident:index%2FgetAlertSourcesAlertSourceTemplateExpressionOperationBranches:getAlertSourcesAlertSourceTemplateExpressionOperationBranches"},"filter":{"$ref":"#/types/incident:index%2FgetAlertSourcesAlertSourceTemplateExpressionOperationFilter:getAlertSourcesAlertSourceTemplateExpressionOperationFilter"},"navigate":{"$ref":"#/types/incident:index%2FgetAlertSourcesAlertSourceTemplateExpressionOperationNavigate:getAlertSourcesAlertSourceTemplateExpressionOperationNavigate"},"operationType":{"type":"string","description":"The type of the operation\n"},"parse":{"$ref":"#/types/incident:index%2FgetAlertSourcesAlertSourceTemplateExpressionOperationParse:getAlertSourcesAlertSourceTemplateExpressionOperationParse"}},"type":"object","required":["branches","filter","navigate","operationType","parse"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getAlertSourcesAlertSourceTemplateExpressionOperationBranches:getAlertSourcesAlertSourceTemplateExpressionOperationBranches":{"properties":{"branches":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetAlertSourcesAlertSourceTemplateExpressionOperationBranchesBranch:getAlertSourcesAlertSourceTemplateExpressionOperationBranchesBranch"},"description":"The branches to apply for this operation\n"},"returns":{"$ref":"#/types/incident:index%2FgetAlertSourcesAlertSourceTemplateExpressionOperationBranchesReturns:getAlertSourcesAlertSourceTemplateExpressionOperationBranchesReturns"}},"type":"object","required":["branches","returns"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getAlertSourcesAlertSourceTemplateExpressionOperationBranchesBranch:getAlertSourcesAlertSourceTemplateExpressionOperationBranchesBranch":{"properties":{"conditionGroups":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetAlertSourcesAlertSourceTemplateExpressionOperationBranchesBranchConditionGroup:getAlertSourcesAlertSourceTemplateExpressionOperationBranchesBranchConditionGroup"},"description":"The condition groups to apply in this filter. Only one group needs to be satisfied for the filter to pass.\n"},"result":{"$ref":"#/types/incident:index%2FgetAlertSourcesAlertSourceTemplateExpressionOperationBranchesBranchResult:getAlertSourcesAlertSourceTemplateExpressionOperationBranchesBranchResult"}},"type":"object","required":["conditionGroups","result"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getAlertSourcesAlertSourceTemplateExpressionOperationBranchesBranchConditionGroup:getAlertSourcesAlertSourceTemplateExpressionOperationBranchesBranchConditionGroup":{"properties":{"conditions":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetAlertSourcesAlertSourceTemplateExpressionOperationBranchesBranchConditionGroupCondition:getAlertSourcesAlertSourceTemplateExpressionOperationBranchesBranchConditionGroupCondition"},"description":"All conditions in this list must be satisfied for the group to be satisfied\n"}},"type":"object","required":["conditions"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getAlertSourcesAlertSourceTemplateExpressionOperationBranchesBranchConditionGroupCondition:getAlertSourcesAlertSourceTemplateExpressionOperationBranchesBranchConditionGroupCondition":{"properties":{"operation":{"type":"string"},"paramBindings":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetAlertSourcesAlertSourceTemplateExpressionOperationBranchesBranchConditionGroupConditionParamBinding:getAlertSourcesAlertSourceTemplateExpressionOperationBranchesBranchConditionGroupConditionParamBinding"},"description":"Bindings for the operation parameters\n"},"subject":{"type":"string"}},"type":"object","required":["operation","paramBindings","subject"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getAlertSourcesAlertSourceTemplateExpressionOperationBranchesBranchConditionGroupConditionParamBinding:getAlertSourcesAlertSourceTemplateExpressionOperationBranchesBranchConditionGroupConditionParamBinding":{"properties":{"arrayValues":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetAlertSourcesAlertSourceTemplateExpressionOperationBranchesBranchConditionGroupConditionParamBindingArrayValue:getAlertSourcesAlertSourceTemplateExpressionOperationBranchesBranchConditionGroupConditionParamBindingArrayValue"},"description":"If array*value is set, this helps render the values\n"},"value":{"$ref":"#/types/incident:index%2FgetAlertSourcesAlertSourceTemplateExpressionOperationBranchesBranchConditionGroupConditionParamBindingValue:getAlertSourcesAlertSourceTemplateExpressionOperationBranchesBranchConditionGroupConditionParamBindingValue"}},"type":"object","required":["arrayValues","value"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getAlertSourcesAlertSourceTemplateExpressionOperationBranchesBranchConditionGroupConditionParamBindingArrayValue:getAlertSourcesAlertSourceTemplateExpressionOperationBranchesBranchConditionGroupConditionParamBindingArrayValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object","required":["literal","reference"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getAlertSourcesAlertSourceTemplateExpressionOperationBranchesBranchConditionGroupConditionParamBindingValue:getAlertSourcesAlertSourceTemplateExpressionOperationBranchesBranchConditionGroupConditionParamBindingValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object","required":["literal","reference"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getAlertSourcesAlertSourceTemplateExpressionOperationBranchesBranchResult:getAlertSourcesAlertSourceTemplateExpressionOperationBranchesBranchResult":{"properties":{"arrayValues":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetAlertSourcesAlertSourceTemplateExpressionOperationBranchesBranchResultArrayValue:getAlertSourcesAlertSourceTemplateExpressionOperationBranchesBranchResultArrayValue"},"description":"If array*value is set, this helps render the values\n"},"value":{"$ref":"#/types/incident:index%2FgetAlertSourcesAlertSourceTemplateExpressionOperationBranchesBranchResultValue:getAlertSourcesAlertSourceTemplateExpressionOperationBranchesBranchResultValue"}},"type":"object","required":["arrayValues","value"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getAlertSourcesAlertSourceTemplateExpressionOperationBranchesBranchResultArrayValue:getAlertSourcesAlertSourceTemplateExpressionOperationBranchesBranchResultArrayValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object","required":["literal","reference"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getAlertSourcesAlertSourceTemplateExpressionOperationBranchesBranchResultValue:getAlertSourcesAlertSourceTemplateExpressionOperationBranchesBranchResultValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object","required":["literal","reference"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getAlertSourcesAlertSourceTemplateExpressionOperationBranchesReturns:getAlertSourcesAlertSourceTemplateExpressionOperationBranchesReturns":{"properties":{"array":{"type":"boolean","description":"Whether the return value should be single or multi-value\n"},"type":{"type":"string","description":"Expected return type of this expression (what to try casting the result to)\n"}},"type":"object","required":["array","type"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getAlertSourcesAlertSourceTemplateExpressionOperationFilter:getAlertSourcesAlertSourceTemplateExpressionOperationFilter":{"properties":{"conditionGroups":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetAlertSourcesAlertSourceTemplateExpressionOperationFilterConditionGroup:getAlertSourcesAlertSourceTemplateExpressionOperationFilterConditionGroup"},"description":"The condition groups to apply in this filter. Only one group needs to be satisfied for the filter to pass.\n"}},"type":"object","required":["conditionGroups"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getAlertSourcesAlertSourceTemplateExpressionOperationFilterConditionGroup:getAlertSourcesAlertSourceTemplateExpressionOperationFilterConditionGroup":{"properties":{"conditions":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetAlertSourcesAlertSourceTemplateExpressionOperationFilterConditionGroupCondition:getAlertSourcesAlertSourceTemplateExpressionOperationFilterConditionGroupCondition"},"description":"All conditions in this list must be satisfied for the group to be satisfied\n"}},"type":"object","required":["conditions"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getAlertSourcesAlertSourceTemplateExpressionOperationFilterConditionGroupCondition:getAlertSourcesAlertSourceTemplateExpressionOperationFilterConditionGroupCondition":{"properties":{"operation":{"type":"string"},"paramBindings":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetAlertSourcesAlertSourceTemplateExpressionOperationFilterConditionGroupConditionParamBinding:getAlertSourcesAlertSourceTemplateExpressionOperationFilterConditionGroupConditionParamBinding"},"description":"Bindings for the operation parameters\n"},"subject":{"type":"string"}},"type":"object","required":["operation","paramBindings","subject"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getAlertSourcesAlertSourceTemplateExpressionOperationFilterConditionGroupConditionParamBinding:getAlertSourcesAlertSourceTemplateExpressionOperationFilterConditionGroupConditionParamBinding":{"properties":{"arrayValues":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetAlertSourcesAlertSourceTemplateExpressionOperationFilterConditionGroupConditionParamBindingArrayValue:getAlertSourcesAlertSourceTemplateExpressionOperationFilterConditionGroupConditionParamBindingArrayValue"},"description":"If array*value is set, this helps render the values\n"},"value":{"$ref":"#/types/incident:index%2FgetAlertSourcesAlertSourceTemplateExpressionOperationFilterConditionGroupConditionParamBindingValue:getAlertSourcesAlertSourceTemplateExpressionOperationFilterConditionGroupConditionParamBindingValue"}},"type":"object","required":["arrayValues","value"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getAlertSourcesAlertSourceTemplateExpressionOperationFilterConditionGroupConditionParamBindingArrayValue:getAlertSourcesAlertSourceTemplateExpressionOperationFilterConditionGroupConditionParamBindingArrayValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object","required":["literal","reference"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getAlertSourcesAlertSourceTemplateExpressionOperationFilterConditionGroupConditionParamBindingValue:getAlertSourcesAlertSourceTemplateExpressionOperationFilterConditionGroupConditionParamBindingValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object","required":["literal","reference"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getAlertSourcesAlertSourceTemplateExpressionOperationNavigate:getAlertSourcesAlertSourceTemplateExpressionOperationNavigate":{"properties":{"reference":{"type":"string","description":"The reference within the scope to navigate to\n"}},"type":"object","required":["reference"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getAlertSourcesAlertSourceTemplateExpressionOperationParse:getAlertSourcesAlertSourceTemplateExpressionOperationParse":{"properties":{"returns":{"$ref":"#/types/incident:index%2FgetAlertSourcesAlertSourceTemplateExpressionOperationParseReturns:getAlertSourcesAlertSourceTemplateExpressionOperationParseReturns"},"source":{"type":"string","description":"Source expression that is evaluated to a result\n"}},"type":"object","required":["returns","source"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getAlertSourcesAlertSourceTemplateExpressionOperationParseReturns:getAlertSourcesAlertSourceTemplateExpressionOperationParseReturns":{"properties":{"array":{"type":"boolean","description":"Whether the return value should be single or multi-value\n"},"type":{"type":"string","description":"Expected return type of this expression (what to try casting the result to)\n"}},"type":"object","required":["array","type"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getAlertSourcesAlertSourceTemplateTitle:getAlertSourcesAlertSourceTemplateTitle":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object","required":["literal","reference"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getAlertSourcesAlertSourceTemplateVisibleToTeams:getAlertSourcesAlertSourceTemplateVisibleToTeams":{"properties":{"arrayValues":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetAlertSourcesAlertSourceTemplateVisibleToTeamsArrayValue:getAlertSourcesAlertSourceTemplateVisibleToTeamsArrayValue"},"description":"If array*value is set, this helps render the values\n"},"value":{"$ref":"#/types/incident:index%2FgetAlertSourcesAlertSourceTemplateVisibleToTeamsValue:getAlertSourcesAlertSourceTemplateVisibleToTeamsValue"}},"type":"object","required":["arrayValues","value"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getAlertSourcesAlertSourceTemplateVisibleToTeamsArrayValue:getAlertSourcesAlertSourceTemplateVisibleToTeamsArrayValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object","required":["literal","reference"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getAlertSourcesAlertSourceTemplateVisibleToTeamsValue:getAlertSourcesAlertSourceTemplateVisibleToTeamsValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object","required":["literal","reference"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getCatalogEntriesCatalogEntry:getCatalogEntriesCatalogEntry":{"properties":{"aliases":{"type":"array","items":{"type":"string"},"description":"Optional aliases that can be used to reference this entry\n"},"attributeValues":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetCatalogEntriesCatalogEntryAttributeValue:getCatalogEntriesCatalogEntryAttributeValue"}},"catalogTypeId":{"type":"string","description":"ID of this catalog type\n"},"externalId":{"type":"string","description":"An optional alternative ID for this entry, which is ensured to be unique for the type\n"},"id":{"type":"string","description":"ID of this catalog entry\n"},"name":{"type":"string","description":"Name is the human readable name of this entry\n"},"rank":{"type":"number","description":"When catalog type is ranked, this is used to help order things\n"}},"type":"object","required":["aliases","attributeValues","catalogTypeId","externalId","id","name","rank"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getCatalogEntriesCatalogEntryAttributeValue:getCatalogEntriesCatalogEntryAttributeValue":{"properties":{"arrayValues":{"type":"array","items":{"type":"string"},"description":"The value of this element of the array, in a format suitable for this attribute type.\n"},"attribute":{"type":"string","description":"The ID of this attribute.\n"},"value":{"type":"string","description":"The value of this attribute, in a format suitable for this attribute type.\n"}},"type":"object","required":["arrayValues","attribute","value"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getCatalogEntryAttributeValue:getCatalogEntryAttributeValue":{"properties":{"arrayValues":{"type":"array","items":{"type":"string"},"description":"The value of this element of the array, in a format suitable for this attribute type.\n"},"attribute":{"type":"string","description":"The ID of this attribute.\n"},"value":{"type":"string","description":"The value of this attribute, in a format suitable for this attribute type.\n"}},"type":"object","required":["arrayValues","attribute","value"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getCustomFieldFilterBy:getCustomFieldFilterBy":{"properties":{"catalogAttributeId":{"type":"string","description":"This must be an attribute of the catalog type of this custom field. It must be an attribute that points to another catalog type (so not a plain string, number, or boolean attribute).\n"},"customFieldId":{"type":"string","description":"This must be the ID of a custom field, which must have values of the same type as the attribute you are filtering by.\n"}},"type":"object","required":["catalogAttributeId","customFieldId"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPath:getEscalationPathPath":{"properties":{"id":{"type":"string","description":"An ID for this node, unique within the escalation path.\n"},"ifElse":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElse:getEscalationPathPathIfElse"},"level":{"$ref":"#/types/incident:index%2FgetEscalationPathPathLevel:getEscalationPathPathLevel"},"notifyChannel":{"$ref":"#/types/incident:index%2FgetEscalationPathPathNotifyChannel:getEscalationPathPathNotifyChannel"},"repeat":{"$ref":"#/types/incident:index%2FgetEscalationPathPathRepeat:getEscalationPathPathRepeat"},"type":{"type":"string","description":"The type of this node. Available types are:\n* level: A set of targets (users or schedules) that should be paged, either all at once, or with a round-robin configuration.\n* notify_channel: Send the escalation to a Slack channel, where it can be acked by anyone in the channel.\n* if_else: Branch the escalation based on a set of conditions.\n* repeat: Go back to a previous node and repeat the logic from there.\n"}},"type":"object","required":["id","ifElse","level","notifyChannel","repeat","type"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElse:getEscalationPathPathIfElse":{"properties":{"conditions":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseCondition:getEscalationPathPathIfElseCondition"},"description":"The prerequisite conditions that must all be satisfied\n"},"elsePaths":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePath:getEscalationPathPathIfElseElsePath"},"description":"The nodes that form the levels if our condition is not met\n"},"thenPaths":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPath:getEscalationPathPathIfElseThenPath"},"description":"Then path nodes\n"}},"type":"object","required":["conditions","elsePaths","thenPaths"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseCondition:getEscalationPathPathIfElseCondition":{"properties":{"operation":{"type":"string","description":"The logical operation to be applied\n"},"paramBindings":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseConditionParamBinding:getEscalationPathPathIfElseConditionParamBinding"},"description":"Bindings for the operation parameters\n"},"subject":{"type":"string","description":"The subject of the condition, on which the operation is applied\n"}},"type":"object","required":["operation","paramBindings","subject"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseConditionParamBinding:getEscalationPathPathIfElseConditionParamBinding":{"properties":{"arrayValues":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseConditionParamBindingArrayValue:getEscalationPathPathIfElseConditionParamBindingArrayValue"},"description":"The array of literal or reference parameter values\n"},"value":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseConditionParamBindingValue:getEscalationPathPathIfElseConditionParamBindingValue","description":"The literal or reference parameter value\n"}},"type":"object","required":["arrayValues","value"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseConditionParamBindingArrayValue:getEscalationPathPathIfElseConditionParamBindingArrayValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object","required":["literal","reference"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseConditionParamBindingValue:getEscalationPathPathIfElseConditionParamBindingValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object","required":["literal","reference"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePath:getEscalationPathPathIfElseElsePath":{"properties":{"id":{"type":"string","description":"An ID for this node, unique within the escalation path.\n"},"ifElse":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElse:getEscalationPathPathIfElseElsePathIfElse"},"level":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathLevel:getEscalationPathPathIfElseElsePathLevel"},"notifyChannel":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathNotifyChannel:getEscalationPathPathIfElseElsePathNotifyChannel"},"repeat":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathRepeat:getEscalationPathPathIfElseElsePathRepeat"},"type":{"type":"string","description":"The type of this node. Available types are:\n* level: A set of targets (users or schedules) that should be paged, either all at once, or with a round-robin configuration.\n* notify_channel: Send the escalation to a Slack channel, where it can be acked by anyone in the channel.\n* if_else: Branch the escalation based on a set of conditions.\n* repeat: Go back to a previous node and repeat the logic from there.\n"}},"type":"object","required":["id","ifElse","level","notifyChannel","repeat","type"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElse:getEscalationPathPathIfElseElsePathIfElse":{"properties":{"conditions":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseCondition:getEscalationPathPathIfElseElsePathIfElseCondition"},"description":"The prerequisite conditions that must all be satisfied\n"},"elsePaths":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseElsePath:getEscalationPathPathIfElseElsePathIfElseElsePath"},"description":"The nodes that form the levels if our condition is not met\n"},"thenPaths":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseThenPath:getEscalationPathPathIfElseElsePathIfElseThenPath"},"description":"Then path nodes\n"}},"type":"object","required":["conditions","elsePaths","thenPaths"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseCondition:getEscalationPathPathIfElseElsePathIfElseCondition":{"properties":{"operation":{"type":"string","description":"The logical operation to be applied\n"},"paramBindings":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseConditionParamBinding:getEscalationPathPathIfElseElsePathIfElseConditionParamBinding"},"description":"Bindings for the operation parameters\n"},"subject":{"type":"string","description":"The subject of the condition, on which the operation is applied\n"}},"type":"object","required":["operation","paramBindings","subject"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseConditionParamBinding:getEscalationPathPathIfElseElsePathIfElseConditionParamBinding":{"properties":{"arrayValues":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseConditionParamBindingArrayValue:getEscalationPathPathIfElseElsePathIfElseConditionParamBindingArrayValue"},"description":"The array of literal or reference parameter values\n"},"value":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseConditionParamBindingValue:getEscalationPathPathIfElseElsePathIfElseConditionParamBindingValue","description":"The literal or reference parameter value\n"}},"type":"object","required":["arrayValues","value"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseConditionParamBindingArrayValue:getEscalationPathPathIfElseElsePathIfElseConditionParamBindingArrayValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object","required":["literal","reference"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseConditionParamBindingValue:getEscalationPathPathIfElseElsePathIfElseConditionParamBindingValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object","required":["literal","reference"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseElsePath:getEscalationPathPathIfElseElsePathIfElseElsePath":{"properties":{"id":{"type":"string","description":"An ID for this node, unique within the escalation path.\n"},"ifElse":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseElsePathIfElse:getEscalationPathPathIfElseElsePathIfElseElsePathIfElse"},"level":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseElsePathLevel:getEscalationPathPathIfElseElsePathIfElseElsePathLevel"},"notifyChannel":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseElsePathNotifyChannel:getEscalationPathPathIfElseElsePathIfElseElsePathNotifyChannel"},"repeat":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseElsePathRepeat:getEscalationPathPathIfElseElsePathIfElseElsePathRepeat"},"type":{"type":"string","description":"The type of this node. Available types are:\n* level: A set of targets (users or schedules) that should be paged, either all at once, or with a round-robin configuration.\n* notify_channel: Send the escalation to a Slack channel, where it can be acked by anyone in the channel.\n* if_else: Branch the escalation based on a set of conditions.\n* repeat: Go back to a previous node and repeat the logic from there.\n"}},"type":"object","required":["id","ifElse","level","notifyChannel","repeat","type"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseElsePathIfElse:getEscalationPathPathIfElseElsePathIfElseElsePathIfElse":{"properties":{"conditions":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseElsePathIfElseCondition:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseCondition"},"description":"The prerequisite conditions that must all be satisfied\n"},"elsePaths":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePath:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePath"},"description":"The nodes that form the levels if our condition is not met\n"},"thenPaths":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPath:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPath"},"description":"Then path nodes\n"}},"type":"object","required":["conditions","elsePaths","thenPaths"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseElsePathIfElseCondition:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseCondition":{"properties":{"operation":{"type":"string","description":"The logical operation to be applied\n"},"paramBindings":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseElsePathIfElseConditionParamBinding:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseConditionParamBinding"},"description":"Bindings for the operation parameters\n"},"subject":{"type":"string","description":"The subject of the condition, on which the operation is applied\n"}},"type":"object","required":["operation","paramBindings","subject"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseElsePathIfElseConditionParamBinding:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseConditionParamBinding":{"properties":{"arrayValues":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseElsePathIfElseConditionParamBindingArrayValue:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseConditionParamBindingArrayValue"},"description":"The array of literal or reference parameter values\n"},"value":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseElsePathIfElseConditionParamBindingValue:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseConditionParamBindingValue","description":"The literal or reference parameter value\n"}},"type":"object","required":["arrayValues","value"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseElsePathIfElseConditionParamBindingArrayValue:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseConditionParamBindingArrayValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object","required":["literal","reference"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseElsePathIfElseConditionParamBindingValue:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseConditionParamBindingValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object","required":["literal","reference"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePath:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePath":{"properties":{"id":{"type":"string","description":"An ID for this node, unique within the escalation path.\n"},"ifElse":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElse:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElse"},"level":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathLevel:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathLevel"},"notifyChannel":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathNotifyChannel:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathNotifyChannel"},"repeat":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathRepeat:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathRepeat"},"type":{"type":"string","description":"The type of this node. Available types are:\n* level: A set of targets (users or schedules) that should be paged, either all at once, or with a round-robin configuration.\n* notify_channel: Send the escalation to a Slack channel, where it can be acked by anyone in the channel.\n* if_else: Branch the escalation based on a set of conditions.\n* repeat: Go back to a previous node and repeat the logic from there.\n"}},"type":"object","required":["id","ifElse","level","notifyChannel","repeat","type"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElse:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElse":{"properties":{"conditions":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseCondition:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseCondition"},"description":"The prerequisite conditions that must all be satisfied\n"},"elsePaths":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseElsePath:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseElsePath"},"description":"The nodes that form the levels if our condition is not met\n"},"thenPaths":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseThenPath:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseThenPath"},"description":"Then path nodes\n"}},"type":"object","required":["conditions","elsePaths","thenPaths"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseCondition:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseCondition":{"properties":{"operation":{"type":"string","description":"The logical operation to be applied\n"},"paramBindings":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseConditionParamBinding:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseConditionParamBinding"},"description":"Bindings for the operation parameters\n"},"subject":{"type":"string","description":"The subject of the condition, on which the operation is applied\n"}},"type":"object","required":["operation","paramBindings","subject"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseConditionParamBinding:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseConditionParamBinding":{"properties":{"arrayValues":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseConditionParamBindingArrayValue:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseConditionParamBindingArrayValue"},"description":"The array of literal or reference parameter values\n"},"value":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseConditionParamBindingValue:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseConditionParamBindingValue","description":"The literal or reference parameter value\n"}},"type":"object","required":["arrayValues","value"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseConditionParamBindingArrayValue:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseConditionParamBindingArrayValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object","required":["literal","reference"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseConditionParamBindingValue:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseConditionParamBindingValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object","required":["literal","reference"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseElsePath:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseElsePath":{"properties":{"id":{"type":"string","description":"An ID for this node, unique within the escalation path.\n"},"level":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseElsePathLevel:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseElsePathLevel"},"notifyChannel":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseElsePathNotifyChannel:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseElsePathNotifyChannel"},"repeat":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseElsePathRepeat:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseElsePathRepeat"},"type":{"type":"string","description":"The type of this node. Available types are:\n* level: A set of targets (users or schedules) that should be paged, either all at once, or with a round-robin configuration.\n* notify_channel: Send the escalation to a Slack channel, where it can be acked by anyone in the channel.\n* if_else: Branch the escalation based on a set of conditions.\n* repeat: Go back to a previous node and repeat the logic from there.\n"}},"type":"object","required":["id","level","notifyChannel","repeat","type"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseElsePathLevel:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseElsePathLevel":{"properties":{"ackMode":{"type":"string","description":"Controls the behaviour of acknowledgements for this level, with 'first' cancelling all other escalations on the same level when someone acks\n"},"roundRobinConfig":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseElsePathLevelRoundRobinConfig:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseElsePathLevelRoundRobinConfig"},"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseElsePathLevelTarget:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseElsePathLevelTarget"},"description":"The targets (users or schedules) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before proceeding to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["ackMode","roundRobinConfig","targets","timeToAckIntervalCondition","timeToAckSeconds","timeToAckWeekdayIntervalConfigId"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseElsePathLevelRoundRobinConfig:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseElsePathLevelRoundRobinConfig":{"properties":{"enabled":{"type":"boolean","description":"Whether round robin is enabled for this level\n"},"rotateAfterSeconds":{"type":"number","description":"How long should we wait before rotating to the next target in a round robin, if not set will stick with a single target per level.\n"}},"type":"object","required":["enabled","rotateAfterSeconds"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseElsePathLevelTarget:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseElsePathLevelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently*on*call, all*users or all*users*for*rota and specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target\n"}},"type":"object","required":["id","scheduleMode","type","urgency"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseElsePathNotifyChannel:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseElsePathNotifyChannel":{"properties":{"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseElsePathNotifyChannelTarget:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseElsePathNotifyChannelTarget"},"description":"The targets (Slack channels) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before moving on to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["targets","timeToAckIntervalCondition","timeToAckSeconds","timeToAckWeekdayIntervalConfigId"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseElsePathNotifyChannelTarget:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseElsePathNotifyChannelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently*on*call, all*users or all*users*for*rota and specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target\n"}},"type":"object","required":["id","scheduleMode","type","urgency"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseElsePathRepeat:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseElsePathRepeat":{"properties":{"repeatTimes":{"type":"number","description":"How many times to repeat these nodes\n"},"toNode":{"type":"string","description":"Which node ID we begin repeating from.\n"}},"type":"object","required":["repeatTimes","toNode"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseThenPath:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseThenPath":{"properties":{"id":{"type":"string","description":"An ID for this node, unique within the escalation path.\n"},"level":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseThenPathLevel:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseThenPathLevel"},"notifyChannel":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseThenPathNotifyChannel:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseThenPathNotifyChannel"},"repeat":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseThenPathRepeat:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseThenPathRepeat"},"type":{"type":"string","description":"The type of this node. Available types are:\n* level: A set of targets (users or schedules) that should be paged, either all at once, or with a round-robin configuration.\n* notify_channel: Send the escalation to a Slack channel, where it can be acked by anyone in the channel.\n* if_else: Branch the escalation based on a set of conditions.\n* repeat: Go back to a previous node and repeat the logic from there.\n"}},"type":"object","required":["id","level","notifyChannel","repeat","type"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseThenPathLevel:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseThenPathLevel":{"properties":{"ackMode":{"type":"string","description":"Controls the behaviour of acknowledgements for this level, with 'first' cancelling all other escalations on the same level when someone acks\n"},"roundRobinConfig":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseThenPathLevelRoundRobinConfig:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseThenPathLevelRoundRobinConfig"},"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseThenPathLevelTarget:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseThenPathLevelTarget"},"description":"The targets (users or schedules) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before proceeding to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["ackMode","roundRobinConfig","targets","timeToAckIntervalCondition","timeToAckSeconds","timeToAckWeekdayIntervalConfigId"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseThenPathLevelRoundRobinConfig:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseThenPathLevelRoundRobinConfig":{"properties":{"enabled":{"type":"boolean","description":"Whether round robin is enabled for this level\n"},"rotateAfterSeconds":{"type":"number","description":"How long should we wait before rotating to the next target in a round robin, if not set will stick with a single target per level.\n"}},"type":"object","required":["enabled","rotateAfterSeconds"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseThenPathLevelTarget:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseThenPathLevelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently*on*call, all*users or all*users*for*rota and specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target\n"}},"type":"object","required":["id","scheduleMode","type","urgency"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseThenPathNotifyChannel:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseThenPathNotifyChannel":{"properties":{"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseThenPathNotifyChannelTarget:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseThenPathNotifyChannelTarget"},"description":"The targets (Slack channels) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before moving on to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["targets","timeToAckIntervalCondition","timeToAckSeconds","timeToAckWeekdayIntervalConfigId"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseThenPathNotifyChannelTarget:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseThenPathNotifyChannelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently*on*call, all*users or all*users*for*rota and specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target\n"}},"type":"object","required":["id","scheduleMode","type","urgency"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseThenPathRepeat:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathIfElseThenPathRepeat":{"properties":{"repeatTimes":{"type":"number","description":"How many times to repeat these nodes\n"},"toNode":{"type":"string","description":"Which node ID we begin repeating from.\n"}},"type":"object","required":["repeatTimes","toNode"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathLevel:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathLevel":{"properties":{"ackMode":{"type":"string","description":"Controls the behaviour of acknowledgements for this level, with 'first' cancelling all other escalations on the same level when someone acks\n"},"roundRobinConfig":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathLevelRoundRobinConfig:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathLevelRoundRobinConfig"},"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathLevelTarget:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathLevelTarget"},"description":"The targets (users or schedules) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before proceeding to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["ackMode","roundRobinConfig","targets","timeToAckIntervalCondition","timeToAckSeconds","timeToAckWeekdayIntervalConfigId"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathLevelRoundRobinConfig:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathLevelRoundRobinConfig":{"properties":{"enabled":{"type":"boolean","description":"Whether round robin is enabled for this level\n"},"rotateAfterSeconds":{"type":"number","description":"How long should we wait before rotating to the next target in a round robin, if not set will stick with a single target per level.\n"}},"type":"object","required":["enabled","rotateAfterSeconds"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathLevelTarget:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathLevelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently*on*call, all*users or all*users*for*rota and specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target\n"}},"type":"object","required":["id","scheduleMode","type","urgency"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathNotifyChannel:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathNotifyChannel":{"properties":{"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathNotifyChannelTarget:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathNotifyChannelTarget"},"description":"The targets (Slack channels) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before moving on to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["targets","timeToAckIntervalCondition","timeToAckSeconds","timeToAckWeekdayIntervalConfigId"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathNotifyChannelTarget:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathNotifyChannelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently*on*call, all*users or all*users*for*rota and specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target\n"}},"type":"object","required":["id","scheduleMode","type","urgency"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathRepeat:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseElsePathRepeat":{"properties":{"repeatTimes":{"type":"number","description":"How many times to repeat these nodes\n"},"toNode":{"type":"string","description":"Which node ID we begin repeating from.\n"}},"type":"object","required":["repeatTimes","toNode"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPath:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPath":{"properties":{"id":{"type":"string","description":"An ID for this node, unique within the escalation path.\n"},"ifElse":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElse:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElse"},"level":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathLevel:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathLevel"},"notifyChannel":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathNotifyChannel:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathNotifyChannel"},"repeat":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathRepeat:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathRepeat"},"type":{"type":"string","description":"The type of this node. Available types are:\n* level: A set of targets (users or schedules) that should be paged, either all at once, or with a round-robin configuration.\n* notify_channel: Send the escalation to a Slack channel, where it can be acked by anyone in the channel.\n* if_else: Branch the escalation based on a set of conditions.\n* repeat: Go back to a previous node and repeat the logic from there.\n"}},"type":"object","required":["id","ifElse","level","notifyChannel","repeat","type"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElse:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElse":{"properties":{"conditions":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseCondition:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseCondition"},"description":"The prerequisite conditions that must all be satisfied\n"},"elsePaths":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseElsePath:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseElsePath"},"description":"The nodes that form the levels if our condition is not met\n"},"thenPaths":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseThenPath:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseThenPath"},"description":"Then path nodes\n"}},"type":"object","required":["conditions","elsePaths","thenPaths"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseCondition:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseCondition":{"properties":{"operation":{"type":"string","description":"The logical operation to be applied\n"},"paramBindings":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseConditionParamBinding:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseConditionParamBinding"},"description":"Bindings for the operation parameters\n"},"subject":{"type":"string","description":"The subject of the condition, on which the operation is applied\n"}},"type":"object","required":["operation","paramBindings","subject"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseConditionParamBinding:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseConditionParamBinding":{"properties":{"arrayValues":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseConditionParamBindingArrayValue:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseConditionParamBindingArrayValue"},"description":"The array of literal or reference parameter values\n"},"value":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseConditionParamBindingValue:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseConditionParamBindingValue","description":"The literal or reference parameter value\n"}},"type":"object","required":["arrayValues","value"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseConditionParamBindingArrayValue:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseConditionParamBindingArrayValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object","required":["literal","reference"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseConditionParamBindingValue:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseConditionParamBindingValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object","required":["literal","reference"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseElsePath:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseElsePath":{"properties":{"id":{"type":"string","description":"An ID for this node, unique within the escalation path.\n"},"level":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseElsePathLevel:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseElsePathLevel"},"notifyChannel":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseElsePathNotifyChannel:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseElsePathNotifyChannel"},"repeat":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseElsePathRepeat:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseElsePathRepeat"},"type":{"type":"string","description":"The type of this node. Available types are:\n* level: A set of targets (users or schedules) that should be paged, either all at once, or with a round-robin configuration.\n* notify_channel: Send the escalation to a Slack channel, where it can be acked by anyone in the channel.\n* if_else: Branch the escalation based on a set of conditions.\n* repeat: Go back to a previous node and repeat the logic from there.\n"}},"type":"object","required":["id","level","notifyChannel","repeat","type"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseElsePathLevel:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseElsePathLevel":{"properties":{"ackMode":{"type":"string","description":"Controls the behaviour of acknowledgements for this level, with 'first' cancelling all other escalations on the same level when someone acks\n"},"roundRobinConfig":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseElsePathLevelRoundRobinConfig:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseElsePathLevelRoundRobinConfig"},"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseElsePathLevelTarget:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseElsePathLevelTarget"},"description":"The targets (users or schedules) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before proceeding to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["ackMode","roundRobinConfig","targets","timeToAckIntervalCondition","timeToAckSeconds","timeToAckWeekdayIntervalConfigId"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseElsePathLevelRoundRobinConfig:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseElsePathLevelRoundRobinConfig":{"properties":{"enabled":{"type":"boolean","description":"Whether round robin is enabled for this level\n"},"rotateAfterSeconds":{"type":"number","description":"How long should we wait before rotating to the next target in a round robin, if not set will stick with a single target per level.\n"}},"type":"object","required":["enabled","rotateAfterSeconds"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseElsePathLevelTarget:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseElsePathLevelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently*on*call, all*users or all*users*for*rota and specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target\n"}},"type":"object","required":["id","scheduleMode","type","urgency"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseElsePathNotifyChannel:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseElsePathNotifyChannel":{"properties":{"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseElsePathNotifyChannelTarget:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseElsePathNotifyChannelTarget"},"description":"The targets (Slack channels) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before moving on to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["targets","timeToAckIntervalCondition","timeToAckSeconds","timeToAckWeekdayIntervalConfigId"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseElsePathNotifyChannelTarget:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseElsePathNotifyChannelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently*on*call, all*users or all*users*for*rota and specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target\n"}},"type":"object","required":["id","scheduleMode","type","urgency"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseElsePathRepeat:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseElsePathRepeat":{"properties":{"repeatTimes":{"type":"number","description":"How many times to repeat these nodes\n"},"toNode":{"type":"string","description":"Which node ID we begin repeating from.\n"}},"type":"object","required":["repeatTimes","toNode"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseThenPath:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseThenPath":{"properties":{"id":{"type":"string","description":"An ID for this node, unique within the escalation path.\n"},"level":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseThenPathLevel:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseThenPathLevel"},"notifyChannel":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseThenPathNotifyChannel:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseThenPathNotifyChannel"},"repeat":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseThenPathRepeat:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseThenPathRepeat"},"type":{"type":"string","description":"The type of this node. Available types are:\n* level: A set of targets (users or schedules) that should be paged, either all at once, or with a round-robin configuration.\n* notify_channel: Send the escalation to a Slack channel, where it can be acked by anyone in the channel.\n* if_else: Branch the escalation based on a set of conditions.\n* repeat: Go back to a previous node and repeat the logic from there.\n"}},"type":"object","required":["id","level","notifyChannel","repeat","type"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseThenPathLevel:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseThenPathLevel":{"properties":{"ackMode":{"type":"string","description":"Controls the behaviour of acknowledgements for this level, with 'first' cancelling all other escalations on the same level when someone acks\n"},"roundRobinConfig":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseThenPathLevelRoundRobinConfig:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseThenPathLevelRoundRobinConfig"},"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseThenPathLevelTarget:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseThenPathLevelTarget"},"description":"The targets (users or schedules) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before proceeding to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["ackMode","roundRobinConfig","targets","timeToAckIntervalCondition","timeToAckSeconds","timeToAckWeekdayIntervalConfigId"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseThenPathLevelRoundRobinConfig:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseThenPathLevelRoundRobinConfig":{"properties":{"enabled":{"type":"boolean","description":"Whether round robin is enabled for this level\n"},"rotateAfterSeconds":{"type":"number","description":"How long should we wait before rotating to the next target in a round robin, if not set will stick with a single target per level.\n"}},"type":"object","required":["enabled","rotateAfterSeconds"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseThenPathLevelTarget:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseThenPathLevelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently*on*call, all*users or all*users*for*rota and specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target\n"}},"type":"object","required":["id","scheduleMode","type","urgency"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseThenPathNotifyChannel:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseThenPathNotifyChannel":{"properties":{"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseThenPathNotifyChannelTarget:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseThenPathNotifyChannelTarget"},"description":"The targets (Slack channels) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before moving on to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["targets","timeToAckIntervalCondition","timeToAckSeconds","timeToAckWeekdayIntervalConfigId"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseThenPathNotifyChannelTarget:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseThenPathNotifyChannelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently*on*call, all*users or all*users*for*rota and specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target\n"}},"type":"object","required":["id","scheduleMode","type","urgency"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseThenPathRepeat:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathIfElseThenPathRepeat":{"properties":{"repeatTimes":{"type":"number","description":"How many times to repeat these nodes\n"},"toNode":{"type":"string","description":"Which node ID we begin repeating from.\n"}},"type":"object","required":["repeatTimes","toNode"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathLevel:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathLevel":{"properties":{"ackMode":{"type":"string","description":"Controls the behaviour of acknowledgements for this level, with 'first' cancelling all other escalations on the same level when someone acks\n"},"roundRobinConfig":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathLevelRoundRobinConfig:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathLevelRoundRobinConfig"},"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathLevelTarget:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathLevelTarget"},"description":"The targets (users or schedules) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before proceeding to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["ackMode","roundRobinConfig","targets","timeToAckIntervalCondition","timeToAckSeconds","timeToAckWeekdayIntervalConfigId"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathLevelRoundRobinConfig:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathLevelRoundRobinConfig":{"properties":{"enabled":{"type":"boolean","description":"Whether round robin is enabled for this level\n"},"rotateAfterSeconds":{"type":"number","description":"How long should we wait before rotating to the next target in a round robin, if not set will stick with a single target per level.\n"}},"type":"object","required":["enabled","rotateAfterSeconds"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathLevelTarget:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathLevelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently*on*call, all*users or all*users*for*rota and specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target\n"}},"type":"object","required":["id","scheduleMode","type","urgency"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathNotifyChannel:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathNotifyChannel":{"properties":{"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathNotifyChannelTarget:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathNotifyChannelTarget"},"description":"The targets (Slack channels) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before moving on to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["targets","timeToAckIntervalCondition","timeToAckSeconds","timeToAckWeekdayIntervalConfigId"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathNotifyChannelTarget:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathNotifyChannelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently*on*call, all*users or all*users*for*rota and specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target\n"}},"type":"object","required":["id","scheduleMode","type","urgency"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathRepeat:getEscalationPathPathIfElseElsePathIfElseElsePathIfElseThenPathRepeat":{"properties":{"repeatTimes":{"type":"number","description":"How many times to repeat these nodes\n"},"toNode":{"type":"string","description":"Which node ID we begin repeating from.\n"}},"type":"object","required":["repeatTimes","toNode"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseElsePathLevel:getEscalationPathPathIfElseElsePathIfElseElsePathLevel":{"properties":{"ackMode":{"type":"string","description":"Controls the behaviour of acknowledgements for this level, with 'first' cancelling all other escalations on the same level when someone acks\n"},"roundRobinConfig":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseElsePathLevelRoundRobinConfig:getEscalationPathPathIfElseElsePathIfElseElsePathLevelRoundRobinConfig"},"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseElsePathLevelTarget:getEscalationPathPathIfElseElsePathIfElseElsePathLevelTarget"},"description":"The targets (users or schedules) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before proceeding to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["ackMode","roundRobinConfig","targets","timeToAckIntervalCondition","timeToAckSeconds","timeToAckWeekdayIntervalConfigId"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseElsePathLevelRoundRobinConfig:getEscalationPathPathIfElseElsePathIfElseElsePathLevelRoundRobinConfig":{"properties":{"enabled":{"type":"boolean","description":"Whether round robin is enabled for this level\n"},"rotateAfterSeconds":{"type":"number","description":"How long should we wait before rotating to the next target in a round robin, if not set will stick with a single target per level.\n"}},"type":"object","required":["enabled","rotateAfterSeconds"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseElsePathLevelTarget:getEscalationPathPathIfElseElsePathIfElseElsePathLevelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently*on*call, all*users or all*users*for*rota and specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target\n"}},"type":"object","required":["id","scheduleMode","type","urgency"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseElsePathNotifyChannel:getEscalationPathPathIfElseElsePathIfElseElsePathNotifyChannel":{"properties":{"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseElsePathNotifyChannelTarget:getEscalationPathPathIfElseElsePathIfElseElsePathNotifyChannelTarget"},"description":"The targets (Slack channels) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before moving on to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["targets","timeToAckIntervalCondition","timeToAckSeconds","timeToAckWeekdayIntervalConfigId"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseElsePathNotifyChannelTarget:getEscalationPathPathIfElseElsePathIfElseElsePathNotifyChannelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently*on*call, all*users or all*users*for*rota and specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target\n"}},"type":"object","required":["id","scheduleMode","type","urgency"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseElsePathRepeat:getEscalationPathPathIfElseElsePathIfElseElsePathRepeat":{"properties":{"repeatTimes":{"type":"number","description":"How many times to repeat these nodes\n"},"toNode":{"type":"string","description":"Which node ID we begin repeating from.\n"}},"type":"object","required":["repeatTimes","toNode"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseThenPath:getEscalationPathPathIfElseElsePathIfElseThenPath":{"properties":{"id":{"type":"string","description":"An ID for this node, unique within the escalation path.\n"},"ifElse":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseThenPathIfElse:getEscalationPathPathIfElseElsePathIfElseThenPathIfElse"},"level":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseThenPathLevel:getEscalationPathPathIfElseElsePathIfElseThenPathLevel"},"notifyChannel":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseThenPathNotifyChannel:getEscalationPathPathIfElseElsePathIfElseThenPathNotifyChannel"},"repeat":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseThenPathRepeat:getEscalationPathPathIfElseElsePathIfElseThenPathRepeat"},"type":{"type":"string","description":"The type of this node. Available types are:\n* level: A set of targets (users or schedules) that should be paged, either all at once, or with a round-robin configuration.\n* notify_channel: Send the escalation to a Slack channel, where it can be acked by anyone in the channel.\n* if_else: Branch the escalation based on a set of conditions.\n* repeat: Go back to a previous node and repeat the logic from there.\n"}},"type":"object","required":["id","ifElse","level","notifyChannel","repeat","type"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseThenPathIfElse:getEscalationPathPathIfElseElsePathIfElseThenPathIfElse":{"properties":{"conditions":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseThenPathIfElseCondition:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseCondition"},"description":"The prerequisite conditions that must all be satisfied\n"},"elsePaths":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePath:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePath"},"description":"The nodes that form the levels if our condition is not met\n"},"thenPaths":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPath:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPath"},"description":"Then path nodes\n"}},"type":"object","required":["conditions","elsePaths","thenPaths"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseThenPathIfElseCondition:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseCondition":{"properties":{"operation":{"type":"string","description":"The logical operation to be applied\n"},"paramBindings":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseThenPathIfElseConditionParamBinding:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseConditionParamBinding"},"description":"Bindings for the operation parameters\n"},"subject":{"type":"string","description":"The subject of the condition, on which the operation is applied\n"}},"type":"object","required":["operation","paramBindings","subject"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseThenPathIfElseConditionParamBinding:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseConditionParamBinding":{"properties":{"arrayValues":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseThenPathIfElseConditionParamBindingArrayValue:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseConditionParamBindingArrayValue"},"description":"The array of literal or reference parameter values\n"},"value":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseThenPathIfElseConditionParamBindingValue:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseConditionParamBindingValue","description":"The literal or reference parameter value\n"}},"type":"object","required":["arrayValues","value"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseThenPathIfElseConditionParamBindingArrayValue:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseConditionParamBindingArrayValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object","required":["literal","reference"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseThenPathIfElseConditionParamBindingValue:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseConditionParamBindingValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object","required":["literal","reference"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePath:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePath":{"properties":{"id":{"type":"string","description":"An ID for this node, unique within the escalation path.\n"},"ifElse":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElse:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElse"},"level":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathLevel:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathLevel"},"notifyChannel":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathNotifyChannel:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathNotifyChannel"},"repeat":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathRepeat:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathRepeat"},"type":{"type":"string","description":"The type of this node. Available types are:\n* level: A set of targets (users or schedules) that should be paged, either all at once, or with a round-robin configuration.\n* notify_channel: Send the escalation to a Slack channel, where it can be acked by anyone in the channel.\n* if_else: Branch the escalation based on a set of conditions.\n* repeat: Go back to a previous node and repeat the logic from there.\n"}},"type":"object","required":["id","ifElse","level","notifyChannel","repeat","type"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElse:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElse":{"properties":{"conditions":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseCondition:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseCondition"},"description":"The prerequisite conditions that must all be satisfied\n"},"elsePaths":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseElsePath:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseElsePath"},"description":"The nodes that form the levels if our condition is not met\n"},"thenPaths":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseThenPath:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseThenPath"},"description":"Then path nodes\n"}},"type":"object","required":["conditions","elsePaths","thenPaths"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseCondition:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseCondition":{"properties":{"operation":{"type":"string","description":"The logical operation to be applied\n"},"paramBindings":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseConditionParamBinding:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseConditionParamBinding"},"description":"Bindings for the operation parameters\n"},"subject":{"type":"string","description":"The subject of the condition, on which the operation is applied\n"}},"type":"object","required":["operation","paramBindings","subject"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseConditionParamBinding:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseConditionParamBinding":{"properties":{"arrayValues":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseConditionParamBindingArrayValue:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseConditionParamBindingArrayValue"},"description":"The array of literal or reference parameter values\n"},"value":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseConditionParamBindingValue:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseConditionParamBindingValue","description":"The literal or reference parameter value\n"}},"type":"object","required":["arrayValues","value"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseConditionParamBindingArrayValue:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseConditionParamBindingArrayValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object","required":["literal","reference"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseConditionParamBindingValue:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseConditionParamBindingValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object","required":["literal","reference"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseElsePath:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseElsePath":{"properties":{"id":{"type":"string","description":"An ID for this node, unique within the escalation path.\n"},"level":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseElsePathLevel:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseElsePathLevel"},"notifyChannel":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseElsePathNotifyChannel:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseElsePathNotifyChannel"},"repeat":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseElsePathRepeat:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseElsePathRepeat"},"type":{"type":"string","description":"The type of this node. Available types are:\n* level: A set of targets (users or schedules) that should be paged, either all at once, or with a round-robin configuration.\n* notify_channel: Send the escalation to a Slack channel, where it can be acked by anyone in the channel.\n* if_else: Branch the escalation based on a set of conditions.\n* repeat: Go back to a previous node and repeat the logic from there.\n"}},"type":"object","required":["id","level","notifyChannel","repeat","type"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseElsePathLevel:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseElsePathLevel":{"properties":{"ackMode":{"type":"string","description":"Controls the behaviour of acknowledgements for this level, with 'first' cancelling all other escalations on the same level when someone acks\n"},"roundRobinConfig":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseElsePathLevelRoundRobinConfig:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseElsePathLevelRoundRobinConfig"},"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseElsePathLevelTarget:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseElsePathLevelTarget"},"description":"The targets (users or schedules) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before proceeding to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["ackMode","roundRobinConfig","targets","timeToAckIntervalCondition","timeToAckSeconds","timeToAckWeekdayIntervalConfigId"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseElsePathLevelRoundRobinConfig:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseElsePathLevelRoundRobinConfig":{"properties":{"enabled":{"type":"boolean","description":"Whether round robin is enabled for this level\n"},"rotateAfterSeconds":{"type":"number","description":"How long should we wait before rotating to the next target in a round robin, if not set will stick with a single target per level.\n"}},"type":"object","required":["enabled","rotateAfterSeconds"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseElsePathLevelTarget:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseElsePathLevelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently*on*call, all*users or all*users*for*rota and specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target\n"}},"type":"object","required":["id","scheduleMode","type","urgency"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseElsePathNotifyChannel:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseElsePathNotifyChannel":{"properties":{"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseElsePathNotifyChannelTarget:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseElsePathNotifyChannelTarget"},"description":"The targets (Slack channels) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before moving on to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["targets","timeToAckIntervalCondition","timeToAckSeconds","timeToAckWeekdayIntervalConfigId"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseElsePathNotifyChannelTarget:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseElsePathNotifyChannelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently*on*call, all*users or all*users*for*rota and specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target\n"}},"type":"object","required":["id","scheduleMode","type","urgency"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseElsePathRepeat:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseElsePathRepeat":{"properties":{"repeatTimes":{"type":"number","description":"How many times to repeat these nodes\n"},"toNode":{"type":"string","description":"Which node ID we begin repeating from.\n"}},"type":"object","required":["repeatTimes","toNode"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseThenPath:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseThenPath":{"properties":{"id":{"type":"string","description":"An ID for this node, unique within the escalation path.\n"},"level":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseThenPathLevel:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseThenPathLevel"},"notifyChannel":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseThenPathNotifyChannel:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseThenPathNotifyChannel"},"repeat":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseThenPathRepeat:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseThenPathRepeat"},"type":{"type":"string","description":"The type of this node. Available types are:\n* level: A set of targets (users or schedules) that should be paged, either all at once, or with a round-robin configuration.\n* notify_channel: Send the escalation to a Slack channel, where it can be acked by anyone in the channel.\n* if_else: Branch the escalation based on a set of conditions.\n* repeat: Go back to a previous node and repeat the logic from there.\n"}},"type":"object","required":["id","level","notifyChannel","repeat","type"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseThenPathLevel:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseThenPathLevel":{"properties":{"ackMode":{"type":"string","description":"Controls the behaviour of acknowledgements for this level, with 'first' cancelling all other escalations on the same level when someone acks\n"},"roundRobinConfig":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseThenPathLevelRoundRobinConfig:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseThenPathLevelRoundRobinConfig"},"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseThenPathLevelTarget:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseThenPathLevelTarget"},"description":"The targets (users or schedules) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before proceeding to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["ackMode","roundRobinConfig","targets","timeToAckIntervalCondition","timeToAckSeconds","timeToAckWeekdayIntervalConfigId"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseThenPathLevelRoundRobinConfig:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseThenPathLevelRoundRobinConfig":{"properties":{"enabled":{"type":"boolean","description":"Whether round robin is enabled for this level\n"},"rotateAfterSeconds":{"type":"number","description":"How long should we wait before rotating to the next target in a round robin, if not set will stick with a single target per level.\n"}},"type":"object","required":["enabled","rotateAfterSeconds"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseThenPathLevelTarget:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseThenPathLevelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently*on*call, all*users or all*users*for*rota and specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target\n"}},"type":"object","required":["id","scheduleMode","type","urgency"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseThenPathNotifyChannel:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseThenPathNotifyChannel":{"properties":{"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseThenPathNotifyChannelTarget:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseThenPathNotifyChannelTarget"},"description":"The targets (Slack channels) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before moving on to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["targets","timeToAckIntervalCondition","timeToAckSeconds","timeToAckWeekdayIntervalConfigId"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseThenPathNotifyChannelTarget:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseThenPathNotifyChannelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently*on*call, all*users or all*users*for*rota and specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target\n"}},"type":"object","required":["id","scheduleMode","type","urgency"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseThenPathRepeat:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathIfElseThenPathRepeat":{"properties":{"repeatTimes":{"type":"number","description":"How many times to repeat these nodes\n"},"toNode":{"type":"string","description":"Which node ID we begin repeating from.\n"}},"type":"object","required":["repeatTimes","toNode"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathLevel:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathLevel":{"properties":{"ackMode":{"type":"string","description":"Controls the behaviour of acknowledgements for this level, with 'first' cancelling all other escalations on the same level when someone acks\n"},"roundRobinConfig":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathLevelRoundRobinConfig:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathLevelRoundRobinConfig"},"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathLevelTarget:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathLevelTarget"},"description":"The targets (users or schedules) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before proceeding to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["ackMode","roundRobinConfig","targets","timeToAckIntervalCondition","timeToAckSeconds","timeToAckWeekdayIntervalConfigId"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathLevelRoundRobinConfig:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathLevelRoundRobinConfig":{"properties":{"enabled":{"type":"boolean","description":"Whether round robin is enabled for this level\n"},"rotateAfterSeconds":{"type":"number","description":"How long should we wait before rotating to the next target in a round robin, if not set will stick with a single target per level.\n"}},"type":"object","required":["enabled","rotateAfterSeconds"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathLevelTarget:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathLevelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently*on*call, all*users or all*users*for*rota and specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target\n"}},"type":"object","required":["id","scheduleMode","type","urgency"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathNotifyChannel:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathNotifyChannel":{"properties":{"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathNotifyChannelTarget:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathNotifyChannelTarget"},"description":"The targets (Slack channels) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before moving on to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["targets","timeToAckIntervalCondition","timeToAckSeconds","timeToAckWeekdayIntervalConfigId"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathNotifyChannelTarget:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathNotifyChannelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently*on*call, all*users or all*users*for*rota and specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target\n"}},"type":"object","required":["id","scheduleMode","type","urgency"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathRepeat:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseElsePathRepeat":{"properties":{"repeatTimes":{"type":"number","description":"How many times to repeat these nodes\n"},"toNode":{"type":"string","description":"Which node ID we begin repeating from.\n"}},"type":"object","required":["repeatTimes","toNode"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPath:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPath":{"properties":{"id":{"type":"string","description":"An ID for this node, unique within the escalation path.\n"},"ifElse":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElse:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElse"},"level":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathLevel:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathLevel"},"notifyChannel":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathNotifyChannel:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathNotifyChannel"},"repeat":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathRepeat:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathRepeat"},"type":{"type":"string","description":"The type of this node. Available types are:\n* level: A set of targets (users or schedules) that should be paged, either all at once, or with a round-robin configuration.\n* notify_channel: Send the escalation to a Slack channel, where it can be acked by anyone in the channel.\n* if_else: Branch the escalation based on a set of conditions.\n* repeat: Go back to a previous node and repeat the logic from there.\n"}},"type":"object","required":["id","ifElse","level","notifyChannel","repeat","type"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElse:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElse":{"properties":{"conditions":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseCondition:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseCondition"},"description":"The prerequisite conditions that must all be satisfied\n"},"elsePaths":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseElsePath:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseElsePath"},"description":"The nodes that form the levels if our condition is not met\n"},"thenPaths":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseThenPath:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseThenPath"},"description":"Then path nodes\n"}},"type":"object","required":["conditions","elsePaths","thenPaths"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseCondition:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseCondition":{"properties":{"operation":{"type":"string","description":"The logical operation to be applied\n"},"paramBindings":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseConditionParamBinding:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseConditionParamBinding"},"description":"Bindings for the operation parameters\n"},"subject":{"type":"string","description":"The subject of the condition, on which the operation is applied\n"}},"type":"object","required":["operation","paramBindings","subject"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseConditionParamBinding:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseConditionParamBinding":{"properties":{"arrayValues":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseConditionParamBindingArrayValue:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseConditionParamBindingArrayValue"},"description":"The array of literal or reference parameter values\n"},"value":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseConditionParamBindingValue:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseConditionParamBindingValue","description":"The literal or reference parameter value\n"}},"type":"object","required":["arrayValues","value"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseConditionParamBindingArrayValue:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseConditionParamBindingArrayValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object","required":["literal","reference"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseConditionParamBindingValue:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseConditionParamBindingValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object","required":["literal","reference"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseElsePath:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseElsePath":{"properties":{"id":{"type":"string","description":"An ID for this node, unique within the escalation path.\n"},"level":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseElsePathLevel:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseElsePathLevel"},"notifyChannel":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseElsePathNotifyChannel:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseElsePathNotifyChannel"},"repeat":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseElsePathRepeat:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseElsePathRepeat"},"type":{"type":"string","description":"The type of this node. Available types are:\n* level: A set of targets (users or schedules) that should be paged, either all at once, or with a round-robin configuration.\n* notify_channel: Send the escalation to a Slack channel, where it can be acked by anyone in the channel.\n* if_else: Branch the escalation based on a set of conditions.\n* repeat: Go back to a previous node and repeat the logic from there.\n"}},"type":"object","required":["id","level","notifyChannel","repeat","type"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseElsePathLevel:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseElsePathLevel":{"properties":{"ackMode":{"type":"string","description":"Controls the behaviour of acknowledgements for this level, with 'first' cancelling all other escalations on the same level when someone acks\n"},"roundRobinConfig":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseElsePathLevelRoundRobinConfig:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseElsePathLevelRoundRobinConfig"},"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseElsePathLevelTarget:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseElsePathLevelTarget"},"description":"The targets (users or schedules) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before proceeding to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["ackMode","roundRobinConfig","targets","timeToAckIntervalCondition","timeToAckSeconds","timeToAckWeekdayIntervalConfigId"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseElsePathLevelRoundRobinConfig:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseElsePathLevelRoundRobinConfig":{"properties":{"enabled":{"type":"boolean","description":"Whether round robin is enabled for this level\n"},"rotateAfterSeconds":{"type":"number","description":"How long should we wait before rotating to the next target in a round robin, if not set will stick with a single target per level.\n"}},"type":"object","required":["enabled","rotateAfterSeconds"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseElsePathLevelTarget:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseElsePathLevelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently*on*call, all*users or all*users*for*rota and specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target\n"}},"type":"object","required":["id","scheduleMode","type","urgency"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseElsePathNotifyChannel:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseElsePathNotifyChannel":{"properties":{"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseElsePathNotifyChannelTarget:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseElsePathNotifyChannelTarget"},"description":"The targets (Slack channels) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before moving on to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["targets","timeToAckIntervalCondition","timeToAckSeconds","timeToAckWeekdayIntervalConfigId"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseElsePathNotifyChannelTarget:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseElsePathNotifyChannelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently*on*call, all*users or all*users*for*rota and specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target\n"}},"type":"object","required":["id","scheduleMode","type","urgency"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseElsePathRepeat:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseElsePathRepeat":{"properties":{"repeatTimes":{"type":"number","description":"How many times to repeat these nodes\n"},"toNode":{"type":"string","description":"Which node ID we begin repeating from.\n"}},"type":"object","required":["repeatTimes","toNode"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseThenPath:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseThenPath":{"properties":{"id":{"type":"string","description":"An ID for this node, unique within the escalation path.\n"},"level":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseThenPathLevel:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseThenPathLevel"},"notifyChannel":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseThenPathNotifyChannel:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseThenPathNotifyChannel"},"repeat":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseThenPathRepeat:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseThenPathRepeat"},"type":{"type":"string","description":"The type of this node. Available types are:\n* level: A set of targets (users or schedules) that should be paged, either all at once, or with a round-robin configuration.\n* notify_channel: Send the escalation to a Slack channel, where it can be acked by anyone in the channel.\n* if_else: Branch the escalation based on a set of conditions.\n* repeat: Go back to a previous node and repeat the logic from there.\n"}},"type":"object","required":["id","level","notifyChannel","repeat","type"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseThenPathLevel:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseThenPathLevel":{"properties":{"ackMode":{"type":"string","description":"Controls the behaviour of acknowledgements for this level, with 'first' cancelling all other escalations on the same level when someone acks\n"},"roundRobinConfig":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseThenPathLevelRoundRobinConfig:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseThenPathLevelRoundRobinConfig"},"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseThenPathLevelTarget:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseThenPathLevelTarget"},"description":"The targets (users or schedules) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before proceeding to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["ackMode","roundRobinConfig","targets","timeToAckIntervalCondition","timeToAckSeconds","timeToAckWeekdayIntervalConfigId"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseThenPathLevelRoundRobinConfig:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseThenPathLevelRoundRobinConfig":{"properties":{"enabled":{"type":"boolean","description":"Whether round robin is enabled for this level\n"},"rotateAfterSeconds":{"type":"number","description":"How long should we wait before rotating to the next target in a round robin, if not set will stick with a single target per level.\n"}},"type":"object","required":["enabled","rotateAfterSeconds"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseThenPathLevelTarget:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseThenPathLevelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently*on*call, all*users or all*users*for*rota and specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target\n"}},"type":"object","required":["id","scheduleMode","type","urgency"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseThenPathNotifyChannel:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseThenPathNotifyChannel":{"properties":{"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseThenPathNotifyChannelTarget:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseThenPathNotifyChannelTarget"},"description":"The targets (Slack channels) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before moving on to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["targets","timeToAckIntervalCondition","timeToAckSeconds","timeToAckWeekdayIntervalConfigId"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseThenPathNotifyChannelTarget:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseThenPathNotifyChannelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently*on*call, all*users or all*users*for*rota and specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target\n"}},"type":"object","required":["id","scheduleMode","type","urgency"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseThenPathRepeat:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathIfElseThenPathRepeat":{"properties":{"repeatTimes":{"type":"number","description":"How many times to repeat these nodes\n"},"toNode":{"type":"string","description":"Which node ID we begin repeating from.\n"}},"type":"object","required":["repeatTimes","toNode"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathLevel:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathLevel":{"properties":{"ackMode":{"type":"string","description":"Controls the behaviour of acknowledgements for this level, with 'first' cancelling all other escalations on the same level when someone acks\n"},"roundRobinConfig":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathLevelRoundRobinConfig:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathLevelRoundRobinConfig"},"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathLevelTarget:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathLevelTarget"},"description":"The targets (users or schedules) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before proceeding to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["ackMode","roundRobinConfig","targets","timeToAckIntervalCondition","timeToAckSeconds","timeToAckWeekdayIntervalConfigId"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathLevelRoundRobinConfig:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathLevelRoundRobinConfig":{"properties":{"enabled":{"type":"boolean","description":"Whether round robin is enabled for this level\n"},"rotateAfterSeconds":{"type":"number","description":"How long should we wait before rotating to the next target in a round robin, if not set will stick with a single target per level.\n"}},"type":"object","required":["enabled","rotateAfterSeconds"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathLevelTarget:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathLevelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently*on*call, all*users or all*users*for*rota and specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target\n"}},"type":"object","required":["id","scheduleMode","type","urgency"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathNotifyChannel:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathNotifyChannel":{"properties":{"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathNotifyChannelTarget:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathNotifyChannelTarget"},"description":"The targets (Slack channels) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before moving on to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["targets","timeToAckIntervalCondition","timeToAckSeconds","timeToAckWeekdayIntervalConfigId"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathNotifyChannelTarget:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathNotifyChannelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently*on*call, all*users or all*users*for*rota and specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target\n"}},"type":"object","required":["id","scheduleMode","type","urgency"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathRepeat:getEscalationPathPathIfElseElsePathIfElseThenPathIfElseThenPathRepeat":{"properties":{"repeatTimes":{"type":"number","description":"How many times to repeat these nodes\n"},"toNode":{"type":"string","description":"Which node ID we begin repeating from.\n"}},"type":"object","required":["repeatTimes","toNode"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseThenPathLevel:getEscalationPathPathIfElseElsePathIfElseThenPathLevel":{"properties":{"ackMode":{"type":"string","description":"Controls the behaviour of acknowledgements for this level, with 'first' cancelling all other escalations on the same level when someone acks\n"},"roundRobinConfig":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseThenPathLevelRoundRobinConfig:getEscalationPathPathIfElseElsePathIfElseThenPathLevelRoundRobinConfig"},"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseThenPathLevelTarget:getEscalationPathPathIfElseElsePathIfElseThenPathLevelTarget"},"description":"The targets (users or schedules) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before proceeding to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["ackMode","roundRobinConfig","targets","timeToAckIntervalCondition","timeToAckSeconds","timeToAckWeekdayIntervalConfigId"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseThenPathLevelRoundRobinConfig:getEscalationPathPathIfElseElsePathIfElseThenPathLevelRoundRobinConfig":{"properties":{"enabled":{"type":"boolean","description":"Whether round robin is enabled for this level\n"},"rotateAfterSeconds":{"type":"number","description":"How long should we wait before rotating to the next target in a round robin, if not set will stick with a single target per level.\n"}},"type":"object","required":["enabled","rotateAfterSeconds"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseThenPathLevelTarget:getEscalationPathPathIfElseElsePathIfElseThenPathLevelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently*on*call, all*users or all*users*for*rota and specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target\n"}},"type":"object","required":["id","scheduleMode","type","urgency"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseThenPathNotifyChannel:getEscalationPathPathIfElseElsePathIfElseThenPathNotifyChannel":{"properties":{"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathIfElseThenPathNotifyChannelTarget:getEscalationPathPathIfElseElsePathIfElseThenPathNotifyChannelTarget"},"description":"The targets (Slack channels) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before moving on to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["targets","timeToAckIntervalCondition","timeToAckSeconds","timeToAckWeekdayIntervalConfigId"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseThenPathNotifyChannelTarget:getEscalationPathPathIfElseElsePathIfElseThenPathNotifyChannelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently*on*call, all*users or all*users*for*rota and specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target\n"}},"type":"object","required":["id","scheduleMode","type","urgency"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathIfElseThenPathRepeat:getEscalationPathPathIfElseElsePathIfElseThenPathRepeat":{"properties":{"repeatTimes":{"type":"number","description":"How many times to repeat these nodes\n"},"toNode":{"type":"string","description":"Which node ID we begin repeating from.\n"}},"type":"object","required":["repeatTimes","toNode"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathLevel:getEscalationPathPathIfElseElsePathLevel":{"properties":{"ackMode":{"type":"string","description":"Controls the behaviour of acknowledgements for this level, with 'first' cancelling all other escalations on the same level when someone acks\n"},"roundRobinConfig":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathLevelRoundRobinConfig:getEscalationPathPathIfElseElsePathLevelRoundRobinConfig"},"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathLevelTarget:getEscalationPathPathIfElseElsePathLevelTarget"},"description":"The targets (users or schedules) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before proceeding to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["ackMode","roundRobinConfig","targets","timeToAckIntervalCondition","timeToAckSeconds","timeToAckWeekdayIntervalConfigId"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathLevelRoundRobinConfig:getEscalationPathPathIfElseElsePathLevelRoundRobinConfig":{"properties":{"enabled":{"type":"boolean","description":"Whether round robin is enabled for this level\n"},"rotateAfterSeconds":{"type":"number","description":"How long should we wait before rotating to the next target in a round robin, if not set will stick with a single target per level.\n"}},"type":"object","required":["enabled","rotateAfterSeconds"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathLevelTarget:getEscalationPathPathIfElseElsePathLevelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently*on*call, all*users or all*users*for*rota and specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target\n"}},"type":"object","required":["id","scheduleMode","type","urgency"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathNotifyChannel:getEscalationPathPathIfElseElsePathNotifyChannel":{"properties":{"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseElsePathNotifyChannelTarget:getEscalationPathPathIfElseElsePathNotifyChannelTarget"},"description":"The targets (Slack channels) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before moving on to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["targets","timeToAckIntervalCondition","timeToAckSeconds","timeToAckWeekdayIntervalConfigId"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathNotifyChannelTarget:getEscalationPathPathIfElseElsePathNotifyChannelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently*on*call, all*users or all*users*for*rota and specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target\n"}},"type":"object","required":["id","scheduleMode","type","urgency"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseElsePathRepeat:getEscalationPathPathIfElseElsePathRepeat":{"properties":{"repeatTimes":{"type":"number","description":"How many times to repeat these nodes\n"},"toNode":{"type":"string","description":"Which node ID we begin repeating from.\n"}},"type":"object","required":["repeatTimes","toNode"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPath:getEscalationPathPathIfElseThenPath":{"properties":{"id":{"type":"string","description":"An ID for this node, unique within the escalation path.\n"},"ifElse":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElse:getEscalationPathPathIfElseThenPathIfElse"},"level":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathLevel:getEscalationPathPathIfElseThenPathLevel"},"notifyChannel":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathNotifyChannel:getEscalationPathPathIfElseThenPathNotifyChannel"},"repeat":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathRepeat:getEscalationPathPathIfElseThenPathRepeat"},"type":{"type":"string","description":"The type of this node. Available types are:\n* level: A set of targets (users or schedules) that should be paged, either all at once, or with a round-robin configuration.\n* notify_channel: Send the escalation to a Slack channel, where it can be acked by anyone in the channel.\n* if_else: Branch the escalation based on a set of conditions.\n* repeat: Go back to a previous node and repeat the logic from there.\n"}},"type":"object","required":["id","ifElse","level","notifyChannel","repeat","type"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElse:getEscalationPathPathIfElseThenPathIfElse":{"properties":{"conditions":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseCondition:getEscalationPathPathIfElseThenPathIfElseCondition"},"description":"The prerequisite conditions that must all be satisfied\n"},"elsePaths":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseElsePath:getEscalationPathPathIfElseThenPathIfElseElsePath"},"description":"The nodes that form the levels if our condition is not met\n"},"thenPaths":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseThenPath:getEscalationPathPathIfElseThenPathIfElseThenPath"},"description":"Then path nodes\n"}},"type":"object","required":["conditions","elsePaths","thenPaths"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseCondition:getEscalationPathPathIfElseThenPathIfElseCondition":{"properties":{"operation":{"type":"string","description":"The logical operation to be applied\n"},"paramBindings":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseConditionParamBinding:getEscalationPathPathIfElseThenPathIfElseConditionParamBinding"},"description":"Bindings for the operation parameters\n"},"subject":{"type":"string","description":"The subject of the condition, on which the operation is applied\n"}},"type":"object","required":["operation","paramBindings","subject"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseConditionParamBinding:getEscalationPathPathIfElseThenPathIfElseConditionParamBinding":{"properties":{"arrayValues":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseConditionParamBindingArrayValue:getEscalationPathPathIfElseThenPathIfElseConditionParamBindingArrayValue"},"description":"The array of literal or reference parameter values\n"},"value":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseConditionParamBindingValue:getEscalationPathPathIfElseThenPathIfElseConditionParamBindingValue","description":"The literal or reference parameter value\n"}},"type":"object","required":["arrayValues","value"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseConditionParamBindingArrayValue:getEscalationPathPathIfElseThenPathIfElseConditionParamBindingArrayValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object","required":["literal","reference"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseConditionParamBindingValue:getEscalationPathPathIfElseThenPathIfElseConditionParamBindingValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object","required":["literal","reference"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseElsePath:getEscalationPathPathIfElseThenPathIfElseElsePath":{"properties":{"id":{"type":"string","description":"An ID for this node, unique within the escalation path.\n"},"ifElse":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseElsePathIfElse:getEscalationPathPathIfElseThenPathIfElseElsePathIfElse"},"level":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseElsePathLevel:getEscalationPathPathIfElseThenPathIfElseElsePathLevel"},"notifyChannel":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseElsePathNotifyChannel:getEscalationPathPathIfElseThenPathIfElseElsePathNotifyChannel"},"repeat":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseElsePathRepeat:getEscalationPathPathIfElseThenPathIfElseElsePathRepeat"},"type":{"type":"string","description":"The type of this node. Available types are:\n* level: A set of targets (users or schedules) that should be paged, either all at once, or with a round-robin configuration.\n* notify_channel: Send the escalation to a Slack channel, where it can be acked by anyone in the channel.\n* if_else: Branch the escalation based on a set of conditions.\n* repeat: Go back to a previous node and repeat the logic from there.\n"}},"type":"object","required":["id","ifElse","level","notifyChannel","repeat","type"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseElsePathIfElse:getEscalationPathPathIfElseThenPathIfElseElsePathIfElse":{"properties":{"conditions":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseElsePathIfElseCondition:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseCondition"},"description":"The prerequisite conditions that must all be satisfied\n"},"elsePaths":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePath:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePath"},"description":"The nodes that form the levels if our condition is not met\n"},"thenPaths":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPath:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPath"},"description":"Then path nodes\n"}},"type":"object","required":["conditions","elsePaths","thenPaths"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseElsePathIfElseCondition:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseCondition":{"properties":{"operation":{"type":"string","description":"The logical operation to be applied\n"},"paramBindings":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseElsePathIfElseConditionParamBinding:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseConditionParamBinding"},"description":"Bindings for the operation parameters\n"},"subject":{"type":"string","description":"The subject of the condition, on which the operation is applied\n"}},"type":"object","required":["operation","paramBindings","subject"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseElsePathIfElseConditionParamBinding:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseConditionParamBinding":{"properties":{"arrayValues":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseElsePathIfElseConditionParamBindingArrayValue:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseConditionParamBindingArrayValue"},"description":"The array of literal or reference parameter values\n"},"value":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseElsePathIfElseConditionParamBindingValue:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseConditionParamBindingValue","description":"The literal or reference parameter value\n"}},"type":"object","required":["arrayValues","value"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseElsePathIfElseConditionParamBindingArrayValue:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseConditionParamBindingArrayValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object","required":["literal","reference"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseElsePathIfElseConditionParamBindingValue:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseConditionParamBindingValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object","required":["literal","reference"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePath:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePath":{"properties":{"id":{"type":"string","description":"An ID for this node, unique within the escalation path.\n"},"ifElse":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElse:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElse"},"level":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathLevel:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathLevel"},"notifyChannel":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathNotifyChannel:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathNotifyChannel"},"repeat":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathRepeat:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathRepeat"},"type":{"type":"string","description":"The type of this node. Available types are:\n* level: A set of targets (users or schedules) that should be paged, either all at once, or with a round-robin configuration.\n* notify_channel: Send the escalation to a Slack channel, where it can be acked by anyone in the channel.\n* if_else: Branch the escalation based on a set of conditions.\n* repeat: Go back to a previous node and repeat the logic from there.\n"}},"type":"object","required":["id","ifElse","level","notifyChannel","repeat","type"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElse:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElse":{"properties":{"conditions":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseCondition:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseCondition"},"description":"The prerequisite conditions that must all be satisfied\n"},"elsePaths":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseElsePath:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseElsePath"},"description":"The nodes that form the levels if our condition is not met\n"},"thenPaths":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseThenPath:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseThenPath"},"description":"Then path nodes\n"}},"type":"object","required":["conditions","elsePaths","thenPaths"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseCondition:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseCondition":{"properties":{"operation":{"type":"string","description":"The logical operation to be applied\n"},"paramBindings":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseConditionParamBinding:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseConditionParamBinding"},"description":"Bindings for the operation parameters\n"},"subject":{"type":"string","description":"The subject of the condition, on which the operation is applied\n"}},"type":"object","required":["operation","paramBindings","subject"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseConditionParamBinding:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseConditionParamBinding":{"properties":{"arrayValues":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseConditionParamBindingArrayValue:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseConditionParamBindingArrayValue"},"description":"The array of literal or reference parameter values\n"},"value":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseConditionParamBindingValue:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseConditionParamBindingValue","description":"The literal or reference parameter value\n"}},"type":"object","required":["arrayValues","value"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseConditionParamBindingArrayValue:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseConditionParamBindingArrayValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object","required":["literal","reference"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseConditionParamBindingValue:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseConditionParamBindingValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object","required":["literal","reference"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseElsePath:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseElsePath":{"properties":{"id":{"type":"string","description":"An ID for this node, unique within the escalation path.\n"},"level":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseElsePathLevel:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseElsePathLevel"},"notifyChannel":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseElsePathNotifyChannel:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseElsePathNotifyChannel"},"repeat":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseElsePathRepeat:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseElsePathRepeat"},"type":{"type":"string","description":"The type of this node. Available types are:\n* level: A set of targets (users or schedules) that should be paged, either all at once, or with a round-robin configuration.\n* notify_channel: Send the escalation to a Slack channel, where it can be acked by anyone in the channel.\n* if_else: Branch the escalation based on a set of conditions.\n* repeat: Go back to a previous node and repeat the logic from there.\n"}},"type":"object","required":["id","level","notifyChannel","repeat","type"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseElsePathLevel:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseElsePathLevel":{"properties":{"ackMode":{"type":"string","description":"Controls the behaviour of acknowledgements for this level, with 'first' cancelling all other escalations on the same level when someone acks\n"},"roundRobinConfig":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseElsePathLevelRoundRobinConfig:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseElsePathLevelRoundRobinConfig"},"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseElsePathLevelTarget:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseElsePathLevelTarget"},"description":"The targets (users or schedules) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before proceeding to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["ackMode","roundRobinConfig","targets","timeToAckIntervalCondition","timeToAckSeconds","timeToAckWeekdayIntervalConfigId"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseElsePathLevelRoundRobinConfig:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseElsePathLevelRoundRobinConfig":{"properties":{"enabled":{"type":"boolean","description":"Whether round robin is enabled for this level\n"},"rotateAfterSeconds":{"type":"number","description":"How long should we wait before rotating to the next target in a round robin, if not set will stick with a single target per level.\n"}},"type":"object","required":["enabled","rotateAfterSeconds"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseElsePathLevelTarget:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseElsePathLevelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently*on*call, all*users or all*users*for*rota and specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target\n"}},"type":"object","required":["id","scheduleMode","type","urgency"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseElsePathNotifyChannel:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseElsePathNotifyChannel":{"properties":{"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseElsePathNotifyChannelTarget:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseElsePathNotifyChannelTarget"},"description":"The targets (Slack channels) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before moving on to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["targets","timeToAckIntervalCondition","timeToAckSeconds","timeToAckWeekdayIntervalConfigId"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseElsePathNotifyChannelTarget:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseElsePathNotifyChannelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently*on*call, all*users or all*users*for*rota and specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target\n"}},"type":"object","required":["id","scheduleMode","type","urgency"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseElsePathRepeat:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseElsePathRepeat":{"properties":{"repeatTimes":{"type":"number","description":"How many times to repeat these nodes\n"},"toNode":{"type":"string","description":"Which node ID we begin repeating from.\n"}},"type":"object","required":["repeatTimes","toNode"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseThenPath:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseThenPath":{"properties":{"id":{"type":"string","description":"An ID for this node, unique within the escalation path.\n"},"level":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseThenPathLevel:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseThenPathLevel"},"notifyChannel":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseThenPathNotifyChannel:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseThenPathNotifyChannel"},"repeat":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseThenPathRepeat:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseThenPathRepeat"},"type":{"type":"string","description":"The type of this node. Available types are:\n* level: A set of targets (users or schedules) that should be paged, either all at once, or with a round-robin configuration.\n* notify_channel: Send the escalation to a Slack channel, where it can be acked by anyone in the channel.\n* if_else: Branch the escalation based on a set of conditions.\n* repeat: Go back to a previous node and repeat the logic from there.\n"}},"type":"object","required":["id","level","notifyChannel","repeat","type"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseThenPathLevel:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseThenPathLevel":{"properties":{"ackMode":{"type":"string","description":"Controls the behaviour of acknowledgements for this level, with 'first' cancelling all other escalations on the same level when someone acks\n"},"roundRobinConfig":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseThenPathLevelRoundRobinConfig:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseThenPathLevelRoundRobinConfig"},"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseThenPathLevelTarget:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseThenPathLevelTarget"},"description":"The targets (users or schedules) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before proceeding to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["ackMode","roundRobinConfig","targets","timeToAckIntervalCondition","timeToAckSeconds","timeToAckWeekdayIntervalConfigId"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseThenPathLevelRoundRobinConfig:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseThenPathLevelRoundRobinConfig":{"properties":{"enabled":{"type":"boolean","description":"Whether round robin is enabled for this level\n"},"rotateAfterSeconds":{"type":"number","description":"How long should we wait before rotating to the next target in a round robin, if not set will stick with a single target per level.\n"}},"type":"object","required":["enabled","rotateAfterSeconds"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseThenPathLevelTarget:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseThenPathLevelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently*on*call, all*users or all*users*for*rota and specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target\n"}},"type":"object","required":["id","scheduleMode","type","urgency"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseThenPathNotifyChannel:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseThenPathNotifyChannel":{"properties":{"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseThenPathNotifyChannelTarget:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseThenPathNotifyChannelTarget"},"description":"The targets (Slack channels) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before moving on to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["targets","timeToAckIntervalCondition","timeToAckSeconds","timeToAckWeekdayIntervalConfigId"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseThenPathNotifyChannelTarget:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseThenPathNotifyChannelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently*on*call, all*users or all*users*for*rota and specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target\n"}},"type":"object","required":["id","scheduleMode","type","urgency"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseThenPathRepeat:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathIfElseThenPathRepeat":{"properties":{"repeatTimes":{"type":"number","description":"How many times to repeat these nodes\n"},"toNode":{"type":"string","description":"Which node ID we begin repeating from.\n"}},"type":"object","required":["repeatTimes","toNode"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathLevel:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathLevel":{"properties":{"ackMode":{"type":"string","description":"Controls the behaviour of acknowledgements for this level, with 'first' cancelling all other escalations on the same level when someone acks\n"},"roundRobinConfig":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathLevelRoundRobinConfig:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathLevelRoundRobinConfig"},"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathLevelTarget:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathLevelTarget"},"description":"The targets (users or schedules) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before proceeding to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["ackMode","roundRobinConfig","targets","timeToAckIntervalCondition","timeToAckSeconds","timeToAckWeekdayIntervalConfigId"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathLevelRoundRobinConfig:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathLevelRoundRobinConfig":{"properties":{"enabled":{"type":"boolean","description":"Whether round robin is enabled for this level\n"},"rotateAfterSeconds":{"type":"number","description":"How long should we wait before rotating to the next target in a round robin, if not set will stick with a single target per level.\n"}},"type":"object","required":["enabled","rotateAfterSeconds"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathLevelTarget:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathLevelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently*on*call, all*users or all*users*for*rota and specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target\n"}},"type":"object","required":["id","scheduleMode","type","urgency"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathNotifyChannel:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathNotifyChannel":{"properties":{"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathNotifyChannelTarget:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathNotifyChannelTarget"},"description":"The targets (Slack channels) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before moving on to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["targets","timeToAckIntervalCondition","timeToAckSeconds","timeToAckWeekdayIntervalConfigId"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathNotifyChannelTarget:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathNotifyChannelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently*on*call, all*users or all*users*for*rota and specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target\n"}},"type":"object","required":["id","scheduleMode","type","urgency"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathRepeat:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseElsePathRepeat":{"properties":{"repeatTimes":{"type":"number","description":"How many times to repeat these nodes\n"},"toNode":{"type":"string","description":"Which node ID we begin repeating from.\n"}},"type":"object","required":["repeatTimes","toNode"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPath:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPath":{"properties":{"id":{"type":"string","description":"An ID for this node, unique within the escalation path.\n"},"ifElse":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElse:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElse"},"level":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathLevel:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathLevel"},"notifyChannel":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathNotifyChannel:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathNotifyChannel"},"repeat":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathRepeat:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathRepeat"},"type":{"type":"string","description":"The type of this node. Available types are:\n* level: A set of targets (users or schedules) that should be paged, either all at once, or with a round-robin configuration.\n* notify_channel: Send the escalation to a Slack channel, where it can be acked by anyone in the channel.\n* if_else: Branch the escalation based on a set of conditions.\n* repeat: Go back to a previous node and repeat the logic from there.\n"}},"type":"object","required":["id","ifElse","level","notifyChannel","repeat","type"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElse:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElse":{"properties":{"conditions":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseCondition:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseCondition"},"description":"The prerequisite conditions that must all be satisfied\n"},"elsePaths":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseElsePath:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseElsePath"},"description":"The nodes that form the levels if our condition is not met\n"},"thenPaths":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseThenPath:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseThenPath"},"description":"Then path nodes\n"}},"type":"object","required":["conditions","elsePaths","thenPaths"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseCondition:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseCondition":{"properties":{"operation":{"type":"string","description":"The logical operation to be applied\n"},"paramBindings":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseConditionParamBinding:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseConditionParamBinding"},"description":"Bindings for the operation parameters\n"},"subject":{"type":"string","description":"The subject of the condition, on which the operation is applied\n"}},"type":"object","required":["operation","paramBindings","subject"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseConditionParamBinding:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseConditionParamBinding":{"properties":{"arrayValues":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseConditionParamBindingArrayValue:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseConditionParamBindingArrayValue"},"description":"The array of literal or reference parameter values\n"},"value":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseConditionParamBindingValue:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseConditionParamBindingValue","description":"The literal or reference parameter value\n"}},"type":"object","required":["arrayValues","value"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseConditionParamBindingArrayValue:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseConditionParamBindingArrayValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object","required":["literal","reference"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseConditionParamBindingValue:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseConditionParamBindingValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object","required":["literal","reference"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseElsePath:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseElsePath":{"properties":{"id":{"type":"string","description":"An ID for this node, unique within the escalation path.\n"},"level":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseElsePathLevel:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseElsePathLevel"},"notifyChannel":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseElsePathNotifyChannel:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseElsePathNotifyChannel"},"repeat":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseElsePathRepeat:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseElsePathRepeat"},"type":{"type":"string","description":"The type of this node. Available types are:\n* level: A set of targets (users or schedules) that should be paged, either all at once, or with a round-robin configuration.\n* notify_channel: Send the escalation to a Slack channel, where it can be acked by anyone in the channel.\n* if_else: Branch the escalation based on a set of conditions.\n* repeat: Go back to a previous node and repeat the logic from there.\n"}},"type":"object","required":["id","level","notifyChannel","repeat","type"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseElsePathLevel:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseElsePathLevel":{"properties":{"ackMode":{"type":"string","description":"Controls the behaviour of acknowledgements for this level, with 'first' cancelling all other escalations on the same level when someone acks\n"},"roundRobinConfig":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseElsePathLevelRoundRobinConfig:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseElsePathLevelRoundRobinConfig"},"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseElsePathLevelTarget:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseElsePathLevelTarget"},"description":"The targets (users or schedules) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before proceeding to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["ackMode","roundRobinConfig","targets","timeToAckIntervalCondition","timeToAckSeconds","timeToAckWeekdayIntervalConfigId"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseElsePathLevelRoundRobinConfig:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseElsePathLevelRoundRobinConfig":{"properties":{"enabled":{"type":"boolean","description":"Whether round robin is enabled for this level\n"},"rotateAfterSeconds":{"type":"number","description":"How long should we wait before rotating to the next target in a round robin, if not set will stick with a single target per level.\n"}},"type":"object","required":["enabled","rotateAfterSeconds"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseElsePathLevelTarget:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseElsePathLevelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently*on*call, all*users or all*users*for*rota and specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target\n"}},"type":"object","required":["id","scheduleMode","type","urgency"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseElsePathNotifyChannel:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseElsePathNotifyChannel":{"properties":{"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseElsePathNotifyChannelTarget:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseElsePathNotifyChannelTarget"},"description":"The targets (Slack channels) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before moving on to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["targets","timeToAckIntervalCondition","timeToAckSeconds","timeToAckWeekdayIntervalConfigId"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseElsePathNotifyChannelTarget:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseElsePathNotifyChannelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently*on*call, all*users or all*users*for*rota and specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target\n"}},"type":"object","required":["id","scheduleMode","type","urgency"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseElsePathRepeat:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseElsePathRepeat":{"properties":{"repeatTimes":{"type":"number","description":"How many times to repeat these nodes\n"},"toNode":{"type":"string","description":"Which node ID we begin repeating from.\n"}},"type":"object","required":["repeatTimes","toNode"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseThenPath:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseThenPath":{"properties":{"id":{"type":"string","description":"An ID for this node, unique within the escalation path.\n"},"level":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseThenPathLevel:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseThenPathLevel"},"notifyChannel":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseThenPathNotifyChannel:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseThenPathNotifyChannel"},"repeat":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseThenPathRepeat:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseThenPathRepeat"},"type":{"type":"string","description":"The type of this node. Available types are:\n* level: A set of targets (users or schedules) that should be paged, either all at once, or with a round-robin configuration.\n* notify_channel: Send the escalation to a Slack channel, where it can be acked by anyone in the channel.\n* if_else: Branch the escalation based on a set of conditions.\n* repeat: Go back to a previous node and repeat the logic from there.\n"}},"type":"object","required":["id","level","notifyChannel","repeat","type"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseThenPathLevel:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseThenPathLevel":{"properties":{"ackMode":{"type":"string","description":"Controls the behaviour of acknowledgements for this level, with 'first' cancelling all other escalations on the same level when someone acks\n"},"roundRobinConfig":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseThenPathLevelRoundRobinConfig:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseThenPathLevelRoundRobinConfig"},"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseThenPathLevelTarget:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseThenPathLevelTarget"},"description":"The targets (users or schedules) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before proceeding to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["ackMode","roundRobinConfig","targets","timeToAckIntervalCondition","timeToAckSeconds","timeToAckWeekdayIntervalConfigId"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseThenPathLevelRoundRobinConfig:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseThenPathLevelRoundRobinConfig":{"properties":{"enabled":{"type":"boolean","description":"Whether round robin is enabled for this level\n"},"rotateAfterSeconds":{"type":"number","description":"How long should we wait before rotating to the next target in a round robin, if not set will stick with a single target per level.\n"}},"type":"object","required":["enabled","rotateAfterSeconds"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseThenPathLevelTarget:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseThenPathLevelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently*on*call, all*users or all*users*for*rota and specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target\n"}},"type":"object","required":["id","scheduleMode","type","urgency"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseThenPathNotifyChannel:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseThenPathNotifyChannel":{"properties":{"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseThenPathNotifyChannelTarget:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseThenPathNotifyChannelTarget"},"description":"The targets (Slack channels) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before moving on to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["targets","timeToAckIntervalCondition","timeToAckSeconds","timeToAckWeekdayIntervalConfigId"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseThenPathNotifyChannelTarget:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseThenPathNotifyChannelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently*on*call, all*users or all*users*for*rota and specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target\n"}},"type":"object","required":["id","scheduleMode","type","urgency"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseThenPathRepeat:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathIfElseThenPathRepeat":{"properties":{"repeatTimes":{"type":"number","description":"How many times to repeat these nodes\n"},"toNode":{"type":"string","description":"Which node ID we begin repeating from.\n"}},"type":"object","required":["repeatTimes","toNode"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathLevel:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathLevel":{"properties":{"ackMode":{"type":"string","description":"Controls the behaviour of acknowledgements for this level, with 'first' cancelling all other escalations on the same level when someone acks\n"},"roundRobinConfig":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathLevelRoundRobinConfig:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathLevelRoundRobinConfig"},"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathLevelTarget:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathLevelTarget"},"description":"The targets (users or schedules) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before proceeding to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["ackMode","roundRobinConfig","targets","timeToAckIntervalCondition","timeToAckSeconds","timeToAckWeekdayIntervalConfigId"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathLevelRoundRobinConfig:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathLevelRoundRobinConfig":{"properties":{"enabled":{"type":"boolean","description":"Whether round robin is enabled for this level\n"},"rotateAfterSeconds":{"type":"number","description":"How long should we wait before rotating to the next target in a round robin, if not set will stick with a single target per level.\n"}},"type":"object","required":["enabled","rotateAfterSeconds"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathLevelTarget:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathLevelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently*on*call, all*users or all*users*for*rota and specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target\n"}},"type":"object","required":["id","scheduleMode","type","urgency"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathNotifyChannel:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathNotifyChannel":{"properties":{"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathNotifyChannelTarget:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathNotifyChannelTarget"},"description":"The targets (Slack channels) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before moving on to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["targets","timeToAckIntervalCondition","timeToAckSeconds","timeToAckWeekdayIntervalConfigId"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathNotifyChannelTarget:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathNotifyChannelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently*on*call, all*users or all*users*for*rota and specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target\n"}},"type":"object","required":["id","scheduleMode","type","urgency"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathRepeat:getEscalationPathPathIfElseThenPathIfElseElsePathIfElseThenPathRepeat":{"properties":{"repeatTimes":{"type":"number","description":"How many times to repeat these nodes\n"},"toNode":{"type":"string","description":"Which node ID we begin repeating from.\n"}},"type":"object","required":["repeatTimes","toNode"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseElsePathLevel:getEscalationPathPathIfElseThenPathIfElseElsePathLevel":{"properties":{"ackMode":{"type":"string","description":"Controls the behaviour of acknowledgements for this level, with 'first' cancelling all other escalations on the same level when someone acks\n"},"roundRobinConfig":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseElsePathLevelRoundRobinConfig:getEscalationPathPathIfElseThenPathIfElseElsePathLevelRoundRobinConfig"},"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseElsePathLevelTarget:getEscalationPathPathIfElseThenPathIfElseElsePathLevelTarget"},"description":"The targets (users or schedules) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before proceeding to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["ackMode","roundRobinConfig","targets","timeToAckIntervalCondition","timeToAckSeconds","timeToAckWeekdayIntervalConfigId"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseElsePathLevelRoundRobinConfig:getEscalationPathPathIfElseThenPathIfElseElsePathLevelRoundRobinConfig":{"properties":{"enabled":{"type":"boolean","description":"Whether round robin is enabled for this level\n"},"rotateAfterSeconds":{"type":"number","description":"How long should we wait before rotating to the next target in a round robin, if not set will stick with a single target per level.\n"}},"type":"object","required":["enabled","rotateAfterSeconds"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseElsePathLevelTarget:getEscalationPathPathIfElseThenPathIfElseElsePathLevelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently*on*call, all*users or all*users*for*rota and specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target\n"}},"type":"object","required":["id","scheduleMode","type","urgency"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseElsePathNotifyChannel:getEscalationPathPathIfElseThenPathIfElseElsePathNotifyChannel":{"properties":{"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseElsePathNotifyChannelTarget:getEscalationPathPathIfElseThenPathIfElseElsePathNotifyChannelTarget"},"description":"The targets (Slack channels) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before moving on to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["targets","timeToAckIntervalCondition","timeToAckSeconds","timeToAckWeekdayIntervalConfigId"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseElsePathNotifyChannelTarget:getEscalationPathPathIfElseThenPathIfElseElsePathNotifyChannelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently*on*call, all*users or all*users*for*rota and specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target\n"}},"type":"object","required":["id","scheduleMode","type","urgency"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseElsePathRepeat:getEscalationPathPathIfElseThenPathIfElseElsePathRepeat":{"properties":{"repeatTimes":{"type":"number","description":"How many times to repeat these nodes\n"},"toNode":{"type":"string","description":"Which node ID we begin repeating from.\n"}},"type":"object","required":["repeatTimes","toNode"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseThenPath:getEscalationPathPathIfElseThenPathIfElseThenPath":{"properties":{"id":{"type":"string","description":"An ID for this node, unique within the escalation path.\n"},"ifElse":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseThenPathIfElse:getEscalationPathPathIfElseThenPathIfElseThenPathIfElse"},"level":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseThenPathLevel:getEscalationPathPathIfElseThenPathIfElseThenPathLevel"},"notifyChannel":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseThenPathNotifyChannel:getEscalationPathPathIfElseThenPathIfElseThenPathNotifyChannel"},"repeat":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseThenPathRepeat:getEscalationPathPathIfElseThenPathIfElseThenPathRepeat"},"type":{"type":"string","description":"The type of this node. Available types are:\n* level: A set of targets (users or schedules) that should be paged, either all at once, or with a round-robin configuration.\n* notify_channel: Send the escalation to a Slack channel, where it can be acked by anyone in the channel.\n* if_else: Branch the escalation based on a set of conditions.\n* repeat: Go back to a previous node and repeat the logic from there.\n"}},"type":"object","required":["id","ifElse","level","notifyChannel","repeat","type"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseThenPathIfElse:getEscalationPathPathIfElseThenPathIfElseThenPathIfElse":{"properties":{"conditions":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseThenPathIfElseCondition:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseCondition"},"description":"The prerequisite conditions that must all be satisfied\n"},"elsePaths":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePath:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePath"},"description":"The nodes that form the levels if our condition is not met\n"},"thenPaths":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPath:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPath"},"description":"Then path nodes\n"}},"type":"object","required":["conditions","elsePaths","thenPaths"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseThenPathIfElseCondition:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseCondition":{"properties":{"operation":{"type":"string","description":"The logical operation to be applied\n"},"paramBindings":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseThenPathIfElseConditionParamBinding:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseConditionParamBinding"},"description":"Bindings for the operation parameters\n"},"subject":{"type":"string","description":"The subject of the condition, on which the operation is applied\n"}},"type":"object","required":["operation","paramBindings","subject"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseThenPathIfElseConditionParamBinding:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseConditionParamBinding":{"properties":{"arrayValues":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseThenPathIfElseConditionParamBindingArrayValue:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseConditionParamBindingArrayValue"},"description":"The array of literal or reference parameter values\n"},"value":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseThenPathIfElseConditionParamBindingValue:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseConditionParamBindingValue","description":"The literal or reference parameter value\n"}},"type":"object","required":["arrayValues","value"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseThenPathIfElseConditionParamBindingArrayValue:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseConditionParamBindingArrayValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object","required":["literal","reference"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseThenPathIfElseConditionParamBindingValue:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseConditionParamBindingValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object","required":["literal","reference"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePath:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePath":{"properties":{"id":{"type":"string","description":"An ID for this node, unique within the escalation path.\n"},"ifElse":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElse:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElse"},"level":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathLevel:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathLevel"},"notifyChannel":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathNotifyChannel:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathNotifyChannel"},"repeat":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathRepeat:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathRepeat"},"type":{"type":"string","description":"The type of this node. Available types are:\n* level: A set of targets (users or schedules) that should be paged, either all at once, or with a round-robin configuration.\n* notify_channel: Send the escalation to a Slack channel, where it can be acked by anyone in the channel.\n* if_else: Branch the escalation based on a set of conditions.\n* repeat: Go back to a previous node and repeat the logic from there.\n"}},"type":"object","required":["id","ifElse","level","notifyChannel","repeat","type"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElse:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElse":{"properties":{"conditions":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseCondition:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseCondition"},"description":"The prerequisite conditions that must all be satisfied\n"},"elsePaths":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseElsePath:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseElsePath"},"description":"The nodes that form the levels if our condition is not met\n"},"thenPaths":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseThenPath:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseThenPath"},"description":"Then path nodes\n"}},"type":"object","required":["conditions","elsePaths","thenPaths"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseCondition:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseCondition":{"properties":{"operation":{"type":"string","description":"The logical operation to be applied\n"},"paramBindings":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseConditionParamBinding:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseConditionParamBinding"},"description":"Bindings for the operation parameters\n"},"subject":{"type":"string","description":"The subject of the condition, on which the operation is applied\n"}},"type":"object","required":["operation","paramBindings","subject"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseConditionParamBinding:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseConditionParamBinding":{"properties":{"arrayValues":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseConditionParamBindingArrayValue:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseConditionParamBindingArrayValue"},"description":"The array of literal or reference parameter values\n"},"value":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseConditionParamBindingValue:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseConditionParamBindingValue","description":"The literal or reference parameter value\n"}},"type":"object","required":["arrayValues","value"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseConditionParamBindingArrayValue:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseConditionParamBindingArrayValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object","required":["literal","reference"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseConditionParamBindingValue:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseConditionParamBindingValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object","required":["literal","reference"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseElsePath:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseElsePath":{"properties":{"id":{"type":"string","description":"An ID for this node, unique within the escalation path.\n"},"level":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseElsePathLevel:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseElsePathLevel"},"notifyChannel":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseElsePathNotifyChannel:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseElsePathNotifyChannel"},"repeat":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseElsePathRepeat:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseElsePathRepeat"},"type":{"type":"string","description":"The type of this node. Available types are:\n* level: A set of targets (users or schedules) that should be paged, either all at once, or with a round-robin configuration.\n* notify_channel: Send the escalation to a Slack channel, where it can be acked by anyone in the channel.\n* if_else: Branch the escalation based on a set of conditions.\n* repeat: Go back to a previous node and repeat the logic from there.\n"}},"type":"object","required":["id","level","notifyChannel","repeat","type"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseElsePathLevel:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseElsePathLevel":{"properties":{"ackMode":{"type":"string","description":"Controls the behaviour of acknowledgements for this level, with 'first' cancelling all other escalations on the same level when someone acks\n"},"roundRobinConfig":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseElsePathLevelRoundRobinConfig:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseElsePathLevelRoundRobinConfig"},"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseElsePathLevelTarget:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseElsePathLevelTarget"},"description":"The targets (users or schedules) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before proceeding to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["ackMode","roundRobinConfig","targets","timeToAckIntervalCondition","timeToAckSeconds","timeToAckWeekdayIntervalConfigId"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseElsePathLevelRoundRobinConfig:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseElsePathLevelRoundRobinConfig":{"properties":{"enabled":{"type":"boolean","description":"Whether round robin is enabled for this level\n"},"rotateAfterSeconds":{"type":"number","description":"How long should we wait before rotating to the next target in a round robin, if not set will stick with a single target per level.\n"}},"type":"object","required":["enabled","rotateAfterSeconds"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseElsePathLevelTarget:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseElsePathLevelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently*on*call, all*users or all*users*for*rota and specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target\n"}},"type":"object","required":["id","scheduleMode","type","urgency"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseElsePathNotifyChannel:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseElsePathNotifyChannel":{"properties":{"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseElsePathNotifyChannelTarget:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseElsePathNotifyChannelTarget"},"description":"The targets (Slack channels) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before moving on to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["targets","timeToAckIntervalCondition","timeToAckSeconds","timeToAckWeekdayIntervalConfigId"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseElsePathNotifyChannelTarget:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseElsePathNotifyChannelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently*on*call, all*users or all*users*for*rota and specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target\n"}},"type":"object","required":["id","scheduleMode","type","urgency"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseElsePathRepeat:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseElsePathRepeat":{"properties":{"repeatTimes":{"type":"number","description":"How many times to repeat these nodes\n"},"toNode":{"type":"string","description":"Which node ID we begin repeating from.\n"}},"type":"object","required":["repeatTimes","toNode"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseThenPath:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseThenPath":{"properties":{"id":{"type":"string","description":"An ID for this node, unique within the escalation path.\n"},"level":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseThenPathLevel:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseThenPathLevel"},"notifyChannel":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseThenPathNotifyChannel:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseThenPathNotifyChannel"},"repeat":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseThenPathRepeat:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseThenPathRepeat"},"type":{"type":"string","description":"The type of this node. Available types are:\n* level: A set of targets (users or schedules) that should be paged, either all at once, or with a round-robin configuration.\n* notify_channel: Send the escalation to a Slack channel, where it can be acked by anyone in the channel.\n* if_else: Branch the escalation based on a set of conditions.\n* repeat: Go back to a previous node and repeat the logic from there.\n"}},"type":"object","required":["id","level","notifyChannel","repeat","type"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseThenPathLevel:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseThenPathLevel":{"properties":{"ackMode":{"type":"string","description":"Controls the behaviour of acknowledgements for this level, with 'first' cancelling all other escalations on the same level when someone acks\n"},"roundRobinConfig":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseThenPathLevelRoundRobinConfig:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseThenPathLevelRoundRobinConfig"},"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseThenPathLevelTarget:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseThenPathLevelTarget"},"description":"The targets (users or schedules) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before proceeding to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["ackMode","roundRobinConfig","targets","timeToAckIntervalCondition","timeToAckSeconds","timeToAckWeekdayIntervalConfigId"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseThenPathLevelRoundRobinConfig:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseThenPathLevelRoundRobinConfig":{"properties":{"enabled":{"type":"boolean","description":"Whether round robin is enabled for this level\n"},"rotateAfterSeconds":{"type":"number","description":"How long should we wait before rotating to the next target in a round robin, if not set will stick with a single target per level.\n"}},"type":"object","required":["enabled","rotateAfterSeconds"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseThenPathLevelTarget:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseThenPathLevelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently*on*call, all*users or all*users*for*rota and specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target\n"}},"type":"object","required":["id","scheduleMode","type","urgency"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseThenPathNotifyChannel:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseThenPathNotifyChannel":{"properties":{"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseThenPathNotifyChannelTarget:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseThenPathNotifyChannelTarget"},"description":"The targets (Slack channels) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before moving on to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["targets","timeToAckIntervalCondition","timeToAckSeconds","timeToAckWeekdayIntervalConfigId"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseThenPathNotifyChannelTarget:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseThenPathNotifyChannelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently*on*call, all*users or all*users*for*rota and specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target\n"}},"type":"object","required":["id","scheduleMode","type","urgency"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseThenPathRepeat:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathIfElseThenPathRepeat":{"properties":{"repeatTimes":{"type":"number","description":"How many times to repeat these nodes\n"},"toNode":{"type":"string","description":"Which node ID we begin repeating from.\n"}},"type":"object","required":["repeatTimes","toNode"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathLevel:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathLevel":{"properties":{"ackMode":{"type":"string","description":"Controls the behaviour of acknowledgements for this level, with 'first' cancelling all other escalations on the same level when someone acks\n"},"roundRobinConfig":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathLevelRoundRobinConfig:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathLevelRoundRobinConfig"},"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathLevelTarget:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathLevelTarget"},"description":"The targets (users or schedules) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before proceeding to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["ackMode","roundRobinConfig","targets","timeToAckIntervalCondition","timeToAckSeconds","timeToAckWeekdayIntervalConfigId"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathLevelRoundRobinConfig:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathLevelRoundRobinConfig":{"properties":{"enabled":{"type":"boolean","description":"Whether round robin is enabled for this level\n"},"rotateAfterSeconds":{"type":"number","description":"How long should we wait before rotating to the next target in a round robin, if not set will stick with a single target per level.\n"}},"type":"object","required":["enabled","rotateAfterSeconds"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathLevelTarget:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathLevelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently*on*call, all*users or all*users*for*rota and specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target\n"}},"type":"object","required":["id","scheduleMode","type","urgency"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathNotifyChannel:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathNotifyChannel":{"properties":{"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathNotifyChannelTarget:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathNotifyChannelTarget"},"description":"The targets (Slack channels) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before moving on to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["targets","timeToAckIntervalCondition","timeToAckSeconds","timeToAckWeekdayIntervalConfigId"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathNotifyChannelTarget:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathNotifyChannelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently*on*call, all*users or all*users*for*rota and specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target\n"}},"type":"object","required":["id","scheduleMode","type","urgency"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathRepeat:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseElsePathRepeat":{"properties":{"repeatTimes":{"type":"number","description":"How many times to repeat these nodes\n"},"toNode":{"type":"string","description":"Which node ID we begin repeating from.\n"}},"type":"object","required":["repeatTimes","toNode"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPath:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPath":{"properties":{"id":{"type":"string","description":"An ID for this node, unique within the escalation path.\n"},"ifElse":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElse:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElse"},"level":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathLevel:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathLevel"},"notifyChannel":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathNotifyChannel:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathNotifyChannel"},"repeat":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathRepeat:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathRepeat"},"type":{"type":"string","description":"The type of this node. Available types are:\n* level: A set of targets (users or schedules) that should be paged, either all at once, or with a round-robin configuration.\n* notify_channel: Send the escalation to a Slack channel, where it can be acked by anyone in the channel.\n* if_else: Branch the escalation based on a set of conditions.\n* repeat: Go back to a previous node and repeat the logic from there.\n"}},"type":"object","required":["id","ifElse","level","notifyChannel","repeat","type"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElse:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElse":{"properties":{"conditions":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseCondition:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseCondition"},"description":"The prerequisite conditions that must all be satisfied\n"},"elsePaths":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseElsePath:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseElsePath"},"description":"The nodes that form the levels if our condition is not met\n"},"thenPaths":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseThenPath:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseThenPath"},"description":"Then path nodes\n"}},"type":"object","required":["conditions","elsePaths","thenPaths"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseCondition:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseCondition":{"properties":{"operation":{"type":"string","description":"The logical operation to be applied\n"},"paramBindings":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseConditionParamBinding:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseConditionParamBinding"},"description":"Bindings for the operation parameters\n"},"subject":{"type":"string","description":"The subject of the condition, on which the operation is applied\n"}},"type":"object","required":["operation","paramBindings","subject"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseConditionParamBinding:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseConditionParamBinding":{"properties":{"arrayValues":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseConditionParamBindingArrayValue:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseConditionParamBindingArrayValue"},"description":"The array of literal or reference parameter values\n"},"value":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseConditionParamBindingValue:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseConditionParamBindingValue","description":"The literal or reference parameter value\n"}},"type":"object","required":["arrayValues","value"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseConditionParamBindingArrayValue:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseConditionParamBindingArrayValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object","required":["literal","reference"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseConditionParamBindingValue:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseConditionParamBindingValue":{"properties":{"literal":{"type":"string","description":"If set, this is the literal value of the step parameter\n"},"reference":{"type":"string","description":"If set, this is the reference into the trigger scope that is the value of this parameter\n"}},"type":"object","required":["literal","reference"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseElsePath:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseElsePath":{"properties":{"id":{"type":"string","description":"An ID for this node, unique within the escalation path.\n"},"level":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseElsePathLevel:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseElsePathLevel"},"notifyChannel":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseElsePathNotifyChannel:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseElsePathNotifyChannel"},"repeat":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseElsePathRepeat:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseElsePathRepeat"},"type":{"type":"string","description":"The type of this node. Available types are:\n* level: A set of targets (users or schedules) that should be paged, either all at once, or with a round-robin configuration.\n* notify_channel: Send the escalation to a Slack channel, where it can be acked by anyone in the channel.\n* if_else: Branch the escalation based on a set of conditions.\n* repeat: Go back to a previous node and repeat the logic from there.\n"}},"type":"object","required":["id","level","notifyChannel","repeat","type"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseElsePathLevel:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseElsePathLevel":{"properties":{"ackMode":{"type":"string","description":"Controls the behaviour of acknowledgements for this level, with 'first' cancelling all other escalations on the same level when someone acks\n"},"roundRobinConfig":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseElsePathLevelRoundRobinConfig:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseElsePathLevelRoundRobinConfig"},"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseElsePathLevelTarget:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseElsePathLevelTarget"},"description":"The targets (users or schedules) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before proceeding to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["ackMode","roundRobinConfig","targets","timeToAckIntervalCondition","timeToAckSeconds","timeToAckWeekdayIntervalConfigId"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseElsePathLevelRoundRobinConfig:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseElsePathLevelRoundRobinConfig":{"properties":{"enabled":{"type":"boolean","description":"Whether round robin is enabled for this level\n"},"rotateAfterSeconds":{"type":"number","description":"How long should we wait before rotating to the next target in a round robin, if not set will stick with a single target per level.\n"}},"type":"object","required":["enabled","rotateAfterSeconds"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseElsePathLevelTarget:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseElsePathLevelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently*on*call, all*users or all*users*for*rota and specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target\n"}},"type":"object","required":["id","scheduleMode","type","urgency"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseElsePathNotifyChannel:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseElsePathNotifyChannel":{"properties":{"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseElsePathNotifyChannelTarget:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseElsePathNotifyChannelTarget"},"description":"The targets (Slack channels) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before moving on to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["targets","timeToAckIntervalCondition","timeToAckSeconds","timeToAckWeekdayIntervalConfigId"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseElsePathNotifyChannelTarget:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseElsePathNotifyChannelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently*on*call, all*users or all*users*for*rota and specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target\n"}},"type":"object","required":["id","scheduleMode","type","urgency"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseElsePathRepeat:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseElsePathRepeat":{"properties":{"repeatTimes":{"type":"number","description":"How many times to repeat these nodes\n"},"toNode":{"type":"string","description":"Which node ID we begin repeating from.\n"}},"type":"object","required":["repeatTimes","toNode"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseThenPath:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseThenPath":{"properties":{"id":{"type":"string","description":"An ID for this node, unique within the escalation path.\n"},"level":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseThenPathLevel:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseThenPathLevel"},"notifyChannel":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseThenPathNotifyChannel:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseThenPathNotifyChannel"},"repeat":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseThenPathRepeat:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseThenPathRepeat"},"type":{"type":"string","description":"The type of this node. Available types are:\n* level: A set of targets (users or schedules) that should be paged, either all at once, or with a round-robin configuration.\n* notify_channel: Send the escalation to a Slack channel, where it can be acked by anyone in the channel.\n* if_else: Branch the escalation based on a set of conditions.\n* repeat: Go back to a previous node and repeat the logic from there.\n"}},"type":"object","required":["id","level","notifyChannel","repeat","type"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseThenPathLevel:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseThenPathLevel":{"properties":{"ackMode":{"type":"string","description":"Controls the behaviour of acknowledgements for this level, with 'first' cancelling all other escalations on the same level when someone acks\n"},"roundRobinConfig":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseThenPathLevelRoundRobinConfig:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseThenPathLevelRoundRobinConfig"},"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseThenPathLevelTarget:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseThenPathLevelTarget"},"description":"The targets (users or schedules) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before proceeding to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["ackMode","roundRobinConfig","targets","timeToAckIntervalCondition","timeToAckSeconds","timeToAckWeekdayIntervalConfigId"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseThenPathLevelRoundRobinConfig:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseThenPathLevelRoundRobinConfig":{"properties":{"enabled":{"type":"boolean","description":"Whether round robin is enabled for this level\n"},"rotateAfterSeconds":{"type":"number","description":"How long should we wait before rotating to the next target in a round robin, if not set will stick with a single target per level.\n"}},"type":"object","required":["enabled","rotateAfterSeconds"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseThenPathLevelTarget:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseThenPathLevelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently*on*call, all*users or all*users*for*rota and specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target\n"}},"type":"object","required":["id","scheduleMode","type","urgency"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseThenPathNotifyChannel:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseThenPathNotifyChannel":{"properties":{"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseThenPathNotifyChannelTarget:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseThenPathNotifyChannelTarget"},"description":"The targets (Slack channels) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before moving on to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["targets","timeToAckIntervalCondition","timeToAckSeconds","timeToAckWeekdayIntervalConfigId"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseThenPathNotifyChannelTarget:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseThenPathNotifyChannelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently*on*call, all*users or all*users*for*rota and specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target\n"}},"type":"object","required":["id","scheduleMode","type","urgency"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseThenPathRepeat:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathIfElseThenPathRepeat":{"properties":{"repeatTimes":{"type":"number","description":"How many times to repeat these nodes\n"},"toNode":{"type":"string","description":"Which node ID we begin repeating from.\n"}},"type":"object","required":["repeatTimes","toNode"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathLevel:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathLevel":{"properties":{"ackMode":{"type":"string","description":"Controls the behaviour of acknowledgements for this level, with 'first' cancelling all other escalations on the same level when someone acks\n"},"roundRobinConfig":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathLevelRoundRobinConfig:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathLevelRoundRobinConfig"},"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathLevelTarget:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathLevelTarget"},"description":"The targets (users or schedules) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before proceeding to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["ackMode","roundRobinConfig","targets","timeToAckIntervalCondition","timeToAckSeconds","timeToAckWeekdayIntervalConfigId"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathLevelRoundRobinConfig:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathLevelRoundRobinConfig":{"properties":{"enabled":{"type":"boolean","description":"Whether round robin is enabled for this level\n"},"rotateAfterSeconds":{"type":"number","description":"How long should we wait before rotating to the next target in a round robin, if not set will stick with a single target per level.\n"}},"type":"object","required":["enabled","rotateAfterSeconds"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathLevelTarget:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathLevelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently*on*call, all*users or all*users*for*rota and specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target\n"}},"type":"object","required":["id","scheduleMode","type","urgency"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathNotifyChannel:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathNotifyChannel":{"properties":{"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathNotifyChannelTarget:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathNotifyChannelTarget"},"description":"The targets (Slack channels) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before moving on to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["targets","timeToAckIntervalCondition","timeToAckSeconds","timeToAckWeekdayIntervalConfigId"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathNotifyChannelTarget:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathNotifyChannelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently*on*call, all*users or all*users*for*rota and specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target\n"}},"type":"object","required":["id","scheduleMode","type","urgency"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathRepeat:getEscalationPathPathIfElseThenPathIfElseThenPathIfElseThenPathRepeat":{"properties":{"repeatTimes":{"type":"number","description":"How many times to repeat these nodes\n"},"toNode":{"type":"string","description":"Which node ID we begin repeating from.\n"}},"type":"object","required":["repeatTimes","toNode"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseThenPathLevel:getEscalationPathPathIfElseThenPathIfElseThenPathLevel":{"properties":{"ackMode":{"type":"string","description":"Controls the behaviour of acknowledgements for this level, with 'first' cancelling all other escalations on the same level when someone acks\n"},"roundRobinConfig":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseThenPathLevelRoundRobinConfig:getEscalationPathPathIfElseThenPathIfElseThenPathLevelRoundRobinConfig"},"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseThenPathLevelTarget:getEscalationPathPathIfElseThenPathIfElseThenPathLevelTarget"},"description":"The targets (users or schedules) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before proceeding to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["ackMode","roundRobinConfig","targets","timeToAckIntervalCondition","timeToAckSeconds","timeToAckWeekdayIntervalConfigId"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseThenPathLevelRoundRobinConfig:getEscalationPathPathIfElseThenPathIfElseThenPathLevelRoundRobinConfig":{"properties":{"enabled":{"type":"boolean","description":"Whether round robin is enabled for this level\n"},"rotateAfterSeconds":{"type":"number","description":"How long should we wait before rotating to the next target in a round robin, if not set will stick with a single target per level.\n"}},"type":"object","required":["enabled","rotateAfterSeconds"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseThenPathLevelTarget:getEscalationPathPathIfElseThenPathIfElseThenPathLevelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently*on*call, all*users or all*users*for*rota and specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target\n"}},"type":"object","required":["id","scheduleMode","type","urgency"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseThenPathNotifyChannel:getEscalationPathPathIfElseThenPathIfElseThenPathNotifyChannel":{"properties":{"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathIfElseThenPathNotifyChannelTarget:getEscalationPathPathIfElseThenPathIfElseThenPathNotifyChannelTarget"},"description":"The targets (Slack channels) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before moving on to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["targets","timeToAckIntervalCondition","timeToAckSeconds","timeToAckWeekdayIntervalConfigId"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseThenPathNotifyChannelTarget:getEscalationPathPathIfElseThenPathIfElseThenPathNotifyChannelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently*on*call, all*users or all*users*for*rota and specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target\n"}},"type":"object","required":["id","scheduleMode","type","urgency"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathIfElseThenPathRepeat:getEscalationPathPathIfElseThenPathIfElseThenPathRepeat":{"properties":{"repeatTimes":{"type":"number","description":"How many times to repeat these nodes\n"},"toNode":{"type":"string","description":"Which node ID we begin repeating from.\n"}},"type":"object","required":["repeatTimes","toNode"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathLevel:getEscalationPathPathIfElseThenPathLevel":{"properties":{"ackMode":{"type":"string","description":"Controls the behaviour of acknowledgements for this level, with 'first' cancelling all other escalations on the same level when someone acks\n"},"roundRobinConfig":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathLevelRoundRobinConfig:getEscalationPathPathIfElseThenPathLevelRoundRobinConfig"},"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathLevelTarget:getEscalationPathPathIfElseThenPathLevelTarget"},"description":"The targets (users or schedules) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before proceeding to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["ackMode","roundRobinConfig","targets","timeToAckIntervalCondition","timeToAckSeconds","timeToAckWeekdayIntervalConfigId"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathLevelRoundRobinConfig:getEscalationPathPathIfElseThenPathLevelRoundRobinConfig":{"properties":{"enabled":{"type":"boolean","description":"Whether round robin is enabled for this level\n"},"rotateAfterSeconds":{"type":"number","description":"How long should we wait before rotating to the next target in a round robin, if not set will stick with a single target per level.\n"}},"type":"object","required":["enabled","rotateAfterSeconds"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathLevelTarget:getEscalationPathPathIfElseThenPathLevelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently*on*call, all*users or all*users*for*rota and specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target\n"}},"type":"object","required":["id","scheduleMode","type","urgency"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathNotifyChannel:getEscalationPathPathIfElseThenPathNotifyChannel":{"properties":{"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathIfElseThenPathNotifyChannelTarget:getEscalationPathPathIfElseThenPathNotifyChannelTarget"},"description":"The targets (Slack channels) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before moving on to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["targets","timeToAckIntervalCondition","timeToAckSeconds","timeToAckWeekdayIntervalConfigId"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathNotifyChannelTarget:getEscalationPathPathIfElseThenPathNotifyChannelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently*on*call, all*users or all*users*for*rota and specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target\n"}},"type":"object","required":["id","scheduleMode","type","urgency"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathIfElseThenPathRepeat:getEscalationPathPathIfElseThenPathRepeat":{"properties":{"repeatTimes":{"type":"number","description":"How many times to repeat these nodes\n"},"toNode":{"type":"string","description":"Which node ID we begin repeating from.\n"}},"type":"object","required":["repeatTimes","toNode"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathLevel:getEscalationPathPathLevel":{"properties":{"ackMode":{"type":"string","description":"Controls the behaviour of acknowledgements for this level, with 'first' cancelling all other escalations on the same level when someone acks\n"},"roundRobinConfig":{"$ref":"#/types/incident:index%2FgetEscalationPathPathLevelRoundRobinConfig:getEscalationPathPathLevelRoundRobinConfig"},"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathLevelTarget:getEscalationPathPathLevelTarget"},"description":"The targets (users or schedules) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before proceeding to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["ackMode","roundRobinConfig","targets","timeToAckIntervalCondition","timeToAckSeconds","timeToAckWeekdayIntervalConfigId"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathLevelRoundRobinConfig:getEscalationPathPathLevelRoundRobinConfig":{"properties":{"enabled":{"type":"boolean","description":"Whether round robin is enabled for this level\n"},"rotateAfterSeconds":{"type":"number","description":"How long should we wait before rotating to the next target in a round robin, if not set will stick with a single target per level.\n"}},"type":"object","required":["enabled","rotateAfterSeconds"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathLevelTarget:getEscalationPathPathLevelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently*on*call, all*users or all*users*for*rota and specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target\n"}},"type":"object","required":["id","scheduleMode","type","urgency"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathNotifyChannel:getEscalationPathPathNotifyChannel":{"properties":{"targets":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPathNotifyChannelTarget:getEscalationPathPathNotifyChannelTarget"},"description":"The targets (Slack channels) for this level\n"},"timeToAckIntervalCondition":{"type":"string","description":"If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive\n"},"timeToAckSeconds":{"type":"number","description":"How long should we wait for this level to acknowledge before moving on to the next node in the path?\n"},"timeToAckWeekdayIntervalConfigId":{"type":"string","description":"If the time to ack is relative to a time window, this identifies which window it is relative to\n"}},"type":"object","required":["targets","timeToAckIntervalCondition","timeToAckSeconds","timeToAckWeekdayIntervalConfigId"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathNotifyChannelTarget:getEscalationPathPathNotifyChannelTarget":{"properties":{"id":{"type":"string","description":"Uniquely identifies an entity of this type\n"},"scheduleMode":{"type":"string","description":"Only set for schedule targets, and either currently*on*call, all*users or all*users*for*rota and specifies which users to fetch from the schedule\n"},"type":{"type":"string","description":"Controls what type of entity this target identifies, such as EscalationPolicy or User\n"},"urgency":{"type":"string","description":"The urgency of this escalation path target\n"}},"type":"object","required":["id","scheduleMode","type","urgency"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathPathRepeat:getEscalationPathPathRepeat":{"properties":{"repeatTimes":{"type":"number","description":"How many times to repeat these nodes\n"},"toNode":{"type":"string","description":"Which node ID we begin repeating from.\n"}},"type":"object","required":["repeatTimes","toNode"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathWorkingHour:getEscalationPathWorkingHour":{"properties":{"id":{"type":"string","description":"The unique identifier for this set of working intervals\n"},"name":{"type":"string","description":"A human readable label for this set of working intervals\n"},"timezone":{"type":"string","description":"How to interpret all the intervals\n"},"weekdayIntervals":{"type":"array","items":{"$ref":"#/types/incident:index%2FgetEscalationPathWorkingHourWeekdayInterval:getEscalationPathWorkingHourWeekdayInterval"}}},"type":"object","required":["id","name","timezone","weekdayIntervals"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getEscalationPathWorkingHourWeekdayInterval:getEscalationPathWorkingHourWeekdayInterval":{"properties":{"endTime":{"type":"string","description":"End time of the interval, in 24hr format\n"},"startTime":{"type":"string","description":"Start time of the interval, in 24hr format\n"},"weekday":{"type":"string","description":"Weekdays for use within a schedule or escalation path\n"}},"type":"object","required":["endTime","startTime","weekday"],"language":{"nodejs":{"requiredInputs":[]}}},"incident:index/getIncidentTypesIncidentType:getIncidentTypesIncidentType":{"properties":{"createInTriage":{"type":"string","description":"Whether incidents of this must always, or can optionally, be created in triage\n"},"description":{"type":"string","description":"What is this incident type for?\n"},"id":{"type":"string","description":"Unique identifier for this Incident Type\n"},"isDefault":{"type":"boolean","description":"The default Incident Type is used when no other type is explicitly specified\n"},"name":{"type":"string","description":"The name of this Incident Type\n"},"privateIncidentsOnly":{"type":"boolean","description":"Should all incidents created with this Incident Type be private?\n"}},"type":"object","required":["createInTriage","description","id","isDefault","name","privateIncidentsOnly"],"language":{"nodejs":{"requiredInputs":[]}}}},"provider":{"description":"The provider type for the incident package. By default, resources use package-wide configuration\nsettings, however an explicit `Provider` instance may be created and passed during resource\nconstruction to achieve fine-grained programmatic control over provider settings. See the\n[documentation](https://www.pulumi.com/docs/reference/programming-model/#providers) for more information.\n","properties":{"apiKey":{"type":"string","description":"API key for incident.io (https://app.incident.io/settings/api-keys). Sourced from the `INCIDENT_API_KEY` environment variable, if set.","secret":true},"endpoint":{"type":"string","description":"URL of the incident.io API"}},"type":"object","inputProperties":{"apiKey":{"type":"string","description":"API key for incident.io (https://app.incident.io/settings/api-keys). Sourced from the `INCIDENT_API_KEY` environment variable, if set.","secret":true},"endpoint":{"type":"string","description":"URL of the incident.io API"}},"methods":{"terraformConfig":"pulumi:providers:incident/terraformConfig"}},"resources":{"incident:index/alertAttribute:AlertAttribute":{"description":"View and manage alert attributes.\n\nAlert attributes are used to parse structured data from alerts coming in via alert sources.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as incident from \"@pulumi/incident\";\n\n// Create an alert attribute that points at a single Github user in the catalog\nconst githubUser = new incident.AlertAttribute(\"github_user\", {\n    name: \"Github user\",\n    type: \"CatalogEntry[\\\"Github User\\\"]\",\n    array: false,\n    required: true,\n});\n// Create an optional alert attribute for severity information\nconst severity = new incident.AlertAttribute(\"severity\", {\n    name: \"Severity\",\n    type: \"String\",\n    array: false,\n    required: false,\n});\n```\n```python\nimport pulumi\nimport pulumi_incident as incident\n\n# Create an alert attribute that points at a single Github user in the catalog\ngithub_user = incident.AlertAttribute(\"github_user\",\n    name=\"Github user\",\n    type=\"CatalogEntry[\\\"Github User\\\"]\",\n    array=False,\n    required=True)\n# Create an optional alert attribute for severity information\nseverity = incident.AlertAttribute(\"severity\",\n    name=\"Severity\",\n    type=\"String\",\n    array=False,\n    required=False)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Incident = Pulumi.Incident;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Create an alert attribute that points at a single Github user in the catalog\n    var githubUser = new Incident.AlertAttribute(\"github_user\", new()\n    {\n        Name = \"Github user\",\n        Type = \"CatalogEntry[\\\"Github User\\\"]\",\n        Array = false,\n        Required = true,\n    });\n\n    // Create an optional alert attribute for severity information\n    var severity = new Incident.AlertAttribute(\"severity\", new()\n    {\n        Name = \"Severity\",\n        Type = \"String\",\n        Array = false,\n        Required = false,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/incident/v5/incident\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Create an alert attribute that points at a single Github user in the catalog\n\t\t_, err := incident.NewAlertAttribute(ctx, \"github_user\", \u0026incident.AlertAttributeArgs{\n\t\t\tName:     pulumi.String(\"Github user\"),\n\t\t\tType:     pulumi.String(\"CatalogEntry[\\\"Github User\\\"]\"),\n\t\t\tArray:    pulumi.Bool(false),\n\t\t\tRequired: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Create an optional alert attribute for severity information\n\t\t_, err = incident.NewAlertAttribute(ctx, \"severity\", \u0026incident.AlertAttributeArgs{\n\t\t\tName:     pulumi.String(\"Severity\"),\n\t\t\tType:     pulumi.String(\"String\"),\n\t\t\tArray:    pulumi.Bool(false),\n\t\t\tRequired: pulumi.Bool(false),\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.incident.AlertAttribute;\nimport com.pulumi.incident.AlertAttributeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Create an alert attribute that points at a single Github user in the catalog\n        var githubUser = new AlertAttribute(\"githubUser\", AlertAttributeArgs.builder()\n            .name(\"Github user\")\n            .type(\"CatalogEntry[\\\"Github User\\\"]\")\n            .array(false)\n            .required(true)\n            .build());\n\n        // Create an optional alert attribute for severity information\n        var severity = new AlertAttribute(\"severity\", AlertAttributeArgs.builder()\n            .name(\"Severity\")\n            .type(\"String\")\n            .array(false)\n            .required(false)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an alert attribute that points at a single Github user in the catalog\n  githubUser:\n    type: incident:AlertAttribute\n    name: github_user\n    properties:\n      name: Github user\n      type: CatalogEntry[\"Github User\"]\n      array: false\n      required: true\n  # Create an optional alert attribute for severity information\n  severity:\n    type: incident:AlertAttribute\n    properties:\n      name: Severity\n      type: String\n      array: false\n      required: false\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nThe `pulumi import` command can be used, for example:\n\n#!/bin/bash\n\nImport an alert attribute using its ID\n\nReplace the ID with a real ID from your incident.io organization\n\n```sh\n$ pulumi import incident:index/alertAttribute:AlertAttribute example 01ABC123DEF456GHI789JKL\n```\n\n","properties":{"array":{"type":"boolean","description":"Whether this attribute is an array\n"},"name":{"type":"string","description":"Unique name of this attribute\n"},"required":{"type":"boolean","description":"Whether this attribute is required. If this field is not set, the existing setting will be preserved.\n"},"type":{"type":"string","description":"Engine resource name for this attribute\n"}},"type":"object","required":["array","name","required","type"],"inputProperties":{"array":{"type":"boolean","description":"Whether this attribute is an array\n"},"name":{"type":"string","description":"Unique name of this attribute\n"},"required":{"type":"boolean","description":"Whether this attribute is required. If this field is not set, the existing setting will be preserved.\n"},"type":{"type":"string","description":"Engine resource name for this attribute\n"}},"requiredInputs":["array","type"],"stateInputs":{"description":"Input properties used for looking up and filtering AlertAttribute resources.\n","properties":{"array":{"type":"boolean","description":"Whether this attribute is an array\n"},"name":{"type":"string","description":"Unique name of this attribute\n"},"required":{"type":"boolean","description":"Whether this attribute is required. If this field is not set, the existing setting will be preserved.\n"},"type":{"type":"string","description":"Engine resource name for this attribute\n"}},"type":"object"}},"incident:index/alertRoute:AlertRoute":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as incident from \"@pulumi/incident\";\n\nconst serviceAlerts = new incident.AlertRoute(\"service_alerts\", {\n    name: \"Testing Alert Routes\",\n    enabled: true,\n    isPrivate: false,\n    alertSources: [{\n        alertSourceId: http.id,\n        conditionGroups: [{\n            conditions: [{\n                subject: \"alert.title\",\n                operation: \"is_set\",\n                paramBindings: [],\n            }],\n        }],\n    }],\n    conditionGroups: [{\n        conditions: [{\n            subject: \"alert.title\",\n            operation: \"is_set\",\n            paramBindings: [],\n        }],\n    }],\n    expressions: [],\n    channelConfigs: [{\n        conditionGroups: [{\n            conditions: [{\n                subject: \"alert.title\",\n                operation: \"contains\",\n                paramBindings: [{\n                    value: {\n                        literal: \"critical\",\n                    },\n                }],\n            }],\n        }],\n        slackTargets: {\n            binding: {\n                arrayValues: [{\n                    literal: \"C01234567\",\n                }],\n            },\n            channelVisibility: \"public\",\n        },\n    }],\n    escalationConfig: {\n        autoCancelEscalations: true,\n        escalationTargets: [\n            {\n                escalationPaths: {\n                    arrayValues: [{\n                        reference: \"alert.attributes.escalation_path\",\n                    }],\n                },\n            },\n            {\n                escalationPaths: {\n                    arrayValues: [{\n                        literal: \"01JPQNFD3RWAAY2V83QQ80D1ZV\",\n                    }],\n                },\n            },\n            {\n                users: {\n                    arrayValues: [{\n                        literal: \"01GX3C1TK13RQSEGP59XZ3MYP0\",\n                    }],\n                },\n            },\n        ],\n    },\n    incidentConfig: {\n        autoDeclineEnabled: false,\n        enabled: true,\n        conditionGroups: [],\n        deferTimeSeconds: 300,\n        groupingKeys: [],\n    },\n    incidentTemplate: {\n        customFields: [{\n            customFieldId: typeField.id,\n            mergeStrategy: \"first-wins\",\n            binding: {\n                value: {\n                    literal: \"Test incident\",\n                },\n            },\n        }],\n        name: {\n            autogenerated: true,\n            value: {\n                literal: JSON.stringify({\n                    content: [{\n                        content: [{\n                            attrs: {\n                                label: \"Alert → Title\",\n                                missing: false,\n                                name: \"alert.title\",\n                            },\n                            type: \"varSpec\",\n                        }],\n                        type: \"paragraph\",\n                    }],\n                    type: \"doc\",\n                }),\n            },\n        },\n        summary: {\n            autogenerated: true,\n            value: {\n                literal: JSON.stringify({\n                    content: [{\n                        content: [{\n                            attrs: {\n                                label: \"Alert → Description\",\n                                missing: false,\n                                name: \"alert.description\",\n                            },\n                            type: \"varSpec\",\n                        }],\n                        type: \"paragraph\",\n                    }],\n                    type: \"doc\",\n                }),\n            },\n        },\n        startInTriage: {\n            value: {\n                literal: \"true\",\n            },\n        },\n        severity: {\n            mergeStrategy: \"first-wins\",\n        },\n    },\n    messageTemplate: {\n        value: {\n            literal: \"01KHJTJR4FZJJZQ6G02EBFJAAY\",\n        },\n    },\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_incident as incident\n\nservice_alerts = incident.AlertRoute(\"service_alerts\",\n    name=\"Testing Alert Routes\",\n    enabled=True,\n    is_private=False,\n    alert_sources=[{\n        \"alert_source_id\": http[\"id\"],\n        \"condition_groups\": [{\n            \"conditions\": [{\n                \"subject\": \"alert.title\",\n                \"operation\": \"is_set\",\n                \"param_bindings\": [],\n            }],\n        }],\n    }],\n    condition_groups=[{\n        \"conditions\": [{\n            \"subject\": \"alert.title\",\n            \"operation\": \"is_set\",\n            \"param_bindings\": [],\n        }],\n    }],\n    expressions=[],\n    channel_configs=[{\n        \"condition_groups\": [{\n            \"conditions\": [{\n                \"subject\": \"alert.title\",\n                \"operation\": \"contains\",\n                \"param_bindings\": [{\n                    \"value\": {\n                        \"literal\": \"critical\",\n                    },\n                }],\n            }],\n        }],\n        \"slack_targets\": {\n            \"binding\": {\n                \"array_values\": [{\n                    \"literal\": \"C01234567\",\n                }],\n            },\n            \"channel_visibility\": \"public\",\n        },\n    }],\n    escalation_config={\n        \"auto_cancel_escalations\": True,\n        \"escalation_targets\": [\n            {\n                \"escalation_paths\": {\n                    \"array_values\": [{\n                        \"reference\": \"alert.attributes.escalation_path\",\n                    }],\n                },\n            },\n            {\n                \"escalation_paths\": {\n                    \"array_values\": [{\n                        \"literal\": \"01JPQNFD3RWAAY2V83QQ80D1ZV\",\n                    }],\n                },\n            },\n            {\n                \"users\": {\n                    \"array_values\": [{\n                        \"literal\": \"01GX3C1TK13RQSEGP59XZ3MYP0\",\n                    }],\n                },\n            },\n        ],\n    },\n    incident_config={\n        \"auto_decline_enabled\": False,\n        \"enabled\": True,\n        \"condition_groups\": [],\n        \"defer_time_seconds\": 300,\n        \"grouping_keys\": [],\n    },\n    incident_template={\n        \"custom_fields\": [{\n            \"custom_field_id\": type_field[\"id\"],\n            \"merge_strategy\": \"first-wins\",\n            \"binding\": {\n                \"value\": {\n                    \"literal\": \"Test incident\",\n                },\n            },\n        }],\n        \"name\": {\n            \"autogenerated\": True,\n            \"value\": {\n                \"literal\": json.dumps({\n                    \"content\": [{\n                        \"content\": [{\n                            \"attrs\": {\n                                \"label\": \"Alert → Title\",\n                                \"missing\": False,\n                                \"name\": \"alert.title\",\n                            },\n                            \"type\": \"varSpec\",\n                        }],\n                        \"type\": \"paragraph\",\n                    }],\n                    \"type\": \"doc\",\n                }),\n            },\n        },\n        \"summary\": {\n            \"autogenerated\": True,\n            \"value\": {\n                \"literal\": json.dumps({\n                    \"content\": [{\n                        \"content\": [{\n                            \"attrs\": {\n                                \"label\": \"Alert → Description\",\n                                \"missing\": False,\n                                \"name\": \"alert.description\",\n                            },\n                            \"type\": \"varSpec\",\n                        }],\n                        \"type\": \"paragraph\",\n                    }],\n                    \"type\": \"doc\",\n                }),\n            },\n        },\n        \"start_in_triage\": {\n            \"value\": {\n                \"literal\": \"true\",\n            },\n        },\n        \"severity\": {\n            \"merge_strategy\": \"first-wins\",\n        },\n    },\n    message_template={\n        \"value\": {\n            \"literal\": \"01KHJTJR4FZJJZQ6G02EBFJAAY\",\n        },\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing Incident = Pulumi.Incident;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var serviceAlerts = new Incident.AlertRoute(\"service_alerts\", new()\n    {\n        Name = \"Testing Alert Routes\",\n        Enabled = true,\n        IsPrivate = false,\n        AlertSources = new[]\n        {\n            new Incident.Inputs.AlertRouteAlertSourceArgs\n            {\n                AlertSourceId = http.Id,\n                ConditionGroups = new[]\n                {\n                    new Incident.Inputs.AlertRouteAlertSourceConditionGroupArgs\n                    {\n                        Conditions = new[]\n                        {\n                            new Incident.Inputs.AlertRouteAlertSourceConditionGroupConditionArgs\n                            {\n                                Subject = \"alert.title\",\n                                Operation = \"is_set\",\n                                ParamBindings = new() { },\n                            },\n                        },\n                    },\n                },\n            },\n        },\n        ConditionGroups = new[]\n        {\n            new Incident.Inputs.AlertRouteConditionGroupArgs\n            {\n                Conditions = new[]\n                {\n                    new Incident.Inputs.AlertRouteConditionGroupConditionArgs\n                    {\n                        Subject = \"alert.title\",\n                        Operation = \"is_set\",\n                        ParamBindings = new() { },\n                    },\n                },\n            },\n        },\n        Expressions = new[] {},\n        ChannelConfigs = new[]\n        {\n            new Incident.Inputs.AlertRouteChannelConfigArgs\n            {\n                ConditionGroups = new[]\n                {\n                    new Incident.Inputs.AlertRouteChannelConfigConditionGroupArgs\n                    {\n                        Conditions = new[]\n                        {\n                            new Incident.Inputs.AlertRouteChannelConfigConditionGroupConditionArgs\n                            {\n                                Subject = \"alert.title\",\n                                Operation = \"contains\",\n                                ParamBindings = new[]\n                                {\n                                    new Incident.Inputs.AlertRouteChannelConfigConditionGroupConditionParamBindingArgs\n                                    {\n                                        Value = new Incident.Inputs.AlertRouteChannelConfigConditionGroupConditionParamBindingValueArgs\n                                        {\n                                            Literal = \"critical\",\n                                        },\n                                    },\n                                },\n                            },\n                        },\n                    },\n                },\n                SlackTargets = new Incident.Inputs.AlertRouteChannelConfigSlackTargetsArgs\n                {\n                    Binding = new Incident.Inputs.AlertRouteChannelConfigSlackTargetsBindingArgs\n                    {\n                        ArrayValues = new[]\n                        {\n                            new Incident.Inputs.AlertRouteChannelConfigSlackTargetsBindingArrayValueArgs\n                            {\n                                Literal = \"C01234567\",\n                            },\n                        },\n                    },\n                    ChannelVisibility = \"public\",\n                },\n            },\n        },\n        EscalationConfig = new Incident.Inputs.AlertRouteEscalationConfigArgs\n        {\n            AutoCancelEscalations = true,\n            EscalationTargets = new[]\n            {\n                new Incident.Inputs.AlertRouteEscalationConfigEscalationTargetArgs\n                {\n                    EscalationPaths = new Incident.Inputs.AlertRouteEscalationConfigEscalationTargetEscalationPathsArgs\n                    {\n                        ArrayValues = new[]\n                        {\n                            new Incident.Inputs.AlertRouteEscalationConfigEscalationTargetEscalationPathsArrayValueArgs\n                            {\n                                Reference = \"alert.attributes.escalation_path\",\n                            },\n                        },\n                    },\n                },\n                new Incident.Inputs.AlertRouteEscalationConfigEscalationTargetArgs\n                {\n                    EscalationPaths = new Incident.Inputs.AlertRouteEscalationConfigEscalationTargetEscalationPathsArgs\n                    {\n                        ArrayValues = new[]\n                        {\n                            new Incident.Inputs.AlertRouteEscalationConfigEscalationTargetEscalationPathsArrayValueArgs\n                            {\n                                Literal = \"01JPQNFD3RWAAY2V83QQ80D1ZV\",\n                            },\n                        },\n                    },\n                },\n                new Incident.Inputs.AlertRouteEscalationConfigEscalationTargetArgs\n                {\n                    Users = new Incident.Inputs.AlertRouteEscalationConfigEscalationTargetUsersArgs\n                    {\n                        ArrayValues = new[]\n                        {\n                            new Incident.Inputs.AlertRouteEscalationConfigEscalationTargetUsersArrayValueArgs\n                            {\n                                Literal = \"01GX3C1TK13RQSEGP59XZ3MYP0\",\n                            },\n                        },\n                    },\n                },\n            },\n        },\n        IncidentConfig = new Incident.Inputs.AlertRouteIncidentConfigArgs\n        {\n            AutoDeclineEnabled = false,\n            Enabled = true,\n            ConditionGroups = new() { },\n            DeferTimeSeconds = 300,\n            GroupingKeys = new() { },\n        },\n        IncidentTemplate = new Incident.Inputs.AlertRouteIncidentTemplateArgs\n        {\n            CustomFields = new[]\n            {\n                new Incident.Inputs.AlertRouteIncidentTemplateCustomFieldArgs\n                {\n                    CustomFieldId = typeField.Id,\n                    MergeStrategy = \"first-wins\",\n                    Binding = new Incident.Inputs.AlertRouteIncidentTemplateCustomFieldBindingArgs\n                    {\n                        Value = new Incident.Inputs.AlertRouteIncidentTemplateCustomFieldBindingValueArgs\n                        {\n                            Literal = \"Test incident\",\n                        },\n                    },\n                },\n            },\n            Name = new Incident.Inputs.AlertRouteIncidentTemplateNameArgs\n            {\n                Autogenerated = true,\n                Value = new Incident.Inputs.AlertRouteIncidentTemplateNameValueArgs\n                {\n                    Literal = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n                    {\n                        [\"content\"] = new[]\n                        {\n                            new Dictionary\u003cstring, object?\u003e\n                            {\n                                [\"content\"] = new[]\n                                {\n                                    new Dictionary\u003cstring, object?\u003e\n                                    {\n                                        [\"attrs\"] = new Dictionary\u003cstring, object?\u003e\n                                        {\n                                            [\"label\"] = \"Alert → Title\",\n                                            [\"missing\"] = false,\n                                            [\"name\"] = \"alert.title\",\n                                        },\n                                        [\"type\"] = \"varSpec\",\n                                    },\n                                },\n                                [\"type\"] = \"paragraph\",\n                            },\n                        },\n                        [\"type\"] = \"doc\",\n                    }),\n                },\n            },\n            Summary = new Incident.Inputs.AlertRouteIncidentTemplateSummaryArgs\n            {\n                Autogenerated = true,\n                Value = new Incident.Inputs.AlertRouteIncidentTemplateSummaryValueArgs\n                {\n                    Literal = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n                    {\n                        [\"content\"] = new[]\n                        {\n                            new Dictionary\u003cstring, object?\u003e\n                            {\n                                [\"content\"] = new[]\n                                {\n                                    new Dictionary\u003cstring, object?\u003e\n                                    {\n                                        [\"attrs\"] = new Dictionary\u003cstring, object?\u003e\n                                        {\n                                            [\"label\"] = \"Alert → Description\",\n                                            [\"missing\"] = false,\n                                            [\"name\"] = \"alert.description\",\n                                        },\n                                        [\"type\"] = \"varSpec\",\n                                    },\n                                },\n                                [\"type\"] = \"paragraph\",\n                            },\n                        },\n                        [\"type\"] = \"doc\",\n                    }),\n                },\n            },\n            StartInTriage = new Incident.Inputs.AlertRouteIncidentTemplateStartInTriageArgs\n            {\n                Value = new Incident.Inputs.AlertRouteIncidentTemplateStartInTriageValueArgs\n                {\n                    Literal = \"true\",\n                },\n            },\n            Severity = new Incident.Inputs.AlertRouteIncidentTemplateSeverityArgs\n            {\n                MergeStrategy = \"first-wins\",\n            },\n        },\n        MessageTemplate = new Incident.Inputs.AlertRouteMessageTemplateArgs\n        {\n            Value = new Incident.Inputs.AlertRouteMessageTemplateValueArgs\n            {\n                Literal = \"01KHJTJR4FZJJZQ6G02EBFJAAY\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/incident/v5/incident\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\"content\": []map[string]interface{}{\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"content\": []map[string]interface{}{\n\t\t\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\t\t\"attrs\": map[string]interface{}{\n\t\t\t\t\t\t\t\t\"label\":   \"Alert → Title\",\n\t\t\t\t\t\t\t\t\"missing\": false,\n\t\t\t\t\t\t\t\t\"name\":    \"alert.title\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\"type\": \"varSpec\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t\"type\": \"paragraph\",\n\t\t\t\t},\n\t\t\t},\n\t\t\t\"type\": \"doc\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson0 := string(tmpJSON0)\n\t\ttmpJSON1, err := json.Marshal(map[string]interface{}{\n\t\t\t\"content\": []map[string]interface{}{\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"content\": []map[string]interface{}{\n\t\t\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\t\t\"attrs\": map[string]interface{}{\n\t\t\t\t\t\t\t\t\"label\":   \"Alert → Description\",\n\t\t\t\t\t\t\t\t\"missing\": false,\n\t\t\t\t\t\t\t\t\"name\":    \"alert.description\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\"type\": \"varSpec\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t\"type\": \"paragraph\",\n\t\t\t\t},\n\t\t\t},\n\t\t\t\"type\": \"doc\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson1 := string(tmpJSON1)\n\t\t_, err = incident.NewAlertRoute(ctx, \"service_alerts\", \u0026incident.AlertRouteArgs{\n\t\t\tName:      pulumi.String(\"Testing Alert Routes\"),\n\t\t\tEnabled:   pulumi.Bool(true),\n\t\t\tIsPrivate: pulumi.Bool(false),\n\t\t\tAlertSources: incident.AlertRouteAlertSourceArray{\n\t\t\t\t\u0026incident.AlertRouteAlertSourceArgs{\n\t\t\t\t\tAlertSourceId: pulumi.Any(http.Id),\n\t\t\t\t\tConditionGroups: incident.AlertRouteAlertSourceConditionGroupArray{\n\t\t\t\t\t\t\u0026incident.AlertRouteAlertSourceConditionGroupArgs{\n\t\t\t\t\t\t\tConditions: incident.AlertRouteAlertSourceConditionGroupConditionArray{\n\t\t\t\t\t\t\t\t\u0026incident.AlertRouteAlertSourceConditionGroupConditionArgs{\n\t\t\t\t\t\t\t\t\tSubject:       pulumi.String(\"alert.title\"),\n\t\t\t\t\t\t\t\t\tOperation:     pulumi.String(\"is_set\"),\n\t\t\t\t\t\t\t\t\tParamBindings: incident.AlertRouteAlertSourceConditionGroupConditionParamBindingArray{},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tConditionGroups: incident.AlertRouteConditionGroupArray{\n\t\t\t\t\u0026incident.AlertRouteConditionGroupArgs{\n\t\t\t\t\tConditions: incident.AlertRouteConditionGroupConditionArray{\n\t\t\t\t\t\t\u0026incident.AlertRouteConditionGroupConditionArgs{\n\t\t\t\t\t\t\tSubject:       pulumi.String(\"alert.title\"),\n\t\t\t\t\t\t\tOperation:     pulumi.String(\"is_set\"),\n\t\t\t\t\t\t\tParamBindings: incident.AlertRouteConditionGroupConditionParamBindingArray{},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tExpressions: incident.AlertRouteExpressionArray{},\n\t\t\tChannelConfigs: incident.AlertRouteChannelConfigArray{\n\t\t\t\t\u0026incident.AlertRouteChannelConfigArgs{\n\t\t\t\t\tConditionGroups: incident.AlertRouteChannelConfigConditionGroupArray{\n\t\t\t\t\t\t\u0026incident.AlertRouteChannelConfigConditionGroupArgs{\n\t\t\t\t\t\t\tConditions: incident.AlertRouteChannelConfigConditionGroupConditionArray{\n\t\t\t\t\t\t\t\t\u0026incident.AlertRouteChannelConfigConditionGroupConditionArgs{\n\t\t\t\t\t\t\t\t\tSubject:   pulumi.String(\"alert.title\"),\n\t\t\t\t\t\t\t\t\tOperation: pulumi.String(\"contains\"),\n\t\t\t\t\t\t\t\t\tParamBindings: incident.AlertRouteChannelConfigConditionGroupConditionParamBindingArray{\n\t\t\t\t\t\t\t\t\t\t\u0026incident.AlertRouteChannelConfigConditionGroupConditionParamBindingArgs{\n\t\t\t\t\t\t\t\t\t\t\tValue: \u0026incident.AlertRouteChannelConfigConditionGroupConditionParamBindingValueArgs{\n\t\t\t\t\t\t\t\t\t\t\t\tLiteral: pulumi.String(\"critical\"),\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tSlackTargets: \u0026incident.AlertRouteChannelConfigSlackTargetsArgs{\n\t\t\t\t\t\tBinding: \u0026incident.AlertRouteChannelConfigSlackTargetsBindingArgs{\n\t\t\t\t\t\t\tArrayValues: incident.AlertRouteChannelConfigSlackTargetsBindingArrayValueArray{\n\t\t\t\t\t\t\t\t\u0026incident.AlertRouteChannelConfigSlackTargetsBindingArrayValueArgs{\n\t\t\t\t\t\t\t\t\tLiteral: pulumi.String(\"C01234567\"),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\tChannelVisibility: pulumi.String(\"public\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tEscalationConfig: \u0026incident.AlertRouteEscalationConfigArgs{\n\t\t\t\tAutoCancelEscalations: pulumi.Bool(true),\n\t\t\t\tEscalationTargets: incident.AlertRouteEscalationConfigEscalationTargetArray{\n\t\t\t\t\t\u0026incident.AlertRouteEscalationConfigEscalationTargetArgs{\n\t\t\t\t\t\tEscalationPaths: \u0026incident.AlertRouteEscalationConfigEscalationTargetEscalationPathsArgs{\n\t\t\t\t\t\t\tArrayValues: incident.AlertRouteEscalationConfigEscalationTargetEscalationPathsArrayValueArray{\n\t\t\t\t\t\t\t\t\u0026incident.AlertRouteEscalationConfigEscalationTargetEscalationPathsArrayValueArgs{\n\t\t\t\t\t\t\t\t\tReference: pulumi.String(\"alert.attributes.escalation_path\"),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t\u0026incident.AlertRouteEscalationConfigEscalationTargetArgs{\n\t\t\t\t\t\tEscalationPaths: \u0026incident.AlertRouteEscalationConfigEscalationTargetEscalationPathsArgs{\n\t\t\t\t\t\t\tArrayValues: incident.AlertRouteEscalationConfigEscalationTargetEscalationPathsArrayValueArray{\n\t\t\t\t\t\t\t\t\u0026incident.AlertRouteEscalationConfigEscalationTargetEscalationPathsArrayValueArgs{\n\t\t\t\t\t\t\t\t\tLiteral: pulumi.String(\"01JPQNFD3RWAAY2V83QQ80D1ZV\"),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t\u0026incident.AlertRouteEscalationConfigEscalationTargetArgs{\n\t\t\t\t\t\tUsers: \u0026incident.AlertRouteEscalationConfigEscalationTargetUsersArgs{\n\t\t\t\t\t\t\tArrayValues: incident.AlertRouteEscalationConfigEscalationTargetUsersArrayValueArray{\n\t\t\t\t\t\t\t\t\u0026incident.AlertRouteEscalationConfigEscalationTargetUsersArrayValueArgs{\n\t\t\t\t\t\t\t\t\tLiteral: pulumi.String(\"01GX3C1TK13RQSEGP59XZ3MYP0\"),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tIncidentConfig: \u0026incident.AlertRouteIncidentConfigArgs{\n\t\t\t\tAutoDeclineEnabled: pulumi.Bool(false),\n\t\t\t\tEnabled:            pulumi.Bool(true),\n\t\t\t\tConditionGroups:    incident.AlertRouteIncidentConfigConditionGroupArray{},\n\t\t\t\tDeferTimeSeconds:   pulumi.Float64(300),\n\t\t\t\tGroupingKeys:       incident.AlertRouteIncidentConfigGroupingKeyArray{},\n\t\t\t},\n\t\t\tIncidentTemplate: \u0026incident.AlertRouteIncidentTemplateArgs{\n\t\t\t\tCustomFields: incident.AlertRouteIncidentTemplateCustomFieldArray{\n\t\t\t\t\t\u0026incident.AlertRouteIncidentTemplateCustomFieldArgs{\n\t\t\t\t\t\tCustomFieldId: pulumi.Any(typeField.Id),\n\t\t\t\t\t\tMergeStrategy: pulumi.String(\"first-wins\"),\n\t\t\t\t\t\tBinding: \u0026incident.AlertRouteIncidentTemplateCustomFieldBindingArgs{\n\t\t\t\t\t\t\tValue: \u0026incident.AlertRouteIncidentTemplateCustomFieldBindingValueArgs{\n\t\t\t\t\t\t\t\tLiteral: pulumi.String(\"Test incident\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tName: \u0026incident.AlertRouteIncidentTemplateNameArgs{\n\t\t\t\t\tAutogenerated: pulumi.Bool(true),\n\t\t\t\t\tValue: \u0026incident.AlertRouteIncidentTemplateNameValueArgs{\n\t\t\t\t\t\tLiteral: pulumi.String(json0),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tSummary: \u0026incident.AlertRouteIncidentTemplateSummaryArgs{\n\t\t\t\t\tAutogenerated: pulumi.Bool(true),\n\t\t\t\t\tValue: \u0026incident.AlertRouteIncidentTemplateSummaryValueArgs{\n\t\t\t\t\t\tLiteral: pulumi.String(json1),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tStartInTriage: \u0026incident.AlertRouteIncidentTemplateStartInTriageArgs{\n\t\t\t\t\tValue: \u0026incident.AlertRouteIncidentTemplateStartInTriageValueArgs{\n\t\t\t\t\t\tLiteral: pulumi.String(\"true\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tSeverity: \u0026incident.AlertRouteIncidentTemplateSeverityArgs{\n\t\t\t\t\tMergeStrategy: pulumi.String(\"first-wins\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tMessageTemplate: \u0026incident.AlertRouteMessageTemplateArgs{\n\t\t\t\tValue: \u0026incident.AlertRouteMessageTemplateValueArgs{\n\t\t\t\t\tLiteral: pulumi.String(\"01KHJTJR4FZJJZQ6G02EBFJAAY\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.incident.AlertRoute;\nimport com.pulumi.incident.AlertRouteArgs;\nimport com.pulumi.incident.inputs.AlertRouteAlertSourceArgs;\nimport com.pulumi.incident.inputs.AlertRouteConditionGroupArgs;\nimport com.pulumi.incident.inputs.AlertRouteChannelConfigArgs;\nimport com.pulumi.incident.inputs.AlertRouteChannelConfigSlackTargetsArgs;\nimport com.pulumi.incident.inputs.AlertRouteChannelConfigSlackTargetsBindingArgs;\nimport com.pulumi.incident.inputs.AlertRouteEscalationConfigArgs;\nimport com.pulumi.incident.inputs.AlertRouteIncidentConfigArgs;\nimport com.pulumi.incident.inputs.AlertRouteIncidentTemplateArgs;\nimport com.pulumi.incident.inputs.AlertRouteIncidentTemplateNameArgs;\nimport com.pulumi.incident.inputs.AlertRouteIncidentTemplateNameValueArgs;\nimport com.pulumi.incident.inputs.AlertRouteIncidentTemplateSummaryArgs;\nimport com.pulumi.incident.inputs.AlertRouteIncidentTemplateSummaryValueArgs;\nimport com.pulumi.incident.inputs.AlertRouteIncidentTemplateStartInTriageArgs;\nimport com.pulumi.incident.inputs.AlertRouteIncidentTemplateStartInTriageValueArgs;\nimport com.pulumi.incident.inputs.AlertRouteIncidentTemplateSeverityArgs;\nimport com.pulumi.incident.inputs.AlertRouteMessageTemplateArgs;\nimport com.pulumi.incident.inputs.AlertRouteMessageTemplateValueArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var serviceAlerts = new AlertRoute(\"serviceAlerts\", AlertRouteArgs.builder()\n            .name(\"Testing Alert Routes\")\n            .enabled(true)\n            .isPrivate(false)\n            .alertSources(AlertRouteAlertSourceArgs.builder()\n                .alertSourceId(http.id())\n                .conditionGroups(AlertRouteAlertSourceConditionGroupArgs.builder()\n                    .conditions(AlertRouteAlertSourceConditionGroupConditionArgs.builder()\n                        .subject(\"alert.title\")\n                        .operation(\"is_set\")\n                        .paramBindings()\n                        .build())\n                    .build())\n                .build())\n            .conditionGroups(AlertRouteConditionGroupArgs.builder()\n                .conditions(AlertRouteConditionGroupConditionArgs.builder()\n                    .subject(\"alert.title\")\n                    .operation(\"is_set\")\n                    .paramBindings()\n                    .build())\n                .build())\n            .expressions()\n            .channelConfigs(AlertRouteChannelConfigArgs.builder()\n                .conditionGroups(AlertRouteChannelConfigConditionGroupArgs.builder()\n                    .conditions(AlertRouteChannelConfigConditionGroupConditionArgs.builder()\n                        .subject(\"alert.title\")\n                        .operation(\"contains\")\n                        .paramBindings(AlertRouteChannelConfigConditionGroupConditionParamBindingArgs.builder()\n                            .value(AlertRouteChannelConfigConditionGroupConditionParamBindingValueArgs.builder()\n                                .literal(\"critical\")\n                                .build())\n                            .build())\n                        .build())\n                    .build())\n                .slackTargets(AlertRouteChannelConfigSlackTargetsArgs.builder()\n                    .binding(AlertRouteChannelConfigSlackTargetsBindingArgs.builder()\n                        .arrayValues(AlertRouteChannelConfigSlackTargetsBindingArrayValueArgs.builder()\n                            .literal(\"C01234567\")\n                            .build())\n                        .build())\n                    .channelVisibility(\"public\")\n                    .build())\n                .build())\n            .escalationConfig(AlertRouteEscalationConfigArgs.builder()\n                .autoCancelEscalations(true)\n                .escalationTargets(                \n                    AlertRouteEscalationConfigEscalationTargetArgs.builder()\n                        .escalationPaths(AlertRouteEscalationConfigEscalationTargetEscalationPathsArgs.builder()\n                            .arrayValues(AlertRouteEscalationConfigEscalationTargetEscalationPathsArrayValueArgs.builder()\n                                .reference(\"alert.attributes.escalation_path\")\n                                .build())\n                            .build())\n                        .build(),\n                    AlertRouteEscalationConfigEscalationTargetArgs.builder()\n                        .escalationPaths(AlertRouteEscalationConfigEscalationTargetEscalationPathsArgs.builder()\n                            .arrayValues(AlertRouteEscalationConfigEscalationTargetEscalationPathsArrayValueArgs.builder()\n                                .literal(\"01JPQNFD3RWAAY2V83QQ80D1ZV\")\n                                .build())\n                            .build())\n                        .build(),\n                    AlertRouteEscalationConfigEscalationTargetArgs.builder()\n                        .users(AlertRouteEscalationConfigEscalationTargetUsersArgs.builder()\n                            .arrayValues(AlertRouteEscalationConfigEscalationTargetUsersArrayValueArgs.builder()\n                                .literal(\"01GX3C1TK13RQSEGP59XZ3MYP0\")\n                                .build())\n                            .build())\n                        .build())\n                .build())\n            .incidentConfig(AlertRouteIncidentConfigArgs.builder()\n                .autoDeclineEnabled(false)\n                .enabled(true)\n                .conditionGroups()\n                .deferTimeSeconds(300.0)\n                .groupingKeys()\n                .build())\n            .incidentTemplate(AlertRouteIncidentTemplateArgs.builder()\n                .customFields(AlertRouteIncidentTemplateCustomFieldArgs.builder()\n                    .customFieldId(typeField.id())\n                    .mergeStrategy(\"first-wins\")\n                    .binding(AlertRouteIncidentTemplateCustomFieldBindingArgs.builder()\n                        .value(AlertRouteIncidentTemplateCustomFieldBindingValueArgs.builder()\n                            .literal(\"Test incident\")\n                            .build())\n                        .build())\n                    .build())\n                .name(AlertRouteIncidentTemplateNameArgs.builder()\n                    .autogenerated(true)\n                    .value(AlertRouteIncidentTemplateNameValueArgs.builder()\n                        .literal(serializeJson(\n                            jsonObject(\n                                jsonProperty(\"content\", jsonArray(jsonObject(\n                                    jsonProperty(\"content\", jsonArray(jsonObject(\n                                        jsonProperty(\"attrs\", jsonObject(\n                                            jsonProperty(\"label\", \"Alert → Title\"),\n                                            jsonProperty(\"missing\", false),\n                                            jsonProperty(\"name\", \"alert.title\")\n                                        )),\n                                        jsonProperty(\"type\", \"varSpec\")\n                                    ))),\n                                    jsonProperty(\"type\", \"paragraph\")\n                                ))),\n                                jsonProperty(\"type\", \"doc\")\n                            )))\n                        .build())\n                    .build())\n                .summary(AlertRouteIncidentTemplateSummaryArgs.builder()\n                    .autogenerated(true)\n                    .value(AlertRouteIncidentTemplateSummaryValueArgs.builder()\n                        .literal(serializeJson(\n                            jsonObject(\n                                jsonProperty(\"content\", jsonArray(jsonObject(\n                                    jsonProperty(\"content\", jsonArray(jsonObject(\n                                        jsonProperty(\"attrs\", jsonObject(\n                                            jsonProperty(\"label\", \"Alert → Description\"),\n                                            jsonProperty(\"missing\", false),\n                                            jsonProperty(\"name\", \"alert.description\")\n                                        )),\n                                        jsonProperty(\"type\", \"varSpec\")\n                                    ))),\n                                    jsonProperty(\"type\", \"paragraph\")\n                                ))),\n                                jsonProperty(\"type\", \"doc\")\n                            )))\n                        .build())\n                    .build())\n                .startInTriage(AlertRouteIncidentTemplateStartInTriageArgs.builder()\n                    .value(AlertRouteIncidentTemplateStartInTriageValueArgs.builder()\n                        .literal(\"true\")\n                        .build())\n                    .build())\n                .severity(AlertRouteIncidentTemplateSeverityArgs.builder()\n                    .mergeStrategy(\"first-wins\")\n                    .build())\n                .build())\n            .messageTemplate(AlertRouteMessageTemplateArgs.builder()\n                .value(AlertRouteMessageTemplateValueArgs.builder()\n                    .literal(\"01KHJTJR4FZJJZQ6G02EBFJAAY\")\n                    .build())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  serviceAlerts:\n    type: incident:AlertRoute\n    name: service_alerts\n    properties:\n      name: Testing Alert Routes\n      enabled: true\n      isPrivate: false # This references the ID of an alert source, condition groups are\n      #   // used to specify the conditions under which the alert route will be triggered on\n      #   // an alert source-basis\n      alertSources:\n        - alertSourceId: ${http.id}\n          conditionGroups:\n            - conditions:\n                - subject: alert.title\n                  operation: is_set\n                  paramBindings: []\n      conditionGroups:\n        - conditions:\n            - subject: alert.title\n              operation: is_set\n              paramBindings: []\n      expressions: []\n      channelConfigs:\n        - conditionGroups:\n            - conditions:\n                - subject: alert.title\n                  operation: contains\n                  paramBindings:\n                    - value:\n                        literal: critical\n          slackTargets:\n            binding:\n              arrayValues:\n                - literal: C01234567\n            channelVisibility: public\n      escalationConfig:\n        autoCancelEscalations: true\n        escalationTargets:\n          - escalationPaths:\n              arrayValues:\n                - reference: alert.attributes.escalation_path\n          - escalationPaths:\n              arrayValues:\n                - literal: 01JPQNFD3RWAAY2V83QQ80D1ZV\n          - users:\n              arrayValues:\n                - literal: 01GX3C1TK13RQSEGP59XZ3MYP0\n      incidentConfig:\n        autoDeclineEnabled: false\n        enabled: true\n        conditionGroups: []\n        deferTimeSeconds: 300\n        groupingKeys: []\n      incidentTemplate:\n        customFields:\n          - customFieldId: ${typeField.id}\n            mergeStrategy: first-wins\n            binding:\n              value:\n                literal: Test incident\n        name:\n          autogenerated: true\n          value:\n            literal:\n              fn::toJSON:\n                content:\n                  - content:\n                      - attrs:\n                          label: Alert → Title\n                          missing: false\n                          name: alert.title\n                        type: varSpec\n                    type: paragraph\n                type: doc\n        summary:\n          autogenerated: true\n          value:\n            literal:\n              fn::toJSON:\n                content:\n                  - content:\n                      - attrs:\n                          label: Alert → Description\n                          missing: false\n                          name: alert.description\n                        type: varSpec\n                    type: paragraph\n                type: doc\n        startInTriage:\n          value:\n            literal: 'true'\n        severity:\n          mergeStrategy: first-wins\n      messageTemplate:\n        value:\n          literal: 01KHJTJR4FZJJZQ6G02EBFJAAY\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nThe `pulumi import` command can be used, for example:\n\n#!/bin/bash\n\nImport an alert route using its ID\n\nReplace the ID with a real ID from your incident.io organization\n\n```sh\n$ pulumi import incident:index/alertRoute:AlertRoute example 01ABC123DEF456GHI789JKL\n```\n\n","properties":{"alertSources":{"type":"array","items":{"$ref":"#/types/incident:index%2FAlertRouteAlertSource:AlertRouteAlertSource"},"description":"Which alert sources should this alert route match?\n"},"channelConfigs":{"type":"array","items":{"$ref":"#/types/incident:index%2FAlertRouteChannelConfig:AlertRouteChannelConfig"},"description":"The channel configuration for this alert route\n"},"conditionGroups":{"type":"array","items":{"$ref":"#/types/incident:index%2FAlertRouteConditionGroup:AlertRouteConditionGroup"},"description":"Groups of prerequisite conditions. All conditions in at least one group must be satisfied\n"},"enabled":{"type":"boolean","description":"Whether this alert route is enabled or not\n"},"escalationConfig":{"$ref":"#/types/incident:index%2FAlertRouteEscalationConfig:AlertRouteEscalationConfig"},"expressions":{"type":"array","items":{"$ref":"#/types/incident:index%2FAlertRouteExpression:AlertRouteExpression"},"description":"The expressions to be prepared for use by steps and conditions\n"},"incidentConfig":{"$ref":"#/types/incident:index%2FAlertRouteIncidentConfig:AlertRouteIncidentConfig"},"incidentTemplate":{"$ref":"#/types/incident:index%2FAlertRouteIncidentTemplate:AlertRouteIncidentTemplate"},"isPrivate":{"type":"boolean","description":"Whether this alert route is private. Private alert routes will only create private incidents from alerts.\n"},"messageTemplate":{"$ref":"#/types/incident:index%2FAlertRouteMessageTemplate:AlertRouteMessageTemplate"},"name":{"type":"string","description":"The name of this alert route config, for the user's reference\n"},"owningTeamIds":{"type":"array","items":{"type":"string"},"description":"IDs of teams that own this alert route\n"}},"type":"object","required":["alertSources","conditionGroups","enabled","escalationConfig","expressions","incidentConfig","incidentTemplate","isPrivate","name"],"inputProperties":{"alertSources":{"type":"array","items":{"$ref":"#/types/incident:index%2FAlertRouteAlertSource:AlertRouteAlertSource"},"description":"Which alert sources should this alert route match?\n"},"channelConfigs":{"type":"array","items":{"$ref":"#/types/incident:index%2FAlertRouteChannelConfig:AlertRouteChannelConfig"},"description":"The channel configuration for this alert route\n"},"conditionGroups":{"type":"array","items":{"$ref":"#/types/incident:index%2FAlertRouteConditionGroup:AlertRouteConditionGroup"},"description":"Groups of prerequisite conditions. All conditions in at least one group must be satisfied\n"},"enabled":{"type":"boolean","description":"Whether this alert route is enabled or not\n"},"escalationConfig":{"$ref":"#/types/incident:index%2FAlertRouteEscalationConfig:AlertRouteEscalationConfig"},"expressions":{"type":"array","items":{"$ref":"#/types/incident:index%2FAlertRouteExpression:AlertRouteExpression"},"description":"The expressions to be prepared for use by steps and conditions\n"},"incidentConfig":{"$ref":"#/types/incident:index%2FAlertRouteIncidentConfig:AlertRouteIncidentConfig"},"incidentTemplate":{"$ref":"#/types/incident:index%2FAlertRouteIncidentTemplate:AlertRouteIncidentTemplate"},"isPrivate":{"type":"boolean","description":"Whether this alert route is private. Private alert routes will only create private incidents from alerts.\n"},"messageTemplate":{"$ref":"#/types/incident:index%2FAlertRouteMessageTemplate:AlertRouteMessageTemplate"},"name":{"type":"string","description":"The name of this alert route config, for the user's reference\n"},"owningTeamIds":{"type":"array","items":{"type":"string"},"description":"IDs of teams that own this alert route\n"}},"requiredInputs":["alertSources","conditionGroups","enabled","escalationConfig","expressions","incidentConfig","incidentTemplate","isPrivate"],"stateInputs":{"description":"Input properties used for looking up and filtering AlertRoute resources.\n","properties":{"alertSources":{"type":"array","items":{"$ref":"#/types/incident:index%2FAlertRouteAlertSource:AlertRouteAlertSource"},"description":"Which alert sources should this alert route match?\n"},"channelConfigs":{"type":"array","items":{"$ref":"#/types/incident:index%2FAlertRouteChannelConfig:AlertRouteChannelConfig"},"description":"The channel configuration for this alert route\n"},"conditionGroups":{"type":"array","items":{"$ref":"#/types/incident:index%2FAlertRouteConditionGroup:AlertRouteConditionGroup"},"description":"Groups of prerequisite conditions. All conditions in at least one group must be satisfied\n"},"enabled":{"type":"boolean","description":"Whether this alert route is enabled or not\n"},"escalationConfig":{"$ref":"#/types/incident:index%2FAlertRouteEscalationConfig:AlertRouteEscalationConfig"},"expressions":{"type":"array","items":{"$ref":"#/types/incident:index%2FAlertRouteExpression:AlertRouteExpression"},"description":"The expressions to be prepared for use by steps and conditions\n"},"incidentConfig":{"$ref":"#/types/incident:index%2FAlertRouteIncidentConfig:AlertRouteIncidentConfig"},"incidentTemplate":{"$ref":"#/types/incident:index%2FAlertRouteIncidentTemplate:AlertRouteIncidentTemplate"},"isPrivate":{"type":"boolean","description":"Whether this alert route is private. Private alert routes will only create private incidents from alerts.\n"},"messageTemplate":{"$ref":"#/types/incident:index%2FAlertRouteMessageTemplate:AlertRouteMessageTemplate"},"name":{"type":"string","description":"The name of this alert route config, for the user's reference\n"},"owningTeamIds":{"type":"array","items":{"type":"string"},"description":"IDs of teams that own this alert route\n"}},"type":"object"}},"incident:index/alertSource:AlertSource":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\nimport * as incident from \"@pulumi/incident\";\n\n//# Create a basic Alert Source that receives from an SNS Topic in AWS\nconst cloudwatch = new incident.AlertSource(\"cloudwatch\", {\n    name: \"CloudWatch Alerts\",\n    sourceType: \"cloudwatch\",\n    template: {\n        title: {\n            literal: JSON.stringify({\n                content: [{\n                    content: [{\n                        attrs: {\n                            label: \"Payload → Title\",\n                            missing: false,\n                            name: \"title\",\n                        },\n                        type: \"varSpec\",\n                    }],\n                    type: \"paragraph\",\n                }],\n                type: \"doc\",\n            }),\n        },\n        description: {\n            literal: JSON.stringify({\n                content: [{\n                    content: [{\n                        attrs: {\n                            label: \"Payload → Description\",\n                            missing: false,\n                            name: \"description\",\n                        },\n                        type: \"varSpec\",\n                    }],\n                    type: \"paragraph\",\n                }],\n                type: \"doc\",\n            }),\n        },\n        attributes: [{\n            alertAttributeId: team.id,\n            binding: {\n                value: {\n                    reference: \"expressions[\\\"cloudwatch-team\\\"]\",\n                },\n                mergeStrategy: \"first_wins\",\n            },\n        }],\n        expressions: [{\n            label: \"Team\",\n            operations: [{\n                operationType: \"parse\",\n                parse: {\n                    returns: {\n                        array: false,\n                        type: \"CatalogEntry[\\\"CatalogEntryID\\\"]\",\n                    },\n                    source: \"$['query_params']['team']\",\n                },\n            }],\n            reference: \"cloudwatch-team\",\n            rootReference: \"payload\",\n        }],\n    },\n});\n//# The `team` Alert Attribute we've configured to label Alerts and route alerts to schedules\nconst squad = incident.getAlertAttribute({\n    name: \"Team\",\n});\n//# AWS Resources\nconst alerts = new aws.index.SnsTopic(\"alerts\", {name: \"cloudwatch-alerts\"});\n//# SNS Topic Subscription that routes to the incident.io Alert Source created above\nconst incidentioAlertSource = new aws.index.SnsTopicSubscription(\"incidentio_alert_source\", {\n    endpoint: `https://api.incident.io/v2/alert_events/cloudwatch/${cloudwatch.id}?team=platform`,\n    endpointAutoConfirms: true,\n    protocol: \"https\",\n    topicArn: alerts.arn,\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_aws as aws\nimport pulumi_incident as incident\n\n## Create a basic Alert Source that receives from an SNS Topic in AWS\ncloudwatch = incident.AlertSource(\"cloudwatch\",\n    name=\"CloudWatch Alerts\",\n    source_type=\"cloudwatch\",\n    template={\n        \"title\": {\n            \"literal\": json.dumps({\n                \"content\": [{\n                    \"content\": [{\n                        \"attrs\": {\n                            \"label\": \"Payload → Title\",\n                            \"missing\": False,\n                            \"name\": \"title\",\n                        },\n                        \"type\": \"varSpec\",\n                    }],\n                    \"type\": \"paragraph\",\n                }],\n                \"type\": \"doc\",\n            }),\n        },\n        \"description\": {\n            \"literal\": json.dumps({\n                \"content\": [{\n                    \"content\": [{\n                        \"attrs\": {\n                            \"label\": \"Payload → Description\",\n                            \"missing\": False,\n                            \"name\": \"description\",\n                        },\n                        \"type\": \"varSpec\",\n                    }],\n                    \"type\": \"paragraph\",\n                }],\n                \"type\": \"doc\",\n            }),\n        },\n        \"attributes\": [{\n            \"alert_attribute_id\": team[\"id\"],\n            \"binding\": {\n                \"value\": {\n                    \"reference\": \"expressions[\\\"cloudwatch-team\\\"]\",\n                },\n                \"merge_strategy\": \"first_wins\",\n            },\n        }],\n        \"expressions\": [{\n            \"label\": \"Team\",\n            \"operations\": [{\n                \"operation_type\": \"parse\",\n                \"parse\": {\n                    \"returns\": {\n                        \"array\": False,\n                        \"type\": \"CatalogEntry[\\\"CatalogEntryID\\\"]\",\n                    },\n                    \"source\": \"$['query_params']['team']\",\n                },\n            }],\n            \"reference\": \"cloudwatch-team\",\n            \"root_reference\": \"payload\",\n        }],\n    })\n## The `team` Alert Attribute we've configured to label Alerts and route alerts to schedules\nsquad = incident.get_alert_attribute(name=\"Team\")\n## AWS Resources\nalerts = aws.index.SnsTopic(\"alerts\", name=cloudwatch-alerts)\n## SNS Topic Subscription that routes to the incident.io Alert Source created above\nincidentio_alert_source = aws.index.SnsTopicSubscription(\"incidentio_alert_source\",\n    endpoint=fhttps://api.incident.io/v2/alert_events/cloudwatch/{cloudwatch.id}?team=platform,\n    endpoint_auto_confirms=True,\n    protocol=https,\n    topic_arn=alerts.arn)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\nusing Incident = Pulumi.Incident;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    //# Create a basic Alert Source that receives from an SNS Topic in AWS\n    var cloudwatch = new Incident.AlertSource(\"cloudwatch\", new()\n    {\n        Name = \"CloudWatch Alerts\",\n        SourceType = \"cloudwatch\",\n        Template = new Incident.Inputs.AlertSourceTemplateArgs\n        {\n            Title = new Incident.Inputs.AlertSourceTemplateTitleArgs\n            {\n                Literal = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n                {\n                    [\"content\"] = new[]\n                    {\n                        new Dictionary\u003cstring, object?\u003e\n                        {\n                            [\"content\"] = new[]\n                            {\n                                new Dictionary\u003cstring, object?\u003e\n                                {\n                                    [\"attrs\"] = new Dictionary\u003cstring, object?\u003e\n                                    {\n                                        [\"label\"] = \"Payload → Title\",\n                                        [\"missing\"] = false,\n                                        [\"name\"] = \"title\",\n                                    },\n                                    [\"type\"] = \"varSpec\",\n                                },\n                            },\n                            [\"type\"] = \"paragraph\",\n                        },\n                    },\n                    [\"type\"] = \"doc\",\n                }),\n            },\n            Description = new Incident.Inputs.AlertSourceTemplateDescriptionArgs\n            {\n                Literal = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n                {\n                    [\"content\"] = new[]\n                    {\n                        new Dictionary\u003cstring, object?\u003e\n                        {\n                            [\"content\"] = new[]\n                            {\n                                new Dictionary\u003cstring, object?\u003e\n                                {\n                                    [\"attrs\"] = new Dictionary\u003cstring, object?\u003e\n                                    {\n                                        [\"label\"] = \"Payload → Description\",\n                                        [\"missing\"] = false,\n                                        [\"name\"] = \"description\",\n                                    },\n                                    [\"type\"] = \"varSpec\",\n                                },\n                            },\n                            [\"type\"] = \"paragraph\",\n                        },\n                    },\n                    [\"type\"] = \"doc\",\n                }),\n            },\n            Attributes = new[]\n            {\n                new Incident.Inputs.AlertSourceTemplateAttributeArgs\n                {\n                    AlertAttributeId = team.Id,\n                    Binding = new Incident.Inputs.AlertSourceTemplateAttributeBindingArgs\n                    {\n                        Value = new Incident.Inputs.AlertSourceTemplateAttributeBindingValueArgs\n                        {\n                            Reference = \"expressions[\\\"cloudwatch-team\\\"]\",\n                        },\n                        MergeStrategy = \"first_wins\",\n                    },\n                },\n            },\n            Expressions = new[]\n            {\n                new Incident.Inputs.AlertSourceTemplateExpressionArgs\n                {\n                    Label = \"Team\",\n                    Operations = new[]\n                    {\n                        new Incident.Inputs.AlertSourceTemplateExpressionOperationArgs\n                        {\n                            OperationType = \"parse\",\n                            Parse = new Incident.Inputs.AlertSourceTemplateExpressionOperationParseArgs\n                            {\n                                Returns = new Incident.Inputs.AlertSourceTemplateExpressionOperationParseReturnsArgs\n                                {\n                                    Array = false,\n                                    Type = \"CatalogEntry[\\\"CatalogEntryID\\\"]\",\n                                },\n                                Source = \"$['query_params']['team']\",\n                            },\n                        },\n                    },\n                    Reference = \"cloudwatch-team\",\n                    RootReference = \"payload\",\n                },\n            },\n        },\n    });\n\n    //# The `team` Alert Attribute we've configured to label Alerts and route alerts to schedules\n    var squad = Incident.GetAlertAttribute.Invoke(new()\n    {\n        Name = \"Team\",\n    });\n\n    //# AWS Resources\n    var alerts = new Aws.Index.SnsTopic(\"alerts\", new()\n    {\n        Name = \"cloudwatch-alerts\",\n    });\n\n    //# SNS Topic Subscription that routes to the incident.io Alert Source created above\n    var incidentioAlertSource = new Aws.Index.SnsTopicSubscription(\"incidentio_alert_source\", new()\n    {\n        Endpoint = $\"https://api.incident.io/v2/alert_events/cloudwatch/{cloudwatch.Id}?team=platform\",\n        EndpointAutoConfirms = true,\n        Protocol = \"https\",\n        TopicArn = alerts.Arn,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-aws/sdk/go/aws\"\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/incident/v5/incident\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\"content\": []map[string]interface{}{\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"content\": []map[string]interface{}{\n\t\t\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\t\t\"attrs\": map[string]interface{}{\n\t\t\t\t\t\t\t\t\"label\":   \"Payload → Title\",\n\t\t\t\t\t\t\t\t\"missing\": false,\n\t\t\t\t\t\t\t\t\"name\":    \"title\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\"type\": \"varSpec\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t\"type\": \"paragraph\",\n\t\t\t\t},\n\t\t\t},\n\t\t\t\"type\": \"doc\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson0 := string(tmpJSON0)\n\t\ttmpJSON1, err := json.Marshal(map[string]interface{}{\n\t\t\t\"content\": []map[string]interface{}{\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"content\": []map[string]interface{}{\n\t\t\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\t\t\"attrs\": map[string]interface{}{\n\t\t\t\t\t\t\t\t\"label\":   \"Payload → Description\",\n\t\t\t\t\t\t\t\t\"missing\": false,\n\t\t\t\t\t\t\t\t\"name\":    \"description\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\"type\": \"varSpec\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t\"type\": \"paragraph\",\n\t\t\t\t},\n\t\t\t},\n\t\t\t\"type\": \"doc\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson1 := string(tmpJSON1)\n\t\t// # Create a basic Alert Source that receives from an SNS Topic in AWS\n\t\tcloudwatch, err := incident.NewAlertSource(ctx, \"cloudwatch\", \u0026incident.AlertSourceArgs{\n\t\t\tName:       pulumi.String(\"CloudWatch Alerts\"),\n\t\t\tSourceType: pulumi.String(\"cloudwatch\"),\n\t\t\tTemplate: \u0026incident.AlertSourceTemplateArgs{\n\t\t\t\tTitle: \u0026incident.AlertSourceTemplateTitleArgs{\n\t\t\t\t\tLiteral: pulumi.String(json0),\n\t\t\t\t},\n\t\t\t\tDescription: \u0026incident.AlertSourceTemplateDescriptionArgs{\n\t\t\t\t\tLiteral: pulumi.String(json1),\n\t\t\t\t},\n\t\t\t\tAttributes: incident.AlertSourceTemplateAttributeArray{\n\t\t\t\t\t\u0026incident.AlertSourceTemplateAttributeArgs{\n\t\t\t\t\t\tAlertAttributeId: pulumi.Any(team.Id),\n\t\t\t\t\t\tBinding: \u0026incident.AlertSourceTemplateAttributeBindingArgs{\n\t\t\t\t\t\t\tValue: \u0026incident.AlertSourceTemplateAttributeBindingValueArgs{\n\t\t\t\t\t\t\t\tReference: pulumi.String(\"expressions[\\\"cloudwatch-team\\\"]\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tMergeStrategy: pulumi.String(\"first_wins\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tExpressions: incident.AlertSourceTemplateExpressionArray{\n\t\t\t\t\t\u0026incident.AlertSourceTemplateExpressionArgs{\n\t\t\t\t\t\tLabel: pulumi.String(\"Team\"),\n\t\t\t\t\t\tOperations: incident.AlertSourceTemplateExpressionOperationArray{\n\t\t\t\t\t\t\t\u0026incident.AlertSourceTemplateExpressionOperationArgs{\n\t\t\t\t\t\t\t\tOperationType: pulumi.String(\"parse\"),\n\t\t\t\t\t\t\t\tParse: \u0026incident.AlertSourceTemplateExpressionOperationParseArgs{\n\t\t\t\t\t\t\t\t\tReturns: \u0026incident.AlertSourceTemplateExpressionOperationParseReturnsArgs{\n\t\t\t\t\t\t\t\t\t\tArray: pulumi.Bool(false),\n\t\t\t\t\t\t\t\t\t\tType:  pulumi.String(\"CatalogEntry[\\\"CatalogEntryID\\\"]\"),\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tSource: pulumi.String(\"$['query_params']['team']\"),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\tReference:     pulumi.String(\"cloudwatch-team\"),\n\t\t\t\t\t\tRootReference: pulumi.String(\"payload\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// # The `team` Alert Attribute we've configured to label Alerts and route alerts to schedules\n\t\t_, err = incident.LookupAlertAttribute(ctx, \u0026incident.LookupAlertAttributeArgs{\n\t\t\tName: \"Team\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// # AWS Resources\n\t\talerts, err := aws.NewSnsTopic(ctx, \"alerts\", \u0026aws.SnsTopicArgs{\n\t\t\tName: \"cloudwatch-alerts\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// # SNS Topic Subscription that routes to the incident.io Alert Source created above\n\t\t_, err = aws.NewSnsTopicSubscription(ctx, \"incidentio_alert_source\", \u0026aws.SnsTopicSubscriptionArgs{\n\t\t\tEndpoint:             pulumi.Sprintf(\"https://api.incident.io/v2/alert_events/cloudwatch/%v?team=platform\", cloudwatch.ID()),\n\t\t\tEndpointAutoConfirms: true,\n\t\t\tProtocol:             \"https\",\n\t\t\tTopicArn:             alerts.Arn,\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.incident.AlertSource;\nimport com.pulumi.incident.AlertSourceArgs;\nimport com.pulumi.incident.inputs.AlertSourceTemplateArgs;\nimport com.pulumi.incident.inputs.AlertSourceTemplateTitleArgs;\nimport com.pulumi.incident.inputs.AlertSourceTemplateDescriptionArgs;\nimport com.pulumi.incident.IncidentFunctions;\nimport com.pulumi.incident.inputs.GetAlertAttributeArgs;\nimport com.pulumi.aws.SnsTopic;\nimport com.pulumi.aws.SnsTopicArgs;\nimport com.pulumi.aws.SnsTopicSubscription;\nimport com.pulumi.aws.SnsTopicSubscriptionArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        //# Create a basic Alert Source that receives from an SNS Topic in AWS\n        var cloudwatch = new AlertSource(\"cloudwatch\", AlertSourceArgs.builder()\n            .name(\"CloudWatch Alerts\")\n            .sourceType(\"cloudwatch\")\n            .template(AlertSourceTemplateArgs.builder()\n                .title(AlertSourceTemplateTitleArgs.builder()\n                    .literal(serializeJson(\n                        jsonObject(\n                            jsonProperty(\"content\", jsonArray(jsonObject(\n                                jsonProperty(\"content\", jsonArray(jsonObject(\n                                    jsonProperty(\"attrs\", jsonObject(\n                                        jsonProperty(\"label\", \"Payload → Title\"),\n                                        jsonProperty(\"missing\", false),\n                                        jsonProperty(\"name\", \"title\")\n                                    )),\n                                    jsonProperty(\"type\", \"varSpec\")\n                                ))),\n                                jsonProperty(\"type\", \"paragraph\")\n                            ))),\n                            jsonProperty(\"type\", \"doc\")\n                        )))\n                    .build())\n                .description(AlertSourceTemplateDescriptionArgs.builder()\n                    .literal(serializeJson(\n                        jsonObject(\n                            jsonProperty(\"content\", jsonArray(jsonObject(\n                                jsonProperty(\"content\", jsonArray(jsonObject(\n                                    jsonProperty(\"attrs\", jsonObject(\n                                        jsonProperty(\"label\", \"Payload → Description\"),\n                                        jsonProperty(\"missing\", false),\n                                        jsonProperty(\"name\", \"description\")\n                                    )),\n                                    jsonProperty(\"type\", \"varSpec\")\n                                ))),\n                                jsonProperty(\"type\", \"paragraph\")\n                            ))),\n                            jsonProperty(\"type\", \"doc\")\n                        )))\n                    .build())\n                .attributes(AlertSourceTemplateAttributeArgs.builder()\n                    .alertAttributeId(team.id())\n                    .binding(AlertSourceTemplateAttributeBindingArgs.builder()\n                        .value(AlertSourceTemplateAttributeBindingValueArgs.builder()\n                            .reference(\"expressions[\\\"cloudwatch-team\\\"]\")\n                            .build())\n                        .mergeStrategy(\"first_wins\")\n                        .build())\n                    .build())\n                .expressions(AlertSourceTemplateExpressionArgs.builder()\n                    .label(\"Team\")\n                    .operations(AlertSourceTemplateExpressionOperationArgs.builder()\n                        .operationType(\"parse\")\n                        .parse(AlertSourceTemplateExpressionOperationParseArgs.builder()\n                            .returns(AlertSourceTemplateExpressionOperationParseReturnsArgs.builder()\n                                .array(false)\n                                .type(\"CatalogEntry[\\\"CatalogEntryID\\\"]\")\n                                .build())\n                            .source(\"$['query_params']['team']\")\n                            .build())\n                        .build())\n                    .reference(\"cloudwatch-team\")\n                    .rootReference(\"payload\")\n                    .build())\n                .build())\n            .build());\n\n        //# The `team` Alert Attribute we've configured to label Alerts and route alerts to schedules\n        final var squad = IncidentFunctions.getAlertAttribute(GetAlertAttributeArgs.builder()\n            .name(\"Team\")\n            .build());\n\n        //# AWS Resources\n        var alerts = new SnsTopic(\"alerts\", SnsTopicArgs.builder()\n            .name(\"cloudwatch-alerts\")\n            .build());\n\n        //# SNS Topic Subscription that routes to the incident.io Alert Source created above\n        var incidentioAlertSource = new SnsTopicSubscription(\"incidentioAlertSource\", SnsTopicSubscriptionArgs.builder()\n            .endpoint(String.format(\"https://api.incident.io/v2/alert_events/cloudwatch/%s?team=platform\", cloudwatch.id()))\n            .endpointAutoConfirms(true)\n            .protocol(\"https\")\n            .topicArn(alerts.arn())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  ## Create a basic Alert Source that receives from an SNS Topic in AWS\n  cloudwatch:\n    type: incident:AlertSource\n    properties:\n      name: CloudWatch Alerts\n      sourceType: cloudwatch\n      template:\n        title:\n          literal:\n            fn::toJSON:\n              content:\n                - content:\n                    - attrs:\n                        label: Payload → Title\n                        missing: false\n                        name: title\n                      type: varSpec\n                  type: paragraph\n              type: doc\n        description:\n          literal:\n            fn::toJSON:\n              content:\n                - content:\n                    - attrs:\n                        label: Payload → Description\n                        missing: false\n                        name: description\n                      type: varSpec\n                  type: paragraph\n              type: doc\n        attributes:\n          - alertAttributeId: ${team.id}\n            binding:\n              value:\n                reference: expressions[\"cloudwatch-team\"]\n              mergeStrategy: first_wins\n        expressions:\n          - label: Team\n            operations:\n              - operationType: parse\n                parse:\n                  returns:\n                    array: false\n                    type: CatalogEntry[\"CatalogEntryID\"]\n                  source: $['query_params']['team']\n            reference: cloudwatch-team\n            rootReference: payload\n  ## AWS Resources\n  alerts:\n    type: aws:SnsTopic\n    properties:\n      name: cloudwatch-alerts\n  ## SNS Topic Subscription that routes to the incident.io Alert Source created above\n  incidentioAlertSource:\n    type: aws:SnsTopicSubscription\n    name: incidentio_alert_source\n    properties:\n      endpoint: https://api.incident.io/v2/alert_events/cloudwatch/${cloudwatch.id}?team=platform\n      endpointAutoConfirms: true\n      protocol: https\n      topicArn: ${alerts.arn}\nvariables:\n  ## The `team` Alert Attribute we've configured to label Alerts and route alerts to schedules\n  squad:\n    fn::invoke:\n      function: incident:getAlertAttribute\n      arguments:\n        name: Team\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nThe `pulumi import` command can be used, for example:\n\n#!/bin/bash\n\nImport an alert source using its ID\n\nReplace the ID with a real ID from your incident.io organization\n\n```sh\n$ pulumi import incident:index/alertSource:AlertSource example 01ABC123DEF456GHI789JKL\n```\n\n","properties":{"emailAddress":{"type":"string","description":"Email address this alert source receives alerts to\n"},"httpCustomOptions":{"$ref":"#/types/incident:index%2FAlertSourceHttpCustomOptions:AlertSourceHttpCustomOptions"},"jiraOptions":{"$ref":"#/types/incident:index%2FAlertSourceJiraOptions:AlertSourceJiraOptions"},"name":{"type":"string","description":"Unique name of the alert source\n"},"owningTeamIds":{"type":"array","items":{"type":"string"},"description":"IDs of teams that own this alert source\n"},"secretToken":{"type":"string","description":"Secret token used to authenticate this source, if applicable. If applicable, this is the token that must be included in either the query string or the 'Authorization' header when sending events to this alert source.\n"},"sourceType":{"type":"string","description":"Type of alert source\n"},"template":{"$ref":"#/types/incident:index%2FAlertSourceTemplate:AlertSourceTemplate"}},"type":"object","required":["emailAddress","name","secretToken","sourceType","template"],"inputProperties":{"emailAddress":{"type":"string","description":"Email address this alert source receives alerts to\n"},"httpCustomOptions":{"$ref":"#/types/incident:index%2FAlertSourceHttpCustomOptions:AlertSourceHttpCustomOptions"},"jiraOptions":{"$ref":"#/types/incident:index%2FAlertSourceJiraOptions:AlertSourceJiraOptions"},"name":{"type":"string","description":"Unique name of the alert source\n"},"owningTeamIds":{"type":"array","items":{"type":"string"},"description":"IDs of teams that own this alert source\n"},"sourceType":{"type":"string","description":"Type of alert source\n"},"template":{"$ref":"#/types/incident:index%2FAlertSourceTemplate:AlertSourceTemplate"}},"requiredInputs":["sourceType","template"],"stateInputs":{"description":"Input properties used for looking up and filtering AlertSource resources.\n","properties":{"emailAddress":{"type":"string","description":"Email address this alert source receives alerts to\n"},"httpCustomOptions":{"$ref":"#/types/incident:index%2FAlertSourceHttpCustomOptions:AlertSourceHttpCustomOptions"},"jiraOptions":{"$ref":"#/types/incident:index%2FAlertSourceJiraOptions:AlertSourceJiraOptions"},"name":{"type":"string","description":"Unique name of the alert source\n"},"owningTeamIds":{"type":"array","items":{"type":"string"},"description":"IDs of teams that own this alert source\n"},"secretToken":{"type":"string","description":"Secret token used to authenticate this source, if applicable. If applicable, this is the token that must be included in either the query string or the 'Authorization' header when sending events to this alert source.\n"},"sourceType":{"type":"string","description":"Type of alert source\n"},"template":{"$ref":"#/types/incident:index%2FAlertSourceTemplate:AlertSourceTemplate"}},"type":"object"}},"incident:index/catalogEntries:CatalogEntries":{"description":"## Example Usage\n\n## Import\n\nThe `pulumi import` command can be used, for example:\n\n#!/bin/bash\n\nImport catalog entries using the catalog_type_id\n\nReplace the ID with a real catalog type ID from your incident.io organization\n\n```sh\n$ pulumi import incident:index/catalogEntries:CatalogEntries example 01ABC123DEF456GHI789JKL\n```\n\n","properties":{"catalogEntriesId":{"type":"string","description":"ID of this catalog type\n"},"entries":{"type":"object","additionalProperties":{"$ref":"#/types/incident:index%2FCatalogEntriesEntries:CatalogEntriesEntries"},"description":"Map of external ID to entry in the catalog.\n"},"managedAttributes":{"type":"array","items":{"type":"string"},"description":"The set of attributes that are managed by this resource. By default, all attributes are managed by this resource.\n"}},"type":"object","required":["catalogEntriesId","entries"],"inputProperties":{"catalogEntriesId":{"type":"string","description":"ID of this catalog type\n"},"entries":{"type":"object","additionalProperties":{"$ref":"#/types/incident:index%2FCatalogEntriesEntries:CatalogEntriesEntries"},"description":"Map of external ID to entry in the catalog.\n"},"managedAttributes":{"type":"array","items":{"type":"string"},"description":"The set of attributes that are managed by this resource. By default, all attributes are managed by this resource.\n"}},"requiredInputs":["catalogEntriesId","entries"],"stateInputs":{"description":"Input properties used for looking up and filtering CatalogEntries resources.\n","properties":{"catalogEntriesId":{"type":"string","description":"ID of this catalog type\n"},"entries":{"type":"object","additionalProperties":{"$ref":"#/types/incident:index%2FCatalogEntriesEntries:CatalogEntriesEntries"},"description":"Map of external ID to entry in the catalog.\n"},"managedAttributes":{"type":"array","items":{"type":"string"},"description":"The set of attributes that are managed by this resource. By default, all attributes are managed by this resource.\n"}},"type":"object"}},"incident:index/catalogEntry:CatalogEntry":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as incident from \"@pulumi/incident\";\n\nconst serviceTiers = [\n    {\n        name: \"tier_1\",\n        description: \"Critical customer-facing services\",\n        externalId: \"service-tier-1\",\n    },\n    {\n        name: \"tier_2\",\n        description: \"Either customers or internal user processes are impacted if this service fails\",\n        externalId: \"service-tier-2\",\n    },\n    {\n        name: \"tier_3\",\n        description: \"Non-essential services\",\n        externalId: \"service-tier-3\",\n    },\n];\nconst serviceTier = new incident.CatalogType(\"service_tier\", {\n    name: \"Service Tier\",\n    description: \"Level of importance for each service\",\n});\nconst serviceTierDescription = new incident.CatalogTypeAttribute(\"service_tier_description\", {\n    catalogTypeId: serviceTier.id,\n    name: \"Description\",\n    type: \"Text\",\n});\nconst serviceTierCatalogEntry: incident.CatalogEntry[] = [];\nfor (const range of Object.entries(serviceTiers.reduce((__obj, tier) =\u003e ({ ...__obj, [tier.name]: tier }))).map(([k, v]) =\u003e ({key: k, value: v}))) {\n    serviceTierCatalogEntry.push(new incident.CatalogEntry(`service_tier-${range.key}`, {\n        catalogTypeId: serviceTier.id,\n        name: range.value.name,\n        externalId: range.value.externalId,\n        attributeValues: [{\n            attribute: serviceTierDescription.id,\n            value: range.value.description,\n        }],\n    }));\n}\n```\n```python\nimport pulumi\nimport pulumi_incident as incident\n\nservice_tiers = [\n    {\n        \"name\": \"tier_1\",\n        \"description\": \"Critical customer-facing services\",\n        \"externalId\": \"service-tier-1\",\n    },\n    {\n        \"name\": \"tier_2\",\n        \"description\": \"Either customers or internal user processes are impacted if this service fails\",\n        \"externalId\": \"service-tier-2\",\n    },\n    {\n        \"name\": \"tier_3\",\n        \"description\": \"Non-essential services\",\n        \"externalId\": \"service-tier-3\",\n    },\n]\nservice_tier = incident.CatalogType(\"service_tier\",\n    name=\"Service Tier\",\n    description=\"Level of importance for each service\")\nservice_tier_description = incident.CatalogTypeAttribute(\"service_tier_description\",\n    catalog_type_id=service_tier.id,\n    name=\"Description\",\n    type=\"Text\")\nservice_tier_catalog_entry = []\nfor range in [{\"key\": k, \"value\": v} for [k, v] in enumerate({tier.name: tier for tier in service_tiers})]:\n    service_tier_catalog_entry.append(incident.CatalogEntry(f\"service_tier-{range['key']}\",\n        catalog_type_id=service_tier.id,\n        name=range[\"value\"][\"name\"],\n        external_id=range[\"value\"][\"externalId\"],\n        attribute_values=[{\n            \"attribute\": service_tier_description.id,\n            \"value\": range[\"value\"][\"description\"],\n        }]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Incident = Pulumi.Incident;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var serviceTiers = new[]\n    {\n        \n        {\n            { \"name\", \"tier_1\" },\n            { \"description\", \"Critical customer-facing services\" },\n            { \"externalId\", \"service-tier-1\" },\n        },\n        \n        {\n            { \"name\", \"tier_2\" },\n            { \"description\", \"Either customers or internal user processes are impacted if this service fails\" },\n            { \"externalId\", \"service-tier-2\" },\n        },\n        \n        {\n            { \"name\", \"tier_3\" },\n            { \"description\", \"Non-essential services\" },\n            { \"externalId\", \"service-tier-3\" },\n        },\n    };\n\n    var serviceTier = new Incident.CatalogType(\"service_tier\", new()\n    {\n        Name = \"Service Tier\",\n        Description = \"Level of importance for each service\",\n    });\n\n    var serviceTierDescription = new Incident.CatalogTypeAttribute(\"service_tier_description\", new()\n    {\n        CatalogTypeId = serviceTier.Id,\n        Name = \"Description\",\n        Type = \"Text\",\n    });\n\n    var serviceTierCatalogEntry = new List\u003cIncident.CatalogEntry\u003e();\n    foreach (var range in serviceTiers.ToDictionary(item =\u003e {\n        var tier = item.Value;\n        return tier.Name;\n    }, item =\u003e {\n        var tier = item.Value;\n        return tier;\n    }).Select(pair =\u003e new { pair.Key, pair.Value }))\n    {\n        serviceTierCatalogEntry.Add(new Incident.CatalogEntry($\"service_tier-{range.Key}\", new()\n        {\n            CatalogTypeId = serviceTier.Id,\n            Name = range.Value.Name,\n            ExternalId = range.Value.ExternalId,\n            AttributeValues = new[]\n            {\n                new Incident.Inputs.CatalogEntryAttributeValueArgs\n                {\n                    Attribute = serviceTierDescription.Id,\n                    Value = range.Value.Description,\n                },\n            },\n        }));\n    }\n});\n```\n```yaml\nresources:\n  serviceTier:\n    type: incident:CatalogType\n    name: service_tier\n    properties:\n      name: Service Tier\n      description: Level of importance for each service\n  serviceTierDescription:\n    type: incident:CatalogTypeAttribute\n    name: service_tier_description\n    properties:\n      catalogTypeId: ${serviceTier.id}\n      name: Description\n      type: Text\n  serviceTierCatalogEntry:\n    type: incident:CatalogEntry\n    name: service_tier\n    properties:\n      catalogTypeId: ${serviceTier.id}\n      name: ${range.value.name}\n      externalId: ${range.value.externalId}\n      attributeValues:\n        - attribute: ${serviceTierDescription.id}\n          value: ${range.value.description}\n    options: {}\nvariables:\n  serviceTiers:\n    - name: tier_1\n      description: Critical customer-facing services\n      externalId: service-tier-1\n    - name: tier_2\n      description: Either customers or internal user processes are impacted if this service fails\n      externalId: service-tier-2\n    - name: tier_3\n      description: Non-essential services\n      externalId: service-tier-3\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nThe `pulumi import` command can be used, for example:\n\n#!/bin/bash\n\nImport a catalog entry using its ID\n\nReplace the ID with a real ID from your incident.io organization\n\n```sh\n$ pulumi import incident:index/catalogEntry:CatalogEntry example 01ABC123DEF456GHI789JKL\n```\n\n","properties":{"aliases":{"type":"array","items":{"type":"string"},"description":"Optional aliases that can be used to reference this entry\n"},"attributeValues":{"type":"array","items":{"$ref":"#/types/incident:index%2FCatalogEntryAttributeValue:CatalogEntryAttributeValue"}},"catalogTypeId":{"type":"string","description":"ID of this catalog type\n"},"externalId":{"type":"string","description":"An optional alternative ID for this entry, which is ensured to be unique for the type\n"},"managedAttributes":{"type":"array","items":{"type":"string"},"description":"The set of attributes that are managed by this resource. By default, all attributes are managed by this resource.\n"},"name":{"type":"string","description":"Name is the human readable name of this entry\n"},"rank":{"type":"number","description":"When catalog type is ranked, this is used to help order things"}},"type":"object","required":["aliases","attributeValues","catalogTypeId","externalId","name","rank"],"inputProperties":{"aliases":{"type":"array","items":{"type":"string"},"description":"Optional aliases that can be used to reference this entry\n"},"attributeValues":{"type":"array","items":{"$ref":"#/types/incident:index%2FCatalogEntryAttributeValue:CatalogEntryAttributeValue"}},"catalogTypeId":{"type":"string","description":"ID of this catalog type\n"},"externalId":{"type":"string","description":"An optional alternative ID for this entry, which is ensured to be unique for the type\n"},"managedAttributes":{"type":"array","items":{"type":"string"},"description":"The set of attributes that are managed by this resource. By default, all attributes are managed by this resource.\n"},"name":{"type":"string","description":"Name is the human readable name of this entry\n"},"rank":{"type":"number","description":"When catalog type is ranked, this is used to help order things"}},"requiredInputs":["attributeValues","catalogTypeId"],"stateInputs":{"description":"Input properties used for looking up and filtering CatalogEntry resources.\n","properties":{"aliases":{"type":"array","items":{"type":"string"},"description":"Optional aliases that can be used to reference this entry\n"},"attributeValues":{"type":"array","items":{"$ref":"#/types/incident:index%2FCatalogEntryAttributeValue:CatalogEntryAttributeValue"}},"catalogTypeId":{"type":"string","description":"ID of this catalog type\n"},"externalId":{"type":"string","description":"An optional alternative ID for this entry, which is ensured to be unique for the type\n"},"managedAttributes":{"type":"array","items":{"type":"string"},"description":"The set of attributes that are managed by this resource. By default, all attributes are managed by this resource.\n"},"name":{"type":"string","description":"Name is the human readable name of this entry\n"},"rank":{"type":"number","description":"When catalog type is ranked, this is used to help order things"}},"type":"object"}},"incident:index/catalogType:CatalogType":{"description":"Manage and browse catalog resources.\n\nUse the incident.io catalog to track services, teams, product features and anything\nelse that helps build a map of your organisation. These different categories of thing\nbecome catalog types, and each instance (like a particular service or team) is a\ncatalog entry.\n\nEach type is made up of a series of attributes, and each attribute has a type. Types\ncan even have attributes that refer to other catalog types.\n\nWe automatically create catalog types when you connect an integration, such as GitHub\nrepositories or PagerDuty services and teams. You can use this API to create custom\ntypes, that are specifically tailored to your organisation.\n\nExamples might be a 'Service' type with an 'Alert channel' which you can point at a\nSlack channel, or 'Team' which specifies its 'Manager' and 'Technical Lead' as Slack\nusers. You can then use these types to create powerful new workflows.\n\nConsider using our official [catalog importer](https://github.com/incident-io/catalog-importer).\nIt can be used to sync catalog data from sources like local files or GitHub and push\nthem into the incident.io catalog without having to directly interact with our public API.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as incident from \"@pulumi/incident\";\n\n// Create a catalog type for a service tier, representing how important a service is.\nconst serviceTier = new incident.CatalogType(\"service_tier\", {\n    name: \"ServiceTier\",\n    typeName: \"Custom[\\\"ServiceTier\\\"]\",\n    description: \"  How critical is this service, with tier 1 being the highest and 3 the lowest.\\n\",\n    categories: [\"service\"],\n    sourceRepoUrl: \"https://github.com/mycompany/infrastructure\",\n});\n```\n```python\nimport pulumi\nimport pulumi_incident as incident\n\n# Create a catalog type for a service tier, representing how important a service is.\nservice_tier = incident.CatalogType(\"service_tier\",\n    name=\"ServiceTier\",\n    type_name=\"Custom[\\\"ServiceTier\\\"]\",\n    description=\"  How critical is this service, with tier 1 being the highest and 3 the lowest.\\n\",\n    categories=[\"service\"],\n    source_repo_url=\"https://github.com/mycompany/infrastructure\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Incident = Pulumi.Incident;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Create a catalog type for a service tier, representing how important a service is.\n    var serviceTier = new Incident.CatalogType(\"service_tier\", new()\n    {\n        Name = \"ServiceTier\",\n        TypeName = \"Custom[\\\"ServiceTier\\\"]\",\n        Description = @\"  How critical is this service, with tier 1 being the highest and 3 the lowest.\n\",\n        Categories = new[]\n        {\n            \"service\",\n        },\n        SourceRepoUrl = \"https://github.com/mycompany/infrastructure\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/incident/v5/incident\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Create a catalog type for a service tier, representing how important a service is.\n\t\t_, err := incident.NewCatalogType(ctx, \"service_tier\", \u0026incident.CatalogTypeArgs{\n\t\t\tName:        pulumi.String(\"ServiceTier\"),\n\t\t\tTypeName:    pulumi.String(\"Custom[\\\"ServiceTier\\\"]\"),\n\t\t\tDescription: pulumi.String(\"  How critical is this service, with tier 1 being the highest and 3 the lowest.\\n\"),\n\t\t\tCategories: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"service\"),\n\t\t\t},\n\t\t\tSourceRepoUrl: pulumi.String(\"https://github.com/mycompany/infrastructure\"),\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.incident.CatalogType;\nimport com.pulumi.incident.CatalogTypeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Create a catalog type for a service tier, representing how important a service is.\n        var serviceTier = new CatalogType(\"serviceTier\", CatalogTypeArgs.builder()\n            .name(\"ServiceTier\")\n            .typeName(\"Custom[\\\"ServiceTier\\\"]\")\n            .description(\"\"\"\n  How critical is this service, with tier 1 being the highest and 3 the lowest.\n            \"\"\")\n            .categories(\"service\")\n            .sourceRepoUrl(\"https://github.com/mycompany/infrastructure\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create a catalog type for a service tier, representing how important a service is.\n  serviceTier:\n    type: incident:CatalogType\n    name: service_tier\n    properties:\n      name: ServiceTier\n      typeName: Custom[\"ServiceTier\"]\n      description: |2\n          How critical is this service, with tier 1 being the highest and 3 the lowest.\n      categories:\n        - service\n      sourceRepoUrl: https://github.com/mycompany/infrastructure\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nThe `pulumi import` command can be used, for example:\n\n#!/bin/bash\n\nImport a catalog type using its ID\n\nReplace the ID with a real ID from your incident.io organization\n\n```sh\n$ pulumi import incident:index/catalogType:CatalogType example 01ABC123DEF456GHI789JKL\n```\n\n","properties":{"categories":{"type":"array","items":{"type":"string"},"description":"The categories that this type belongs to, to be shown in the web dashboard. Possible values are: \u003cspan pulumi-lang-nodejs=\"`customer`\" pulumi-lang-dotnet=\"`Customer`\" pulumi-lang-go=\"`customer`\" pulumi-lang-python=\"`customer`\" pulumi-lang-yaml=\"`customer`\" pulumi-lang-java=\"`customer`\"\u003e`customer`\u003c/span\u003e, `issue-tracker`, `product-feature`, \u003cspan pulumi-lang-nodejs=\"`service`\" pulumi-lang-dotnet=\"`Service`\" pulumi-lang-go=\"`service`\" pulumi-lang-python=\"`service`\" pulumi-lang-yaml=\"`service`\" pulumi-lang-java=\"`service`\"\u003e`service`\u003c/span\u003e, `on-call`, \u003cspan pulumi-lang-nodejs=\"`team`\" pulumi-lang-dotnet=\"`Team`\" pulumi-lang-go=\"`team`\" pulumi-lang-python=\"`team`\" pulumi-lang-yaml=\"`team`\" pulumi-lang-java=\"`team`\"\u003e`team`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`user`\" pulumi-lang-dotnet=\"`User`\" pulumi-lang-go=\"`user`\" pulumi-lang-python=\"`user`\" pulumi-lang-yaml=\"`user`\" pulumi-lang-java=\"`user`\"\u003e`user`\u003c/span\u003e.\n"},"description":{"type":"string","description":"Human readble description of this type\n"},"name":{"type":"string","description":"Name is the human readable name of this type\n"},"sourceRepoUrl":{"type":"string","description":"The url of the external repository where this type is managed. Users will not be able to edit the catalog type (or its entries) via the UI, and will instead be provided a link to this URL.\n"},"typeName":{"type":"string","description":"The type name of this catalog type, to be used when defining attributes. This is immutable once a CatalogType has been created. For non-externally sync types, it must follow the pattern Custom[\"SomeName\"]\n"},"useNameAsIdentifier":{"type":"boolean","description":"If enabled, you can refer to entries of this type by their name, as well as their external ID and any aliases.\n"}},"type":"object","required":["categories","description","name","sourceRepoUrl","typeName","useNameAsIdentifier"],"inputProperties":{"categories":{"type":"array","items":{"type":"string"},"description":"The categories that this type belongs to, to be shown in the web dashboard. Possible values are: \u003cspan pulumi-lang-nodejs=\"`customer`\" pulumi-lang-dotnet=\"`Customer`\" pulumi-lang-go=\"`customer`\" pulumi-lang-python=\"`customer`\" pulumi-lang-yaml=\"`customer`\" pulumi-lang-java=\"`customer`\"\u003e`customer`\u003c/span\u003e, `issue-tracker`, `product-feature`, \u003cspan pulumi-lang-nodejs=\"`service`\" pulumi-lang-dotnet=\"`Service`\" pulumi-lang-go=\"`service`\" pulumi-lang-python=\"`service`\" pulumi-lang-yaml=\"`service`\" pulumi-lang-java=\"`service`\"\u003e`service`\u003c/span\u003e, `on-call`, \u003cspan pulumi-lang-nodejs=\"`team`\" pulumi-lang-dotnet=\"`Team`\" pulumi-lang-go=\"`team`\" pulumi-lang-python=\"`team`\" pulumi-lang-yaml=\"`team`\" pulumi-lang-java=\"`team`\"\u003e`team`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`user`\" pulumi-lang-dotnet=\"`User`\" pulumi-lang-go=\"`user`\" pulumi-lang-python=\"`user`\" pulumi-lang-yaml=\"`user`\" pulumi-lang-java=\"`user`\"\u003e`user`\u003c/span\u003e.\n"},"description":{"type":"string","description":"Human readble description of this type\n"},"name":{"type":"string","description":"Name is the human readable name of this type\n"},"sourceRepoUrl":{"type":"string","description":"The url of the external repository where this type is managed. Users will not be able to edit the catalog type (or its entries) via the UI, and will instead be provided a link to this URL.\n"},"typeName":{"type":"string","description":"The type name of this catalog type, to be used when defining attributes. This is immutable once a CatalogType has been created. For non-externally sync types, it must follow the pattern Custom[\"SomeName\"]\n"},"useNameAsIdentifier":{"type":"boolean","description":"If enabled, you can refer to entries of this type by their name, as well as their external ID and any aliases.\n"}},"requiredInputs":["description","sourceRepoUrl"],"stateInputs":{"description":"Input properties used for looking up and filtering CatalogType resources.\n","properties":{"categories":{"type":"array","items":{"type":"string"},"description":"The categories that this type belongs to, to be shown in the web dashboard. Possible values are: \u003cspan pulumi-lang-nodejs=\"`customer`\" pulumi-lang-dotnet=\"`Customer`\" pulumi-lang-go=\"`customer`\" pulumi-lang-python=\"`customer`\" pulumi-lang-yaml=\"`customer`\" pulumi-lang-java=\"`customer`\"\u003e`customer`\u003c/span\u003e, `issue-tracker`, `product-feature`, \u003cspan pulumi-lang-nodejs=\"`service`\" pulumi-lang-dotnet=\"`Service`\" pulumi-lang-go=\"`service`\" pulumi-lang-python=\"`service`\" pulumi-lang-yaml=\"`service`\" pulumi-lang-java=\"`service`\"\u003e`service`\u003c/span\u003e, `on-call`, \u003cspan pulumi-lang-nodejs=\"`team`\" pulumi-lang-dotnet=\"`Team`\" pulumi-lang-go=\"`team`\" pulumi-lang-python=\"`team`\" pulumi-lang-yaml=\"`team`\" pulumi-lang-java=\"`team`\"\u003e`team`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`user`\" pulumi-lang-dotnet=\"`User`\" pulumi-lang-go=\"`user`\" pulumi-lang-python=\"`user`\" pulumi-lang-yaml=\"`user`\" pulumi-lang-java=\"`user`\"\u003e`user`\u003c/span\u003e.\n"},"description":{"type":"string","description":"Human readble description of this type\n"},"name":{"type":"string","description":"Name is the human readable name of this type\n"},"sourceRepoUrl":{"type":"string","description":"The url of the external repository where this type is managed. Users will not be able to edit the catalog type (or its entries) via the UI, and will instead be provided a link to this URL.\n"},"typeName":{"type":"string","description":"The type name of this catalog type, to be used when defining attributes. This is immutable once a CatalogType has been created. For non-externally sync types, it must follow the pattern Custom[\"SomeName\"]\n"},"useNameAsIdentifier":{"type":"boolean","description":"If enabled, you can refer to entries of this type by their name, as well as their external ID and any aliases.\n"}},"type":"object"}},"incident:index/catalogTypeAttribute:CatalogTypeAttribute":{"description":"Manage and browse catalog resources.\n\nUse the incident.io catalog to track services, teams, product features and anything\nelse that helps build a map of your organisation. These different categories of thing\nbecome catalog types, and each instance (like a particular service or team) is a\ncatalog entry.\n\nEach type is made up of a series of attributes, and each attribute has a type. Types\ncan even have attributes that refer to other catalog types.\n\nWe automatically create catalog types when you connect an integration, such as GitHub\nrepositories or PagerDuty services and teams. You can use this API to create custom\ntypes, that are specifically tailored to your organisation.\n\nExamples might be a 'Service' type with an 'Alert channel' which you can point at a\nSlack channel, or 'Team' which specifies its 'Manager' and 'Technical Lead' as Slack\nusers. You can then use these types to create powerful new workflows.\n\nConsider using our official [catalog importer](https://github.com/incident-io/catalog-importer).\nIt can be used to sync catalog data from sources like local files or GitHub and push\nthem into the incident.io catalog without having to directly interact with our public API.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as incident from \"@pulumi/incident\";\n\nconst service = new incident.CatalogType(\"service\", {\n    name: \"Service\",\n    description: \"All services that we run across our product\",\n});\nconst serviceTier = new incident.CatalogType(\"service_tier\", {\n    name: \"Service Tier\",\n    description: \"Level of importance for each service\",\n});\nconst serviceDescription = new incident.CatalogTypeAttribute(\"service_description\", {\n    catalogTypeId: service.id,\n    name: \"Description\",\n    type: \"Text\",\n});\nconst serviceTeam = new incident.CatalogTypeAttribute(\"service_team\", {\n    catalogTypeId: service.id,\n    name: \"Team\",\n    type: \"Text\",\n});\nconst serviceServiceTier = new incident.CatalogTypeAttribute(\"service_service_tier\", {\n    catalogTypeId: service.id,\n    name: \"Tier\",\n    type: serviceTier.typeName,\n});\n// To create a backlink (i.e. Service tier -\u003e Services)\nconst serviceTierServices = new incident.CatalogTypeAttribute(\"service_tier_services\", {\n    catalogTypeId: serviceTier.id,\n    name: \"Services\",\n    type: service.typeName,\n    backlinkAttribute: serviceServiceTier.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_incident as incident\n\nservice = incident.CatalogType(\"service\",\n    name=\"Service\",\n    description=\"All services that we run across our product\")\nservice_tier = incident.CatalogType(\"service_tier\",\n    name=\"Service Tier\",\n    description=\"Level of importance for each service\")\nservice_description = incident.CatalogTypeAttribute(\"service_description\",\n    catalog_type_id=service.id,\n    name=\"Description\",\n    type=\"Text\")\nservice_team = incident.CatalogTypeAttribute(\"service_team\",\n    catalog_type_id=service.id,\n    name=\"Team\",\n    type=\"Text\")\nservice_service_tier = incident.CatalogTypeAttribute(\"service_service_tier\",\n    catalog_type_id=service.id,\n    name=\"Tier\",\n    type=service_tier.type_name)\n# To create a backlink (i.e. Service tier -\u003e Services)\nservice_tier_services = incident.CatalogTypeAttribute(\"service_tier_services\",\n    catalog_type_id=service_tier.id,\n    name=\"Services\",\n    type=service.type_name,\n    backlink_attribute=service_service_tier.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Incident = Pulumi.Incident;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var service = new Incident.CatalogType(\"service\", new()\n    {\n        Name = \"Service\",\n        Description = \"All services that we run across our product\",\n    });\n\n    var serviceTier = new Incident.CatalogType(\"service_tier\", new()\n    {\n        Name = \"Service Tier\",\n        Description = \"Level of importance for each service\",\n    });\n\n    var serviceDescription = new Incident.CatalogTypeAttribute(\"service_description\", new()\n    {\n        CatalogTypeId = service.Id,\n        Name = \"Description\",\n        Type = \"Text\",\n    });\n\n    var serviceTeam = new Incident.CatalogTypeAttribute(\"service_team\", new()\n    {\n        CatalogTypeId = service.Id,\n        Name = \"Team\",\n        Type = \"Text\",\n    });\n\n    var serviceServiceTier = new Incident.CatalogTypeAttribute(\"service_service_tier\", new()\n    {\n        CatalogTypeId = service.Id,\n        Name = \"Tier\",\n        Type = serviceTier.TypeName,\n    });\n\n    // To create a backlink (i.e. Service tier -\u003e Services)\n    var serviceTierServices = new Incident.CatalogTypeAttribute(\"service_tier_services\", new()\n    {\n        CatalogTypeId = serviceTier.Id,\n        Name = \"Services\",\n        Type = service.TypeName,\n        BacklinkAttribute = serviceServiceTier.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/incident/v5/incident\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tservice, err := incident.NewCatalogType(ctx, \"service\", \u0026incident.CatalogTypeArgs{\n\t\t\tName:        pulumi.String(\"Service\"),\n\t\t\tDescription: pulumi.String(\"All services that we run across our product\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tserviceTier, err := incident.NewCatalogType(ctx, \"service_tier\", \u0026incident.CatalogTypeArgs{\n\t\t\tName:        pulumi.String(\"Service Tier\"),\n\t\t\tDescription: pulumi.String(\"Level of importance for each service\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = incident.NewCatalogTypeAttribute(ctx, \"service_description\", \u0026incident.CatalogTypeAttributeArgs{\n\t\t\tCatalogTypeId: service.ID(),\n\t\t\tName:          pulumi.String(\"Description\"),\n\t\t\tType:          pulumi.String(\"Text\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = incident.NewCatalogTypeAttribute(ctx, \"service_team\", \u0026incident.CatalogTypeAttributeArgs{\n\t\t\tCatalogTypeId: service.ID(),\n\t\t\tName:          pulumi.String(\"Team\"),\n\t\t\tType:          pulumi.String(\"Text\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tserviceServiceTier, err := incident.NewCatalogTypeAttribute(ctx, \"service_service_tier\", \u0026incident.CatalogTypeAttributeArgs{\n\t\t\tCatalogTypeId: service.ID(),\n\t\t\tName:          pulumi.String(\"Tier\"),\n\t\t\tType:          serviceTier.TypeName,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// To create a backlink (i.e. Service tier -\u003e Services)\n\t\t_, err = incident.NewCatalogTypeAttribute(ctx, \"service_tier_services\", \u0026incident.CatalogTypeAttributeArgs{\n\t\t\tCatalogTypeId:     serviceTier.ID(),\n\t\t\tName:              pulumi.String(\"Services\"),\n\t\t\tType:              service.TypeName,\n\t\t\tBacklinkAttribute: serviceServiceTier.ID(),\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.incident.CatalogType;\nimport com.pulumi.incident.CatalogTypeArgs;\nimport com.pulumi.incident.CatalogTypeAttribute;\nimport com.pulumi.incident.CatalogTypeAttributeArgs;\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 service = new CatalogType(\"service\", CatalogTypeArgs.builder()\n            .name(\"Service\")\n            .description(\"All services that we run across our product\")\n            .build());\n\n        var serviceTier = new CatalogType(\"serviceTier\", CatalogTypeArgs.builder()\n            .name(\"Service Tier\")\n            .description(\"Level of importance for each service\")\n            .build());\n\n        var serviceDescription = new CatalogTypeAttribute(\"serviceDescription\", CatalogTypeAttributeArgs.builder()\n            .catalogTypeId(service.id())\n            .name(\"Description\")\n            .type(\"Text\")\n            .build());\n\n        var serviceTeam = new CatalogTypeAttribute(\"serviceTeam\", CatalogTypeAttributeArgs.builder()\n            .catalogTypeId(service.id())\n            .name(\"Team\")\n            .type(\"Text\")\n            .build());\n\n        var serviceServiceTier = new CatalogTypeAttribute(\"serviceServiceTier\", CatalogTypeAttributeArgs.builder()\n            .catalogTypeId(service.id())\n            .name(\"Tier\")\n            .type(serviceTier.typeName())\n            .build());\n\n        // To create a backlink (i.e. Service tier -\u003e Services)\n        var serviceTierServices = new CatalogTypeAttribute(\"serviceTierServices\", CatalogTypeAttributeArgs.builder()\n            .catalogTypeId(serviceTier.id())\n            .name(\"Services\")\n            .type(service.typeName())\n            .backlinkAttribute(serviceServiceTier.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  service:\n    type: incident:CatalogType\n    properties:\n      name: Service\n      description: All services that we run across our product\n  serviceTier:\n    type: incident:CatalogType\n    name: service_tier\n    properties:\n      name: Service Tier\n      description: Level of importance for each service\n  serviceDescription:\n    type: incident:CatalogTypeAttribute\n    name: service_description\n    properties:\n      catalogTypeId: ${service.id}\n      name: Description\n      type: Text\n  serviceTeam:\n    type: incident:CatalogTypeAttribute\n    name: service_team\n    properties:\n      catalogTypeId: ${service.id}\n      name: Team\n      type: Text\n  serviceServiceTier:\n    type: incident:CatalogTypeAttribute\n    name: service_service_tier\n    properties:\n      catalogTypeId: ${service.id}\n      name: Tier\n      type: ${serviceTier.typeName}\n  # To create a backlink (i.e. Service tier -\u003e Services)\n  serviceTierServices:\n    type: incident:CatalogTypeAttribute\n    name: service_tier_services\n    properties:\n      catalogTypeId: ${serviceTier.id}\n      name: Services\n      type: ${service.typeName}\n      backlinkAttribute: ${serviceServiceTier.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nThe `pulumi import` command can be used, for example:\n\n#!/bin/bash\n\nImport a catalog type attribute using the format catalog_type_id:attribute_id\n\nReplace the IDs with real IDs from your incident.io organization\n\n```sh\n$ pulumi import incident:index/catalogTypeAttribute:CatalogTypeAttribute example 01ABC123DEF456GHI789JKL:01MNO456PQR789STU012VWX\n```\n\n","properties":{"array":{"type":"boolean","description":"Whether this attribute is an array or scalar.\n"},"backlinkAttribute":{"type":"string","description":"If this is a backlink, the id of the attribute that it's linked from\n"},"catalogTypeId":{"type":"string","description":"ID of this catalog type\n"},"name":{"type":"string","description":"The name of this attribute.\n"},"paths":{"type":"array","items":{"type":"string"},"description":"If this is a path attribute, the path that we should use to pull the data\n"},"schemaOnly":{"type":"boolean"},"type":{"type":"string","description":"The type of this attribute.\n"}},"type":"object","required":["array","catalogTypeId","name","schemaOnly","type"],"inputProperties":{"array":{"type":"boolean","description":"Whether this attribute is an array or scalar.\n"},"backlinkAttribute":{"type":"string","description":"If this is a backlink, the id of the attribute that it's linked from\n"},"catalogTypeId":{"type":"string","description":"ID of this catalog type\n"},"name":{"type":"string","description":"The name of this attribute.\n"},"paths":{"type":"array","items":{"type":"string"},"description":"If this is a path attribute, the path that we should use to pull the data\n"},"schemaOnly":{"type":"boolean"},"type":{"type":"string","description":"The type of this attribute.\n"}},"requiredInputs":["catalogTypeId","type"],"stateInputs":{"description":"Input properties used for looking up and filtering CatalogTypeAttribute resources.\n","properties":{"array":{"type":"boolean","description":"Whether this attribute is an array or scalar.\n"},"backlinkAttribute":{"type":"string","description":"If this is a backlink, the id of the attribute that it's linked from\n"},"catalogTypeId":{"type":"string","description":"ID of this catalog type\n"},"name":{"type":"string","description":"The name of this attribute.\n"},"paths":{"type":"array","items":{"type":"string"},"description":"If this is a path attribute, the path that we should use to pull the data\n"},"schemaOnly":{"type":"boolean"},"type":{"type":"string","description":"The type of this attribute.\n"}},"type":"object"}},"incident:index/customField:CustomField":{"description":"Manage custom fields.\n\nCustom fields are used to attach metadata to incidents, which you can use when searching\nfor incidents in the dashboard, triggering workflows, building announcement rules or for\nyour own data needs.\n\nEach field has a type:\n\n- Single-select, single value selected from a predefined list of options (e.g. Detection Method)\n- Multi-select, as above but you can pick more than one option (e.g. Affected Teams)\n- Text, freeform text field (e.g. Customer ID)\n- Link, link URL that is synced to Slack bookmarks on the incident channel (e.g. External Status Page)\n- Number, integer or fractional numbers (e.g. # Customers Affected)\n\nWe may add more custom field types in the future - we'd love to hear any other types you'd like to use!\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as incident from \"@pulumi/incident\";\n\n// Create an Affected Teams multi-select field, required always, shown at all\n// opportunities.\nconst affectedTeams = new incident.CustomField(\"affected_teams\", {\n    name: \"Affected Teams\",\n    description: \"The teams that are affected by this incident.\",\n    fieldType: \"multi_select\",\n});\n```\n```python\nimport pulumi\nimport pulumi_incident as incident\n\n# Create an Affected Teams multi-select field, required always, shown at all\n# opportunities.\naffected_teams = incident.CustomField(\"affected_teams\",\n    name=\"Affected Teams\",\n    description=\"The teams that are affected by this incident.\",\n    field_type=\"multi_select\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Incident = Pulumi.Incident;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Create an Affected Teams multi-select field, required always, shown at all\n    // opportunities.\n    var affectedTeams = new Incident.CustomField(\"affected_teams\", new()\n    {\n        Name = \"Affected Teams\",\n        Description = \"The teams that are affected by this incident.\",\n        FieldType = \"multi_select\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/incident/v5/incident\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Create an Affected Teams multi-select field, required always, shown at all\n\t\t// opportunities.\n\t\t_, err := incident.NewCustomField(ctx, \"affected_teams\", \u0026incident.CustomFieldArgs{\n\t\t\tName:        pulumi.String(\"Affected Teams\"),\n\t\t\tDescription: pulumi.String(\"The teams that are affected by this incident.\"),\n\t\t\tFieldType:   pulumi.String(\"multi_select\"),\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.incident.CustomField;\nimport com.pulumi.incident.CustomFieldArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Create an Affected Teams multi-select field, required always, shown at all\n        // opportunities.\n        var affectedTeams = new CustomField(\"affectedTeams\", CustomFieldArgs.builder()\n            .name(\"Affected Teams\")\n            .description(\"The teams that are affected by this incident.\")\n            .fieldType(\"multi_select\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an Affected Teams multi-select field, required always, shown at all\n  # opportunities.\n  affectedTeams:\n    type: incident:CustomField\n    name: affected_teams\n    properties:\n      name: Affected Teams\n      description: The teams that are affected by this incident.\n      fieldType: multi_select\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nThe `pulumi import` command can be used, for example:\n\n#!/bin/bash\n\nImport a custom field using its ID\n\nReplace the ID with a real ID from your incident.io organization\n\n```sh\n$ pulumi import incident:index/customField:CustomField example 01ABC123DEF456GHI789JKL\n```\n\n","properties":{"catalogTypeId":{"type":"string","description":"For catalog fields, the ID of the associated catalog type\n"},"description":{"type":"string","description":"Description of the custom field\n"},"fieldType":{"type":"string","description":"Type of custom field. Possible values are: \u003cspan pulumi-lang-nodejs=\"`singleSelect`\" pulumi-lang-dotnet=\"`SingleSelect`\" pulumi-lang-go=\"`singleSelect`\" pulumi-lang-python=\"`single_select`\" pulumi-lang-yaml=\"`singleSelect`\" pulumi-lang-java=\"`singleSelect`\"\u003e`single_select`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`multiSelect`\" pulumi-lang-dotnet=\"`MultiSelect`\" pulumi-lang-go=\"`multiSelect`\" pulumi-lang-python=\"`multi_select`\" pulumi-lang-yaml=\"`multiSelect`\" pulumi-lang-java=\"`multiSelect`\"\u003e`multi_select`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`text`\" pulumi-lang-dotnet=\"`Text`\" pulumi-lang-go=\"`text`\" pulumi-lang-python=\"`text`\" pulumi-lang-yaml=\"`text`\" pulumi-lang-java=\"`text`\"\u003e`text`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`link`\" pulumi-lang-dotnet=\"`Link`\" pulumi-lang-go=\"`link`\" pulumi-lang-python=\"`link`\" pulumi-lang-yaml=\"`link`\" pulumi-lang-java=\"`link`\"\u003e`link`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`numeric`\" pulumi-lang-dotnet=\"`Numeric`\" pulumi-lang-go=\"`numeric`\" pulumi-lang-python=\"`numeric`\" pulumi-lang-yaml=\"`numeric`\" pulumi-lang-java=\"`numeric`\"\u003e`numeric`\u003c/span\u003e.\n"},"filterBy":{"$ref":"#/types/incident:index%2FCustomFieldFilterBy:CustomFieldFilterBy"},"groupByCatalogAttributeId":{"type":"string","description":"For catalog fields, the ID of the attribute used to group catalog entries (if applicable)\n"},"helptextCatalogAttributeId":{"type":"string","description":"Which catalog attribute provides helptext for the options\n"},"name":{"type":"string","description":"Human readable name for the custom field\n"}},"type":"object","required":["description","fieldType","name"],"inputProperties":{"catalogTypeId":{"type":"string","description":"For catalog fields, the ID of the associated catalog type\n"},"description":{"type":"string","description":"Description of the custom field\n"},"fieldType":{"type":"string","description":"Type of custom field. Possible values are: \u003cspan pulumi-lang-nodejs=\"`singleSelect`\" pulumi-lang-dotnet=\"`SingleSelect`\" pulumi-lang-go=\"`singleSelect`\" pulumi-lang-python=\"`single_select`\" pulumi-lang-yaml=\"`singleSelect`\" pulumi-lang-java=\"`singleSelect`\"\u003e`single_select`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`multiSelect`\" pulumi-lang-dotnet=\"`MultiSelect`\" pulumi-lang-go=\"`multiSelect`\" pulumi-lang-python=\"`multi_select`\" pulumi-lang-yaml=\"`multiSelect`\" pulumi-lang-java=\"`multiSelect`\"\u003e`multi_select`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`text`\" pulumi-lang-dotnet=\"`Text`\" pulumi-lang-go=\"`text`\" pulumi-lang-python=\"`text`\" pulumi-lang-yaml=\"`text`\" pulumi-lang-java=\"`text`\"\u003e`text`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`link`\" pulumi-lang-dotnet=\"`Link`\" pulumi-lang-go=\"`link`\" pulumi-lang-python=\"`link`\" pulumi-lang-yaml=\"`link`\" pulumi-lang-java=\"`link`\"\u003e`link`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`numeric`\" pulumi-lang-dotnet=\"`Numeric`\" pulumi-lang-go=\"`numeric`\" pulumi-lang-python=\"`numeric`\" pulumi-lang-yaml=\"`numeric`\" pulumi-lang-java=\"`numeric`\"\u003e`numeric`\u003c/span\u003e.\n"},"filterBy":{"$ref":"#/types/incident:index%2FCustomFieldFilterBy:CustomFieldFilterBy"},"groupByCatalogAttributeId":{"type":"string","description":"For catalog fields, the ID of the attribute used to group catalog entries (if applicable)\n"},"helptextCatalogAttributeId":{"type":"string","description":"Which catalog attribute provides helptext for the options\n"},"name":{"type":"string","description":"Human readable name for the custom field\n"}},"requiredInputs":["description","fieldType"],"stateInputs":{"description":"Input properties used for looking up and filtering CustomField resources.\n","properties":{"catalogTypeId":{"type":"string","description":"For catalog fields, the ID of the associated catalog type\n"},"description":{"type":"string","description":"Description of the custom field\n"},"fieldType":{"type":"string","description":"Type of custom field. Possible values are: \u003cspan pulumi-lang-nodejs=\"`singleSelect`\" pulumi-lang-dotnet=\"`SingleSelect`\" pulumi-lang-go=\"`singleSelect`\" pulumi-lang-python=\"`single_select`\" pulumi-lang-yaml=\"`singleSelect`\" pulumi-lang-java=\"`singleSelect`\"\u003e`single_select`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`multiSelect`\" pulumi-lang-dotnet=\"`MultiSelect`\" pulumi-lang-go=\"`multiSelect`\" pulumi-lang-python=\"`multi_select`\" pulumi-lang-yaml=\"`multiSelect`\" pulumi-lang-java=\"`multiSelect`\"\u003e`multi_select`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`text`\" pulumi-lang-dotnet=\"`Text`\" pulumi-lang-go=\"`text`\" pulumi-lang-python=\"`text`\" pulumi-lang-yaml=\"`text`\" pulumi-lang-java=\"`text`\"\u003e`text`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`link`\" pulumi-lang-dotnet=\"`Link`\" pulumi-lang-go=\"`link`\" pulumi-lang-python=\"`link`\" pulumi-lang-yaml=\"`link`\" pulumi-lang-java=\"`link`\"\u003e`link`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`numeric`\" pulumi-lang-dotnet=\"`Numeric`\" pulumi-lang-go=\"`numeric`\" pulumi-lang-python=\"`numeric`\" pulumi-lang-yaml=\"`numeric`\" pulumi-lang-java=\"`numeric`\"\u003e`numeric`\u003c/span\u003e.\n"},"filterBy":{"$ref":"#/types/incident:index%2FCustomFieldFilterBy:CustomFieldFilterBy"},"groupByCatalogAttributeId":{"type":"string","description":"For catalog fields, the ID of the attribute used to group catalog entries (if applicable)\n"},"helptextCatalogAttributeId":{"type":"string","description":"Which catalog attribute provides helptext for the options\n"},"name":{"type":"string","description":"Human readable name for the custom field\n"}},"type":"object"}},"incident:index/customFieldOption:CustomFieldOption":{"description":"Manage custom field options.\n\nSingle- and multi-select custom fields have a list of all available options,\nwhich have a value, and a sort key. The value must be unique to the custom\nfield. For example, you might have an Incident Type custom field, with options\n\"Data breach\", \"Performance degradation\", \"API downtime\", etc.\n\n## Import\n\nThe `pulumi import` command can be used, for example:\n\n#!/bin/bash\n\nImport a custom field option using its ID\n\nReplace the ID with a real ID from your incident.io organization\n\n```sh\n$ pulumi import incident:index/customFieldOption:CustomFieldOption example 01ABC123DEF456GHI789JKL\n```\n\n","properties":{"customFieldId":{"type":"string","description":"ID of the custom field this option belongs to\n"},"sortKey":{"type":"number","description":"Sort key used to order the custom field options correctly\n"},"value":{"type":"string","description":"Human readable name for the custom field option\n"}},"type":"object","required":["customFieldId","sortKey","value"],"inputProperties":{"customFieldId":{"type":"string","description":"ID of the custom field this option belongs to\n"},"sortKey":{"type":"number","description":"Sort key used to order the custom field options correctly\n"},"value":{"type":"string","description":"Human readable name for the custom field option\n"}},"requiredInputs":["customFieldId","value"],"stateInputs":{"description":"Input properties used for looking up and filtering CustomFieldOption resources.\n","properties":{"customFieldId":{"type":"string","description":"ID of the custom field this option belongs to\n"},"sortKey":{"type":"number","description":"Sort key used to order the custom field options correctly\n"},"value":{"type":"string","description":"Human readable name for the custom field option\n"}},"type":"object"}},"incident:index/escalationPath:EscalationPath":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as incident from \"@pulumi/incident\";\n\n// This is the primary schedule that receives pages in working hours.\nconst primaryOnCall = new incident.Schedule(\"primary_on_call\", {\n    name: \"Primary\",\n    timezone: \"Europe/London\",\n    rotations: [{\n        id: \"primary\",\n        name: \"Primary\",\n        versions: [{\n            handoverStartAt: \"2024-05-01T12:00:00Z\",\n            users: [],\n            layers: [{\n                id: \"primary\",\n                name: \"Primary\",\n            }],\n            handovers: [{\n                intervalType: \"daily\",\n                interval: 1,\n            }],\n        }],\n    }],\n});\n// If in working hours, send high-urgency alerts. Otherwise use low-urgency.\nconst urgentSupport = new incident.EscalationPath(\"urgent_support\", {\n    name: \"Urgent support\",\n    paths: [{\n        id: \"start\",\n        type: \"if_else\",\n        ifElse: {\n            conditions: [{\n                operation: \"is_active\",\n                paramBindings: [],\n                subject: \"escalation.working_hours[\\\"UK\\\"]\",\n            }],\n            thenPaths: [\n                {\n                    type: \"level\",\n                    level: {\n                        targets: [{\n                            type: \"schedule\",\n                            id: primaryOnCall.id,\n                            urgency: \"high\",\n                        }],\n                        timeToAckSeconds: 300,\n                    },\n                },\n                {\n                    type: \"repeat\",\n                    repeat: {\n                        repeatTimes: 3,\n                        toNode: \"start\",\n                    },\n                },\n            ],\n            elsePaths: [{\n                type: \"level\",\n                level: {\n                    targets: [{\n                        type: \"schedule\",\n                        id: primaryOnCall.id,\n                        urgency: \"low\",\n                    }],\n                    timeToAckSeconds: 300,\n                },\n            }],\n        },\n    }],\n    workingHours: [{\n        id: \"UK\",\n        name: \"UK\",\n        timezone: \"Europe/London\",\n        weekdayIntervals: [{\n            weekday: \"monday\",\n            startTime: \"09:00\",\n            endTime: \"17:00\",\n        }],\n    }],\n    teamIds: [\n        \"01FCNDV6P870EA6S7TK1DSYD00\",\n        \"01FCNDV6P870EA6S7TK1DSYD01\",\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_incident as incident\n\n# This is the primary schedule that receives pages in working hours.\nprimary_on_call = incident.Schedule(\"primary_on_call\",\n    name=\"Primary\",\n    timezone=\"Europe/London\",\n    rotations=[{\n        \"id\": \"primary\",\n        \"name\": \"Primary\",\n        \"versions\": [{\n            \"handover_start_at\": \"2024-05-01T12:00:00Z\",\n            \"users\": [],\n            \"layers\": [{\n                \"id\": \"primary\",\n                \"name\": \"Primary\",\n            }],\n            \"handovers\": [{\n                \"interval_type\": \"daily\",\n                \"interval\": 1,\n            }],\n        }],\n    }])\n# If in working hours, send high-urgency alerts. Otherwise use low-urgency.\nurgent_support = incident.EscalationPath(\"urgent_support\",\n    name=\"Urgent support\",\n    paths=[{\n        \"id\": \"start\",\n        \"type\": \"if_else\",\n        \"if_else\": {\n            \"conditions\": [{\n                \"operation\": \"is_active\",\n                \"param_bindings\": [],\n                \"subject\": \"escalation.working_hours[\\\"UK\\\"]\",\n            }],\n            \"then_paths\": [\n                {\n                    \"type\": \"level\",\n                    \"level\": {\n                        \"targets\": [{\n                            \"type\": \"schedule\",\n                            \"id\": primary_on_call.id,\n                            \"urgency\": \"high\",\n                        }],\n                        \"time_to_ack_seconds\": 300,\n                    },\n                },\n                {\n                    \"type\": \"repeat\",\n                    \"repeat\": {\n                        \"repeat_times\": 3,\n                        \"to_node\": \"start\",\n                    },\n                },\n            ],\n            \"else_paths\": [{\n                \"type\": \"level\",\n                \"level\": {\n                    \"targets\": [{\n                        \"type\": \"schedule\",\n                        \"id\": primary_on_call.id,\n                        \"urgency\": \"low\",\n                    }],\n                    \"time_to_ack_seconds\": 300,\n                },\n            }],\n        },\n    }],\n    working_hours=[{\n        \"id\": \"UK\",\n        \"name\": \"UK\",\n        \"timezone\": \"Europe/London\",\n        \"weekday_intervals\": [{\n            \"weekday\": \"monday\",\n            \"start_time\": \"09:00\",\n            \"end_time\": \"17:00\",\n        }],\n    }],\n    team_ids=[\n        \"01FCNDV6P870EA6S7TK1DSYD00\",\n        \"01FCNDV6P870EA6S7TK1DSYD01\",\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Incident = Pulumi.Incident;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // This is the primary schedule that receives pages in working hours.\n    var primaryOnCall = new Incident.Schedule(\"primary_on_call\", new()\n    {\n        Name = \"Primary\",\n        Timezone = \"Europe/London\",\n        Rotations = new[]\n        {\n            new Incident.Inputs.ScheduleRotationArgs\n            {\n                Id = \"primary\",\n                Name = \"Primary\",\n                Versions = new[]\n                {\n                    new Incident.Inputs.ScheduleRotationVersionArgs\n                    {\n                        HandoverStartAt = \"2024-05-01T12:00:00Z\",\n                        Users = new() { },\n                        Layers = new[]\n                        {\n                            new Incident.Inputs.ScheduleRotationVersionLayerArgs\n                            {\n                                Id = \"primary\",\n                                Name = \"Primary\",\n                            },\n                        },\n                        Handovers = new[]\n                        {\n                            new Incident.Inputs.ScheduleRotationVersionHandoverArgs\n                            {\n                                IntervalType = \"daily\",\n                                Interval = 1,\n                            },\n                        },\n                    },\n                },\n            },\n        },\n    });\n\n    // If in working hours, send high-urgency alerts. Otherwise use low-urgency.\n    var urgentSupport = new Incident.EscalationPath(\"urgent_support\", new()\n    {\n        Name = \"Urgent support\",\n        Paths = new[]\n        {\n            new Incident.Inputs.EscalationPathPathArgs\n            {\n                Id = \"start\",\n                Type = \"if_else\",\n                IfElse = new Incident.Inputs.EscalationPathPathIfElseArgs\n                {\n                    Conditions = new[]\n                    {\n                        new Incident.Inputs.EscalationPathPathIfElseConditionArgs\n                        {\n                            Operation = \"is_active\",\n                            ParamBindings = new() { },\n                            Subject = \"escalation.working_hours[\\\"UK\\\"]\",\n                        },\n                    },\n                    ThenPaths = new[]\n                    {\n                        new Incident.Inputs.EscalationPathPathIfElseThenPathArgs\n                        {\n                            Type = \"level\",\n                            Level = new Incident.Inputs.EscalationPathPathIfElseThenPathLevelArgs\n                            {\n                                Targets = new[]\n                                {\n                                    new Incident.Inputs.EscalationPathPathIfElseThenPathLevelTargetArgs\n                                    {\n                                        Type = \"schedule\",\n                                        Id = primaryOnCall.Id,\n                                        Urgency = \"high\",\n                                    },\n                                },\n                                TimeToAckSeconds = 300,\n                            },\n                        },\n                        new Incident.Inputs.EscalationPathPathIfElseThenPathArgs\n                        {\n                            Type = \"repeat\",\n                            Repeat = new Incident.Inputs.EscalationPathPathIfElseThenPathRepeatArgs\n                            {\n                                RepeatTimes = 3,\n                                ToNode = \"start\",\n                            },\n                        },\n                    },\n                    ElsePaths = new[]\n                    {\n                        new Incident.Inputs.EscalationPathPathIfElseElsePathArgs\n                        {\n                            Type = \"level\",\n                            Level = new Incident.Inputs.EscalationPathPathIfElseElsePathLevelArgs\n                            {\n                                Targets = new[]\n                                {\n                                    new Incident.Inputs.EscalationPathPathIfElseElsePathLevelTargetArgs\n                                    {\n                                        Type = \"schedule\",\n                                        Id = primaryOnCall.Id,\n                                        Urgency = \"low\",\n                                    },\n                                },\n                                TimeToAckSeconds = 300,\n                            },\n                        },\n                    },\n                },\n            },\n        },\n        WorkingHours = new[]\n        {\n            new Incident.Inputs.EscalationPathWorkingHourArgs\n            {\n                Id = \"UK\",\n                Name = \"UK\",\n                Timezone = \"Europe/London\",\n                WeekdayIntervals = new[]\n                {\n                    new Incident.Inputs.EscalationPathWorkingHourWeekdayIntervalArgs\n                    {\n                        Weekday = \"monday\",\n                        StartTime = \"09:00\",\n                        EndTime = \"17:00\",\n                    },\n                },\n            },\n        },\n        TeamIds = new[]\n        {\n            \"01FCNDV6P870EA6S7TK1DSYD00\",\n            \"01FCNDV6P870EA6S7TK1DSYD01\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/incident/v5/incident\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// This is the primary schedule that receives pages in working hours.\n\t\tprimaryOnCall, err := incident.NewSchedule(ctx, \"primary_on_call\", \u0026incident.ScheduleArgs{\n\t\t\tName:     pulumi.String(\"Primary\"),\n\t\t\tTimezone: pulumi.String(\"Europe/London\"),\n\t\t\tRotations: incident.ScheduleRotationArray{\n\t\t\t\t\u0026incident.ScheduleRotationArgs{\n\t\t\t\t\tId:   pulumi.String(\"primary\"),\n\t\t\t\t\tName: pulumi.String(\"Primary\"),\n\t\t\t\t\tVersions: incident.ScheduleRotationVersionArray{\n\t\t\t\t\t\t\u0026incident.ScheduleRotationVersionArgs{\n\t\t\t\t\t\t\tHandoverStartAt: pulumi.String(\"2024-05-01T12:00:00Z\"),\n\t\t\t\t\t\t\tUsers:           pulumi.StringArray{},\n\t\t\t\t\t\t\tLayers: incident.ScheduleRotationVersionLayerArray{\n\t\t\t\t\t\t\t\t\u0026incident.ScheduleRotationVersionLayerArgs{\n\t\t\t\t\t\t\t\t\tId:   pulumi.String(\"primary\"),\n\t\t\t\t\t\t\t\t\tName: pulumi.String(\"Primary\"),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tHandovers: incident.ScheduleRotationVersionHandoverArray{\n\t\t\t\t\t\t\t\t\u0026incident.ScheduleRotationVersionHandoverArgs{\n\t\t\t\t\t\t\t\t\tIntervalType: pulumi.String(\"daily\"),\n\t\t\t\t\t\t\t\t\tInterval:     pulumi.Float64(1),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// If in working hours, send high-urgency alerts. Otherwise use low-urgency.\n\t\t_, err = incident.NewEscalationPath(ctx, \"urgent_support\", \u0026incident.EscalationPathArgs{\n\t\t\tName: pulumi.String(\"Urgent support\"),\n\t\t\tPaths: incident.EscalationPathPathArray{\n\t\t\t\t\u0026incident.EscalationPathPathArgs{\n\t\t\t\t\tId:   pulumi.String(\"start\"),\n\t\t\t\t\tType: pulumi.String(\"if_else\"),\n\t\t\t\t\tIfElse: \u0026incident.EscalationPathPathIfElseArgs{\n\t\t\t\t\t\tConditions: incident.EscalationPathPathIfElseConditionArray{\n\t\t\t\t\t\t\t\u0026incident.EscalationPathPathIfElseConditionArgs{\n\t\t\t\t\t\t\t\tOperation:     pulumi.String(\"is_active\"),\n\t\t\t\t\t\t\t\tParamBindings: incident.EscalationPathPathIfElseConditionParamBindingArray{},\n\t\t\t\t\t\t\t\tSubject:       pulumi.String(\"escalation.working_hours[\\\"UK\\\"]\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\tThenPaths: incident.EscalationPathPathIfElseThenPathArray{\n\t\t\t\t\t\t\t\u0026incident.EscalationPathPathIfElseThenPathArgs{\n\t\t\t\t\t\t\t\tType: pulumi.String(\"level\"),\n\t\t\t\t\t\t\t\tLevel: \u0026incident.EscalationPathPathIfElseThenPathLevelArgs{\n\t\t\t\t\t\t\t\t\tTargets: incident.EscalationPathPathIfElseThenPathLevelTargetArray{\n\t\t\t\t\t\t\t\t\t\t\u0026incident.EscalationPathPathIfElseThenPathLevelTargetArgs{\n\t\t\t\t\t\t\t\t\t\t\tType:    pulumi.String(\"schedule\"),\n\t\t\t\t\t\t\t\t\t\t\tId:      primaryOnCall.ID(),\n\t\t\t\t\t\t\t\t\t\t\tUrgency: pulumi.String(\"high\"),\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tTimeToAckSeconds: pulumi.Float64(300),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\u0026incident.EscalationPathPathIfElseThenPathArgs{\n\t\t\t\t\t\t\t\tType: pulumi.String(\"repeat\"),\n\t\t\t\t\t\t\t\tRepeat: \u0026incident.EscalationPathPathIfElseThenPathRepeatArgs{\n\t\t\t\t\t\t\t\t\tRepeatTimes: pulumi.Float64(3),\n\t\t\t\t\t\t\t\t\tToNode:      pulumi.String(\"start\"),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\tElsePaths: incident.EscalationPathPathIfElseElsePathArray{\n\t\t\t\t\t\t\t\u0026incident.EscalationPathPathIfElseElsePathArgs{\n\t\t\t\t\t\t\t\tType: pulumi.String(\"level\"),\n\t\t\t\t\t\t\t\tLevel: \u0026incident.EscalationPathPathIfElseElsePathLevelArgs{\n\t\t\t\t\t\t\t\t\tTargets: incident.EscalationPathPathIfElseElsePathLevelTargetArray{\n\t\t\t\t\t\t\t\t\t\t\u0026incident.EscalationPathPathIfElseElsePathLevelTargetArgs{\n\t\t\t\t\t\t\t\t\t\t\tType:    pulumi.String(\"schedule\"),\n\t\t\t\t\t\t\t\t\t\t\tId:      primaryOnCall.ID(),\n\t\t\t\t\t\t\t\t\t\t\tUrgency: pulumi.String(\"low\"),\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tTimeToAckSeconds: pulumi.Float64(300),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tWorkingHours: incident.EscalationPathWorkingHourArray{\n\t\t\t\t\u0026incident.EscalationPathWorkingHourArgs{\n\t\t\t\t\tId:       pulumi.String(\"UK\"),\n\t\t\t\t\tName:     pulumi.String(\"UK\"),\n\t\t\t\t\tTimezone: pulumi.String(\"Europe/London\"),\n\t\t\t\t\tWeekdayIntervals: incident.EscalationPathWorkingHourWeekdayIntervalArray{\n\t\t\t\t\t\t\u0026incident.EscalationPathWorkingHourWeekdayIntervalArgs{\n\t\t\t\t\t\t\tWeekday:   pulumi.String(\"monday\"),\n\t\t\t\t\t\t\tStartTime: pulumi.String(\"09:00\"),\n\t\t\t\t\t\t\tEndTime:   pulumi.String(\"17:00\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tTeamIds: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"01FCNDV6P870EA6S7TK1DSYD00\"),\n\t\t\t\tpulumi.String(\"01FCNDV6P870EA6S7TK1DSYD01\"),\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.incident.Schedule;\nimport com.pulumi.incident.ScheduleArgs;\nimport com.pulumi.incident.inputs.ScheduleRotationArgs;\nimport com.pulumi.incident.EscalationPath;\nimport com.pulumi.incident.EscalationPathArgs;\nimport com.pulumi.incident.inputs.EscalationPathPathArgs;\nimport com.pulumi.incident.inputs.EscalationPathPathIfElseArgs;\nimport com.pulumi.incident.inputs.EscalationPathWorkingHourArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // This is the primary schedule that receives pages in working hours.\n        var primaryOnCall = new Schedule(\"primaryOnCall\", ScheduleArgs.builder()\n            .name(\"Primary\")\n            .timezone(\"Europe/London\")\n            .rotations(ScheduleRotationArgs.builder()\n                .id(\"primary\")\n                .name(\"Primary\")\n                .versions(ScheduleRotationVersionArgs.builder()\n                    .handoverStartAt(\"2024-05-01T12:00:00Z\")\n                    .users()\n                    .layers(ScheduleRotationVersionLayerArgs.builder()\n                        .id(\"primary\")\n                        .name(\"Primary\")\n                        .build())\n                    .handovers(ScheduleRotationVersionHandoverArgs.builder()\n                        .intervalType(\"daily\")\n                        .interval(1.0)\n                        .build())\n                    .build())\n                .build())\n            .build());\n\n        // If in working hours, send high-urgency alerts. Otherwise use low-urgency.\n        var urgentSupport = new EscalationPath(\"urgentSupport\", EscalationPathArgs.builder()\n            .name(\"Urgent support\")\n            .paths(EscalationPathPathArgs.builder()\n                .id(\"start\")\n                .type(\"if_else\")\n                .ifElse(EscalationPathPathIfElseArgs.builder()\n                    .conditions(EscalationPathPathIfElseConditionArgs.builder()\n                        .operation(\"is_active\")\n                        .paramBindings()\n                        .subject(\"escalation.working_hours[\\\"UK\\\"]\")\n                        .build())\n                    .thenPaths(                    \n                        EscalationPathPathIfElseThenPathArgs.builder()\n                            .type(\"level\")\n                            .level(EscalationPathPathIfElseThenPathLevelArgs.builder()\n                                .targets(EscalationPathPathIfElseThenPathLevelTargetArgs.builder()\n                                    .type(\"schedule\")\n                                    .id(primaryOnCall.id())\n                                    .urgency(\"high\")\n                                    .build())\n                                .timeToAckSeconds(300.0)\n                                .build())\n                            .build(),\n                        EscalationPathPathIfElseThenPathArgs.builder()\n                            .type(\"repeat\")\n                            .repeat(EscalationPathPathIfElseThenPathRepeatArgs.builder()\n                                .repeatTimes(3.0)\n                                .toNode(\"start\")\n                                .build())\n                            .build())\n                    .elsePaths(EscalationPathPathIfElseElsePathArgs.builder()\n                        .type(\"level\")\n                        .level(EscalationPathPathIfElseElsePathLevelArgs.builder()\n                            .targets(EscalationPathPathIfElseElsePathLevelTargetArgs.builder()\n                                .type(\"schedule\")\n                                .id(primaryOnCall.id())\n                                .urgency(\"low\")\n                                .build())\n                            .timeToAckSeconds(300.0)\n                            .build())\n                        .build())\n                    .build())\n                .build())\n            .workingHours(EscalationPathWorkingHourArgs.builder()\n                .id(\"UK\")\n                .name(\"UK\")\n                .timezone(\"Europe/London\")\n                .weekdayIntervals(EscalationPathWorkingHourWeekdayIntervalArgs.builder()\n                    .weekday(\"monday\")\n                    .startTime(\"09:00\")\n                    .endTime(\"17:00\")\n                    .build())\n                .build())\n            .teamIds(            \n                \"01FCNDV6P870EA6S7TK1DSYD00\",\n                \"01FCNDV6P870EA6S7TK1DSYD01\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # This is the primary schedule that receives pages in working hours.\n  primaryOnCall:\n    type: incident:Schedule\n    name: primary_on_call\n    properties:\n      name: Primary\n      timezone: Europe/London\n      rotations:\n        - id: primary\n          name: Primary\n          versions:\n            - handoverStartAt: 2024-05-01T12:00:00Z\n              users: []\n              layers:\n                - id: primary\n                  name: Primary\n              handovers:\n                - intervalType: daily\n                  interval: 1\n  # If in working hours, send high-urgency alerts. Otherwise use low-urgency.\n  urgentSupport:\n    type: incident:EscalationPath\n    name: urgent_support\n    properties:\n      name: Urgent support\n      paths:\n        - id: start\n          type: if_else\n          ifElse:\n            conditions:\n              - operation: is_active\n                paramBindings: []\n                subject: escalation.working_hours[\"UK\"]\n            thenPaths:\n              - type: level\n                level:\n                  targets:\n                    - type: schedule\n                      id: ${primaryOnCall.id}\n                      urgency: high\n                  timeToAckSeconds: 300\n              - type: repeat\n                repeat:\n                  repeatTimes: 3\n                  toNode: start\n            elsePaths:\n              - type: level\n                level:\n                  targets:\n                    - type: schedule\n                      id: ${primaryOnCall.id}\n                      urgency: low\n                  timeToAckSeconds: 300\n      workingHours:\n        - id: UK\n          name: UK\n          timezone: Europe/London\n          weekdayIntervals:\n            - weekday: monday\n              startTime: 09:00\n              endTime: 17:00\n      teamIds:\n        - 01FCNDV6P870EA6S7TK1DSYD00\n        - 01FCNDV6P870EA6S7TK1DSYD01\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nThe `pulumi import` command can be used, for example:\n\n#!/bin/bash\n\nImport an escalation path using its ID\n\nReplace the ID with a real ID from your incident.io organization\n\n```sh\n$ pulumi import incident:index/escalationPath:EscalationPath example 01ABC123DEF456GHI789JKL\n```\n\n","properties":{"name":{"type":"string","description":"The name of this escalation path, for the user's reference."},"paths":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPath:EscalationPathPath"},"description":"The nodes that form the levels and branches of this escalation path.\n\n--\u003e**Note** Although the \u003cspan pulumi-lang-nodejs=\"`ifElse`\" pulumi-lang-dotnet=\"`IfElse`\" pulumi-lang-go=\"`ifElse`\" pulumi-lang-python=\"`if_else`\" pulumi-lang-yaml=\"`ifElse`\" pulumi-lang-java=\"`ifElse`\"\u003e`if_else`\u003c/span\u003e block is recursive, currently a maximum of 3 levels are supported. Attempting to configure more than 3 levels of nesting will result in a schema error."},"teamIds":{"type":"array","items":{"type":"string"},"description":"IDs of the teams that own this escalation path. This will automatically sync escalation paths with the right teams in Catalog. If you have an escalation paths attribute on your Teams, this attribute is required."},"workingHours":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathWorkingHour:EscalationPathWorkingHour"},"description":"The working hours for this escalation path."}},"type":"object","required":["name","paths"],"inputProperties":{"name":{"type":"string","description":"The name of this escalation path, for the user's reference."},"paths":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPath:EscalationPathPath"},"description":"The nodes that form the levels and branches of this escalation path.\n\n--\u003e**Note** Although the \u003cspan pulumi-lang-nodejs=\"`ifElse`\" pulumi-lang-dotnet=\"`IfElse`\" pulumi-lang-go=\"`ifElse`\" pulumi-lang-python=\"`if_else`\" pulumi-lang-yaml=\"`ifElse`\" pulumi-lang-java=\"`ifElse`\"\u003e`if_else`\u003c/span\u003e block is recursive, currently a maximum of 3 levels are supported. Attempting to configure more than 3 levels of nesting will result in a schema error."},"teamIds":{"type":"array","items":{"type":"string"},"description":"IDs of the teams that own this escalation path. This will automatically sync escalation paths with the right teams in Catalog. If you have an escalation paths attribute on your Teams, this attribute is required."},"workingHours":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathWorkingHour:EscalationPathWorkingHour"},"description":"The working hours for this escalation path."}},"requiredInputs":["paths"],"stateInputs":{"description":"Input properties used for looking up and filtering EscalationPath resources.\n","properties":{"name":{"type":"string","description":"The name of this escalation path, for the user's reference."},"paths":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathPath:EscalationPathPath"},"description":"The nodes that form the levels and branches of this escalation path.\n\n--\u003e**Note** Although the \u003cspan pulumi-lang-nodejs=\"`ifElse`\" pulumi-lang-dotnet=\"`IfElse`\" pulumi-lang-go=\"`ifElse`\" pulumi-lang-python=\"`if_else`\" pulumi-lang-yaml=\"`ifElse`\" pulumi-lang-java=\"`ifElse`\"\u003e`if_else`\u003c/span\u003e block is recursive, currently a maximum of 3 levels are supported. Attempting to configure more than 3 levels of nesting will result in a schema error."},"teamIds":{"type":"array","items":{"type":"string"},"description":"IDs of the teams that own this escalation path. This will automatically sync escalation paths with the right teams in Catalog. If you have an escalation paths attribute on your Teams, this attribute is required."},"workingHours":{"type":"array","items":{"$ref":"#/types/incident:index%2FEscalationPathWorkingHour:EscalationPathWorkingHour"},"description":"The working hours for this escalation path."}},"type":"object"}},"incident:index/incidentRole:IncidentRole":{"description":"Manage incident roles.\n\nDuring an incident, you can assign responders to one of the incident roles that are\nconfigured in your organisation settings.\n\nEvery organisation will have a special 'lead' role, which signifies the incident lead or\ncommander. This role cannot be deleted, but can be renamed in the incident.io dashboard.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as incident from \"@pulumi/incident\";\n\n// Create a communications lead that is not required.\nconst comms = new incident.IncidentRole(\"comms\", {\n    name: \"Communications Lead\",\n    description: \"Responsible for communications on behalf of the response team.\",\n    instructions: \"Manage internal and external communications on behalf of the response team.\",\n    shortform: \"comms\",\n});\n```\n```python\nimport pulumi\nimport pulumi_incident as incident\n\n# Create a communications lead that is not required.\ncomms = incident.IncidentRole(\"comms\",\n    name=\"Communications Lead\",\n    description=\"Responsible for communications on behalf of the response team.\",\n    instructions=\"Manage internal and external communications on behalf of the response team.\",\n    shortform=\"comms\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Incident = Pulumi.Incident;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Create a communications lead that is not required.\n    var comms = new Incident.IncidentRole(\"comms\", new()\n    {\n        Name = \"Communications Lead\",\n        Description = \"Responsible for communications on behalf of the response team.\",\n        Instructions = \"Manage internal and external communications on behalf of the response team.\",\n        Shortform = \"comms\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/incident/v5/incident\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Create a communications lead that is not required.\n\t\t_, err := incident.NewIncidentRole(ctx, \"comms\", \u0026incident.IncidentRoleArgs{\n\t\t\tName:         pulumi.String(\"Communications Lead\"),\n\t\t\tDescription:  pulumi.String(\"Responsible for communications on behalf of the response team.\"),\n\t\t\tInstructions: pulumi.String(\"Manage internal and external communications on behalf of the response team.\"),\n\t\t\tShortform:    pulumi.String(\"comms\"),\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.incident.IncidentRole;\nimport com.pulumi.incident.IncidentRoleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Create a communications lead that is not required.\n        var comms = new IncidentRole(\"comms\", IncidentRoleArgs.builder()\n            .name(\"Communications Lead\")\n            .description(\"Responsible for communications on behalf of the response team.\")\n            .instructions(\"Manage internal and external communications on behalf of the response team.\")\n            .shortform(\"comms\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create a communications lead that is not required.\n  comms:\n    type: incident:IncidentRole\n    properties:\n      name: Communications Lead\n      description: Responsible for communications on behalf of the response team.\n      instructions: Manage internal and external communications on behalf of the response team.\n      shortform: comms\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nThe `pulumi import` command can be used, for example:\n\n#!/bin/bash\n\nImport an incident role using its ID\n\nReplace the ID with a real ID from your incident.io organization\n\n```sh\n$ pulumi import incident:index/incidentRole:IncidentRole example 01ABC123DEF456GHI789JKL\n```\n\n","properties":{"description":{"type":"string","description":"Describes the purpose of the role\n"},"instructions":{"type":"string","description":"Provided to whoever is nominated for the role. Note that this will be empty for the 'reporter' role.\n"},"name":{"type":"string","description":"Human readable name of the incident role\n"},"shortform":{"type":"string","description":"Short human readable name for Slack. Note that this will be empty for the 'reporter' role.\n"}},"type":"object","required":["description","instructions","name","shortform"],"inputProperties":{"description":{"type":"string","description":"Describes the purpose of the role\n"},"instructions":{"type":"string","description":"Provided to whoever is nominated for the role. Note that this will be empty for the 'reporter' role.\n"},"name":{"type":"string","description":"Human readable name of the incident role\n"},"shortform":{"type":"string","description":"Short human readable name for Slack. Note that this will be empty for the 'reporter' role.\n"}},"requiredInputs":["description","instructions","shortform"],"stateInputs":{"description":"Input properties used for looking up and filtering IncidentRole resources.\n","properties":{"description":{"type":"string","description":"Describes the purpose of the role\n"},"instructions":{"type":"string","description":"Provided to whoever is nominated for the role. Note that this will be empty for the 'reporter' role.\n"},"name":{"type":"string","description":"Human readable name of the incident role\n"},"shortform":{"type":"string","description":"Short human readable name for Slack. Note that this will be empty for the 'reporter' role.\n"}},"type":"object"}},"incident:index/schedule:Schedule":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as incident from \"@pulumi/incident\";\n\nconst rory = incident.getUser({\n    id: \"01HPFH8T92MPGSQS5C1SPAF4V0\",\n});\nconst martha = incident.getUser({\n    slackUserId: \"U01HJ1J2Z6Z\",\n});\n// This allows lookups by email, slack user ID, or user ID\nconst roryb = incident.getUser({\n    email: \"rory@incident.io\",\n});\n// This is exportable from the incident.io dashboard as a Terraform configuration\nconst primaryOnCall = new incident.Schedule(\"primary_on_call\", {\n    name: \"Primary On-call\",\n    timezone: \"Europe/London\",\n    rotations: [{\n        id: \"testing-terraform\",\n        name: \"Testing Terraform\",\n        versions: [\n            {\n                handoverStartAt: \"2024-05-01T12:54:13Z\",\n                users: [martha.then(martha =\u003e martha.id)],\n                layers: [{\n                    id: \"primary\",\n                    name: \"Primary\",\n                }],\n                handovers: [{\n                    intervalType: \"daily\",\n                    interval: 1,\n                }],\n            },\n            {\n                effectiveFrom: \"2024-05-14T12:54:13Z\",\n                handoverStartAt: \"2024-05-01T12:54:13Z\",\n                users: [\n                    martha.then(martha =\u003e martha.id),\n                    rory.then(rory =\u003e rory.id),\n                ],\n                layers: [{\n                    id: \"primary\",\n                    name: \"Primary\",\n                }],\n                handovers: [{\n                    intervalType: \"weekly\",\n                    interval: 1,\n                }],\n            },\n        ],\n    }],\n    holidaysPublicConfig: {\n        countryCodes: [\n            \"GB\",\n            \"FR\",\n        ],\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_incident as incident\n\nrory = incident.get_user(id=\"01HPFH8T92MPGSQS5C1SPAF4V0\")\nmartha = incident.get_user(slack_user_id=\"U01HJ1J2Z6Z\")\n# This allows lookups by email, slack user ID, or user ID\nroryb = incident.get_user(email=\"rory@incident.io\")\n# This is exportable from the incident.io dashboard as a Terraform configuration\nprimary_on_call = incident.Schedule(\"primary_on_call\",\n    name=\"Primary On-call\",\n    timezone=\"Europe/London\",\n    rotations=[{\n        \"id\": \"testing-terraform\",\n        \"name\": \"Testing Terraform\",\n        \"versions\": [\n            {\n                \"handover_start_at\": \"2024-05-01T12:54:13Z\",\n                \"users\": [martha.id],\n                \"layers\": [{\n                    \"id\": \"primary\",\n                    \"name\": \"Primary\",\n                }],\n                \"handovers\": [{\n                    \"interval_type\": \"daily\",\n                    \"interval\": 1,\n                }],\n            },\n            {\n                \"effective_from\": \"2024-05-14T12:54:13Z\",\n                \"handover_start_at\": \"2024-05-01T12:54:13Z\",\n                \"users\": [\n                    martha.id,\n                    rory.id,\n                ],\n                \"layers\": [{\n                    \"id\": \"primary\",\n                    \"name\": \"Primary\",\n                }],\n                \"handovers\": [{\n                    \"interval_type\": \"weekly\",\n                    \"interval\": 1,\n                }],\n            },\n        ],\n    }],\n    holidays_public_config={\n        \"country_codes\": [\n            \"GB\",\n            \"FR\",\n        ],\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Incident = Pulumi.Incident;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var rory = Incident.GetUser.Invoke(new()\n    {\n        Id = \"01HPFH8T92MPGSQS5C1SPAF4V0\",\n    });\n\n    var martha = Incident.GetUser.Invoke(new()\n    {\n        SlackUserId = \"U01HJ1J2Z6Z\",\n    });\n\n    // This allows lookups by email, slack user ID, or user ID\n    var roryb = Incident.GetUser.Invoke(new()\n    {\n        Email = \"rory@incident.io\",\n    });\n\n    // This is exportable from the incident.io dashboard as a Terraform configuration\n    var primaryOnCall = new Incident.Schedule(\"primary_on_call\", new()\n    {\n        Name = \"Primary On-call\",\n        Timezone = \"Europe/London\",\n        Rotations = new[]\n        {\n            new Incident.Inputs.ScheduleRotationArgs\n            {\n                Id = \"testing-terraform\",\n                Name = \"Testing Terraform\",\n                Versions = new[]\n                {\n                    new Incident.Inputs.ScheduleRotationVersionArgs\n                    {\n                        HandoverStartAt = \"2024-05-01T12:54:13Z\",\n                        Users = new[]\n                        {\n                            martha.Apply(getUserResult =\u003e getUserResult.Id),\n                        },\n                        Layers = new[]\n                        {\n                            new Incident.Inputs.ScheduleRotationVersionLayerArgs\n                            {\n                                Id = \"primary\",\n                                Name = \"Primary\",\n                            },\n                        },\n                        Handovers = new[]\n                        {\n                            new Incident.Inputs.ScheduleRotationVersionHandoverArgs\n                            {\n                                IntervalType = \"daily\",\n                                Interval = 1,\n                            },\n                        },\n                    },\n                    new Incident.Inputs.ScheduleRotationVersionArgs\n                    {\n                        EffectiveFrom = \"2024-05-14T12:54:13Z\",\n                        HandoverStartAt = \"2024-05-01T12:54:13Z\",\n                        Users = new[]\n                        {\n                            martha.Apply(getUserResult =\u003e getUserResult.Id),\n                            rory.Apply(getUserResult =\u003e getUserResult.Id),\n                        },\n                        Layers = new[]\n                        {\n                            new Incident.Inputs.ScheduleRotationVersionLayerArgs\n                            {\n                                Id = \"primary\",\n                                Name = \"Primary\",\n                            },\n                        },\n                        Handovers = new[]\n                        {\n                            new Incident.Inputs.ScheduleRotationVersionHandoverArgs\n                            {\n                                IntervalType = \"weekly\",\n                                Interval = 1,\n                            },\n                        },\n                    },\n                },\n            },\n        },\n        HolidaysPublicConfig = new Incident.Inputs.ScheduleHolidaysPublicConfigArgs\n        {\n            CountryCodes = new[]\n            {\n                \"GB\",\n                \"FR\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/incident/v5/incident\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\trory, err := incident.GetUser(ctx, \u0026incident.GetUserArgs{\n\t\t\tId: pulumi.StringRef(\"01HPFH8T92MPGSQS5C1SPAF4V0\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmartha, err := incident.GetUser(ctx, \u0026incident.GetUserArgs{\n\t\t\tSlackUserId: pulumi.StringRef(\"U01HJ1J2Z6Z\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// This allows lookups by email, slack user ID, or user ID\n\t\t_, err = incident.GetUser(ctx, \u0026incident.GetUserArgs{\n\t\t\tEmail: pulumi.StringRef(\"rory@incident.io\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// This is exportable from the incident.io dashboard as a Terraform configuration\n\t\t_, err = incident.NewSchedule(ctx, \"primary_on_call\", \u0026incident.ScheduleArgs{\n\t\t\tName:     pulumi.String(\"Primary On-call\"),\n\t\t\tTimezone: pulumi.String(\"Europe/London\"),\n\t\t\tRotations: incident.ScheduleRotationArray{\n\t\t\t\t\u0026incident.ScheduleRotationArgs{\n\t\t\t\t\tId:   pulumi.String(\"testing-terraform\"),\n\t\t\t\t\tName: pulumi.String(\"Testing Terraform\"),\n\t\t\t\t\tVersions: incident.ScheduleRotationVersionArray{\n\t\t\t\t\t\t\u0026incident.ScheduleRotationVersionArgs{\n\t\t\t\t\t\t\tHandoverStartAt: pulumi.String(\"2024-05-01T12:54:13Z\"),\n\t\t\t\t\t\t\tUsers: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(martha.Id),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tLayers: incident.ScheduleRotationVersionLayerArray{\n\t\t\t\t\t\t\t\t\u0026incident.ScheduleRotationVersionLayerArgs{\n\t\t\t\t\t\t\t\t\tId:   pulumi.String(\"primary\"),\n\t\t\t\t\t\t\t\t\tName: pulumi.String(\"Primary\"),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tHandovers: incident.ScheduleRotationVersionHandoverArray{\n\t\t\t\t\t\t\t\t\u0026incident.ScheduleRotationVersionHandoverArgs{\n\t\t\t\t\t\t\t\t\tIntervalType: pulumi.String(\"daily\"),\n\t\t\t\t\t\t\t\t\tInterval:     pulumi.Float64(1),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026incident.ScheduleRotationVersionArgs{\n\t\t\t\t\t\t\tEffectiveFrom:   pulumi.String(\"2024-05-14T12:54:13Z\"),\n\t\t\t\t\t\t\tHandoverStartAt: pulumi.String(\"2024-05-01T12:54:13Z\"),\n\t\t\t\t\t\t\tUsers: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(martha.Id),\n\t\t\t\t\t\t\t\tpulumi.String(rory.Id),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tLayers: incident.ScheduleRotationVersionLayerArray{\n\t\t\t\t\t\t\t\t\u0026incident.ScheduleRotationVersionLayerArgs{\n\t\t\t\t\t\t\t\t\tId:   pulumi.String(\"primary\"),\n\t\t\t\t\t\t\t\t\tName: pulumi.String(\"Primary\"),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tHandovers: incident.ScheduleRotationVersionHandoverArray{\n\t\t\t\t\t\t\t\t\u0026incident.ScheduleRotationVersionHandoverArgs{\n\t\t\t\t\t\t\t\t\tIntervalType: pulumi.String(\"weekly\"),\n\t\t\t\t\t\t\t\t\tInterval:     pulumi.Float64(1),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tHolidaysPublicConfig: \u0026incident.ScheduleHolidaysPublicConfigArgs{\n\t\t\t\tCountryCodes: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"GB\"),\n\t\t\t\t\tpulumi.String(\"FR\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.incident.IncidentFunctions;\nimport com.pulumi.incident.inputs.GetUserArgs;\nimport com.pulumi.incident.Schedule;\nimport com.pulumi.incident.ScheduleArgs;\nimport com.pulumi.incident.inputs.ScheduleRotationArgs;\nimport com.pulumi.incident.inputs.ScheduleHolidaysPublicConfigArgs;\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 rory = IncidentFunctions.getUser(GetUserArgs.builder()\n            .id(\"01HPFH8T92MPGSQS5C1SPAF4V0\")\n            .build());\n\n        final var martha = IncidentFunctions.getUser(GetUserArgs.builder()\n            .slackUserId(\"U01HJ1J2Z6Z\")\n            .build());\n\n        // This allows lookups by email, slack user ID, or user ID\n        final var roryb = IncidentFunctions.getUser(GetUserArgs.builder()\n            .email(\"rory@incident.io\")\n            .build());\n\n        // This is exportable from the incident.io dashboard as a Terraform configuration\n        var primaryOnCall = new Schedule(\"primaryOnCall\", ScheduleArgs.builder()\n            .name(\"Primary On-call\")\n            .timezone(\"Europe/London\")\n            .rotations(ScheduleRotationArgs.builder()\n                .id(\"testing-terraform\")\n                .name(\"Testing Terraform\")\n                .versions(                \n                    ScheduleRotationVersionArgs.builder()\n                        .handoverStartAt(\"2024-05-01T12:54:13Z\")\n                        .users(martha.id())\n                        .layers(ScheduleRotationVersionLayerArgs.builder()\n                            .id(\"primary\")\n                            .name(\"Primary\")\n                            .build())\n                        .handovers(ScheduleRotationVersionHandoverArgs.builder()\n                            .intervalType(\"daily\")\n                            .interval(1.0)\n                            .build())\n                        .build(),\n                    ScheduleRotationVersionArgs.builder()\n                        .effectiveFrom(\"2024-05-14T12:54:13Z\")\n                        .handoverStartAt(\"2024-05-01T12:54:13Z\")\n                        .users(                        \n                            martha.id(),\n                            rory.id())\n                        .layers(ScheduleRotationVersionLayerArgs.builder()\n                            .id(\"primary\")\n                            .name(\"Primary\")\n                            .build())\n                        .handovers(ScheduleRotationVersionHandoverArgs.builder()\n                            .intervalType(\"weekly\")\n                            .interval(1.0)\n                            .build())\n                        .build())\n                .build())\n            .holidaysPublicConfig(ScheduleHolidaysPublicConfigArgs.builder()\n                .countryCodes(                \n                    \"GB\",\n                    \"FR\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # This is exportable from the incident.io dashboard as a Terraform configuration\n  primaryOnCall:\n    type: incident:Schedule\n    name: primary_on_call\n    properties:\n      name: Primary On-call\n      timezone: Europe/London\n      rotations:\n        - id: testing-terraform\n          name: Testing Terraform\n          versions:\n            - handoverStartAt: 2024-05-01T12:54:13Z\n              users:\n                - ${martha.id}\n              layers:\n                - id: primary\n                  name: Primary\n              handovers:\n                - intervalType: daily\n                  interval: 1\n            - effectiveFrom: 2024-05-14T12:54:13Z\n              handoverStartAt: 2024-05-01T12:54:13Z\n              users:\n                - ${martha.id}\n                - ${rory.id}\n              layers:\n                - id: primary\n                  name: Primary\n              handovers:\n                - intervalType: weekly\n                  interval: 1\n      holidaysPublicConfig:\n        countryCodes:\n          - GB\n          - FR\nvariables:\n  rory:\n    fn::invoke:\n      function: incident:getUser\n      arguments:\n        id: 01HPFH8T92MPGSQS5C1SPAF4V0\n  martha:\n    fn::invoke:\n      function: incident:getUser\n      arguments:\n        slackUserId: U01HJ1J2Z6Z\n  # This allows lookups by email, slack user ID, or user ID\n  roryb:\n    fn::invoke:\n      function: incident:getUser\n      arguments:\n        email: rory@incident.io\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nThe `pulumi import` command can be used, for example:\n\n#!/bin/bash\n\nImport a schedule using its ID\n\nReplace the ID with a real ID from your incident.io organization\n\n```sh\n$ pulumi import incident:index/schedule:Schedule example 01ABC123DEF456GHI789JKL\n```\n\n","properties":{"holidaysPublicConfig":{"$ref":"#/types/incident:index%2FScheduleHolidaysPublicConfig:ScheduleHolidaysPublicConfig"},"name":{"type":"string","description":"Human readable name synced from external provider\n"},"rotations":{"type":"array","items":{"$ref":"#/types/incident:index%2FScheduleRotation:ScheduleRotation"}},"teamIds":{"type":"array","items":{"type":"string"},"description":"IDs of teams that own this schedule\n"},"timezone":{"type":"string"}},"type":"object","required":["name","rotations","timezone"],"inputProperties":{"holidaysPublicConfig":{"$ref":"#/types/incident:index%2FScheduleHolidaysPublicConfig:ScheduleHolidaysPublicConfig"},"name":{"type":"string","description":"Human readable name synced from external provider\n"},"rotations":{"type":"array","items":{"$ref":"#/types/incident:index%2FScheduleRotation:ScheduleRotation"}},"teamIds":{"type":"array","items":{"type":"string"},"description":"IDs of teams that own this schedule\n"},"timezone":{"type":"string"}},"requiredInputs":["rotations","timezone"],"stateInputs":{"description":"Input properties used for looking up and filtering Schedule resources.\n","properties":{"holidaysPublicConfig":{"$ref":"#/types/incident:index%2FScheduleHolidaysPublicConfig:ScheduleHolidaysPublicConfig"},"name":{"type":"string","description":"Human readable name synced from external provider\n"},"rotations":{"type":"array","items":{"$ref":"#/types/incident:index%2FScheduleRotation:ScheduleRotation"}},"teamIds":{"type":"array","items":{"type":"string"},"description":"IDs of teams that own this schedule\n"},"timezone":{"type":"string"}},"type":"object"}},"incident:index/severity:Severity":{"description":"Manage incident severities.\n\nEach incident has a severity, picked from one of the severities configured in your\norganisations settings.\n\nSeverities help categorise incidents, and communicate urgency/impact. You can use\nseverities when filtering incidents in the dashboard, and in workflows and announcement\nrules.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as incident from \"@pulumi/incident\";\n\n// Create a Major severity with a default assigned rank.\nconst trivial = new incident.Severity(\"trivial\", {\n    name: \"Trivial\",\n    description: \"Issues causing no impact. No Immediate response is required.\",\n});\n```\n```python\nimport pulumi\nimport pulumi_incident as incident\n\n# Create a Major severity with a default assigned rank.\ntrivial = incident.Severity(\"trivial\",\n    name=\"Trivial\",\n    description=\"Issues causing no impact. No Immediate response is required.\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Incident = Pulumi.Incident;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Create a Major severity with a default assigned rank.\n    var trivial = new Incident.Severity(\"trivial\", new()\n    {\n        Name = \"Trivial\",\n        Description = \"Issues causing no impact. No Immediate response is required.\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/incident/v5/incident\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Create a Major severity with a default assigned rank.\n\t\t_, err := incident.NewSeverity(ctx, \"trivial\", \u0026incident.SeverityArgs{\n\t\t\tName:        pulumi.String(\"Trivial\"),\n\t\t\tDescription: pulumi.String(\"Issues causing no impact. No Immediate response is required.\"),\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.incident.Severity;\nimport com.pulumi.incident.SeverityArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Create a Major severity with a default assigned rank.\n        var trivial = new Severity(\"trivial\", SeverityArgs.builder()\n            .name(\"Trivial\")\n            .description(\"Issues causing no impact. No Immediate response is required.\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create a Major severity with a default assigned rank.\n  trivial:\n    type: incident:Severity\n    properties:\n      name: Trivial\n      description: Issues causing no impact. No Immediate response is required.\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nThe `pulumi import` command can be used, for example:\n\n#!/bin/bash\n\nImport a severity using its ID\n\nReplace the ID with a real ID from your incident.io organization\n\n```sh\n$ pulumi import incident:index/severity:Severity example 01ABC123DEF456GHI789JKL\n```\n\n","properties":{"description":{"type":"string","description":"Description of the severity\n"},"name":{"type":"string","description":"Human readable name of the severity\n"},"rank":{"type":"number","description":"Rank to help sort severities (lower numbers are less severe)\n"}},"type":"object","required":["description","name","rank"],"inputProperties":{"description":{"type":"string","description":"Description of the severity\n"},"name":{"type":"string","description":"Human readable name of the severity\n"},"rank":{"type":"number","description":"Rank to help sort severities (lower numbers are less severe)\n"}},"requiredInputs":["description"],"stateInputs":{"description":"Input properties used for looking up and filtering Severity resources.\n","properties":{"description":{"type":"string","description":"Description of the severity\n"},"name":{"type":"string","description":"Human readable name of the severity\n"},"rank":{"type":"number","description":"Rank to help sort severities (lower numbers are less severe)\n"}},"type":"object"}},"incident:index/status:Status":{"description":"Manage incident statuses.\n\nEach incident has a status, picked from one of the statuses configured in your\norganisations settings.\n\nStatuses help communicate where an incident is in its lifecycle. You can use\nstatuses when filtering incidents in the dashboard, and in workflows and announcement\nrules.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as incident from \"@pulumi/incident\";\n\n// Create an additional closed status called \"Clean-up\".\nconst cleanUp = new incident.Status(\"clean_up\", {\n    name: \"Clean-up\",\n    description: \"Not yet fully finished, but isn't a live incident anymore.\",\n    category: \"closed\",\n});\n```\n```python\nimport pulumi\nimport pulumi_incident as incident\n\n# Create an additional closed status called \"Clean-up\".\nclean_up = incident.Status(\"clean_up\",\n    name=\"Clean-up\",\n    description=\"Not yet fully finished, but isn't a live incident anymore.\",\n    category=\"closed\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Incident = Pulumi.Incident;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Create an additional closed status called \"Clean-up\".\n    var cleanUp = new Incident.Status(\"clean_up\", new()\n    {\n        Name = \"Clean-up\",\n        Description = \"Not yet fully finished, but isn't a live incident anymore.\",\n        Category = \"closed\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/incident/v5/incident\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Create an additional closed status called \"Clean-up\".\n\t\t_, err := incident.NewStatus(ctx, \"clean_up\", \u0026incident.StatusArgs{\n\t\t\tName:        pulumi.String(\"Clean-up\"),\n\t\t\tDescription: pulumi.String(\"Not yet fully finished, but isn't a live incident anymore.\"),\n\t\t\tCategory:    pulumi.String(\"closed\"),\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.incident.Status;\nimport com.pulumi.incident.StatusArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Create an additional closed status called \"Clean-up\".\n        var cleanUp = new Status(\"cleanUp\", StatusArgs.builder()\n            .name(\"Clean-up\")\n            .description(\"Not yet fully finished, but isn't a live incident anymore.\")\n            .category(\"closed\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an additional closed status called \"Clean-up\".\n  cleanUp:\n    type: incident:Status\n    name: clean_up\n    properties:\n      name: Clean-up\n      description: Not yet fully finished, but isn't a live incident anymore.\n      category: closed\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nThe `pulumi import` command can be used, for example:\n\n#!/bin/bash\n\nImport a status using its ID\n\nReplace the ID with a real ID from your incident.io organization\n\n```sh\n$ pulumi import incident:index/status:Status example 01ABC123DEF456GHI789JKL\n```\n\n","properties":{"category":{"type":"string","description":"What category of status it is. All statuses apart from live (renamed in the app to Active) and learning (renamed in the app to Post-incident) are managed by incident.io and cannot be configured. Possible values are: \u003cspan pulumi-lang-nodejs=\"`triage`\" pulumi-lang-dotnet=\"`Triage`\" pulumi-lang-go=\"`triage`\" pulumi-lang-python=\"`triage`\" pulumi-lang-yaml=\"`triage`\" pulumi-lang-java=\"`triage`\"\u003e`triage`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`declined`\" pulumi-lang-dotnet=\"`Declined`\" pulumi-lang-go=\"`declined`\" pulumi-lang-python=\"`declined`\" pulumi-lang-yaml=\"`declined`\" pulumi-lang-java=\"`declined`\"\u003e`declined`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`merged`\" pulumi-lang-dotnet=\"`Merged`\" pulumi-lang-go=\"`merged`\" pulumi-lang-python=\"`merged`\" pulumi-lang-yaml=\"`merged`\" pulumi-lang-java=\"`merged`\"\u003e`merged`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`canceled`\" pulumi-lang-dotnet=\"`Canceled`\" pulumi-lang-go=\"`canceled`\" pulumi-lang-python=\"`canceled`\" pulumi-lang-yaml=\"`canceled`\" pulumi-lang-java=\"`canceled`\"\u003e`canceled`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`live`\" pulumi-lang-dotnet=\"`Live`\" pulumi-lang-go=\"`live`\" pulumi-lang-python=\"`live`\" pulumi-lang-yaml=\"`live`\" pulumi-lang-java=\"`live`\"\u003e`live`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`learning`\" pulumi-lang-dotnet=\"`Learning`\" pulumi-lang-go=\"`learning`\" pulumi-lang-python=\"`learning`\" pulumi-lang-yaml=\"`learning`\" pulumi-lang-java=\"`learning`\"\u003e`learning`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`closed`\" pulumi-lang-dotnet=\"`Closed`\" pulumi-lang-go=\"`closed`\" pulumi-lang-python=\"`closed`\" pulumi-lang-yaml=\"`closed`\" pulumi-lang-java=\"`closed`\"\u003e`closed`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`paused`\" pulumi-lang-dotnet=\"`Paused`\" pulumi-lang-go=\"`paused`\" pulumi-lang-python=\"`paused`\" pulumi-lang-yaml=\"`paused`\" pulumi-lang-java=\"`paused`\"\u003e`paused`\u003c/span\u003e.\n"},"description":{"type":"string","description":"Rich text description of the incident status\n"},"name":{"type":"string","description":"Unique name of this status\n"}},"type":"object","required":["category","description","name"],"inputProperties":{"category":{"type":"string","description":"What category of status it is. All statuses apart from live (renamed in the app to Active) and learning (renamed in the app to Post-incident) are managed by incident.io and cannot be configured. Possible values are: \u003cspan pulumi-lang-nodejs=\"`triage`\" pulumi-lang-dotnet=\"`Triage`\" pulumi-lang-go=\"`triage`\" pulumi-lang-python=\"`triage`\" pulumi-lang-yaml=\"`triage`\" pulumi-lang-java=\"`triage`\"\u003e`triage`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`declined`\" pulumi-lang-dotnet=\"`Declined`\" pulumi-lang-go=\"`declined`\" pulumi-lang-python=\"`declined`\" pulumi-lang-yaml=\"`declined`\" pulumi-lang-java=\"`declined`\"\u003e`declined`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`merged`\" pulumi-lang-dotnet=\"`Merged`\" pulumi-lang-go=\"`merged`\" pulumi-lang-python=\"`merged`\" pulumi-lang-yaml=\"`merged`\" pulumi-lang-java=\"`merged`\"\u003e`merged`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`canceled`\" pulumi-lang-dotnet=\"`Canceled`\" pulumi-lang-go=\"`canceled`\" pulumi-lang-python=\"`canceled`\" pulumi-lang-yaml=\"`canceled`\" pulumi-lang-java=\"`canceled`\"\u003e`canceled`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`live`\" pulumi-lang-dotnet=\"`Live`\" pulumi-lang-go=\"`live`\" pulumi-lang-python=\"`live`\" pulumi-lang-yaml=\"`live`\" pulumi-lang-java=\"`live`\"\u003e`live`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`learning`\" pulumi-lang-dotnet=\"`Learning`\" pulumi-lang-go=\"`learning`\" pulumi-lang-python=\"`learning`\" pulumi-lang-yaml=\"`learning`\" pulumi-lang-java=\"`learning`\"\u003e`learning`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`closed`\" pulumi-lang-dotnet=\"`Closed`\" pulumi-lang-go=\"`closed`\" pulumi-lang-python=\"`closed`\" pulumi-lang-yaml=\"`closed`\" pulumi-lang-java=\"`closed`\"\u003e`closed`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`paused`\" pulumi-lang-dotnet=\"`Paused`\" pulumi-lang-go=\"`paused`\" pulumi-lang-python=\"`paused`\" pulumi-lang-yaml=\"`paused`\" pulumi-lang-java=\"`paused`\"\u003e`paused`\u003c/span\u003e.\n"},"description":{"type":"string","description":"Rich text description of the incident status\n"},"name":{"type":"string","description":"Unique name of this status\n"}},"requiredInputs":["category","description"],"stateInputs":{"description":"Input properties used for looking up and filtering Status resources.\n","properties":{"category":{"type":"string","description":"What category of status it is. All statuses apart from live (renamed in the app to Active) and learning (renamed in the app to Post-incident) are managed by incident.io and cannot be configured. Possible values are: \u003cspan pulumi-lang-nodejs=\"`triage`\" pulumi-lang-dotnet=\"`Triage`\" pulumi-lang-go=\"`triage`\" pulumi-lang-python=\"`triage`\" pulumi-lang-yaml=\"`triage`\" pulumi-lang-java=\"`triage`\"\u003e`triage`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`declined`\" pulumi-lang-dotnet=\"`Declined`\" pulumi-lang-go=\"`declined`\" pulumi-lang-python=\"`declined`\" pulumi-lang-yaml=\"`declined`\" pulumi-lang-java=\"`declined`\"\u003e`declined`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`merged`\" pulumi-lang-dotnet=\"`Merged`\" pulumi-lang-go=\"`merged`\" pulumi-lang-python=\"`merged`\" pulumi-lang-yaml=\"`merged`\" pulumi-lang-java=\"`merged`\"\u003e`merged`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`canceled`\" pulumi-lang-dotnet=\"`Canceled`\" pulumi-lang-go=\"`canceled`\" pulumi-lang-python=\"`canceled`\" pulumi-lang-yaml=\"`canceled`\" pulumi-lang-java=\"`canceled`\"\u003e`canceled`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`live`\" pulumi-lang-dotnet=\"`Live`\" pulumi-lang-go=\"`live`\" pulumi-lang-python=\"`live`\" pulumi-lang-yaml=\"`live`\" pulumi-lang-java=\"`live`\"\u003e`live`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`learning`\" pulumi-lang-dotnet=\"`Learning`\" pulumi-lang-go=\"`learning`\" pulumi-lang-python=\"`learning`\" pulumi-lang-yaml=\"`learning`\" pulumi-lang-java=\"`learning`\"\u003e`learning`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`closed`\" pulumi-lang-dotnet=\"`Closed`\" pulumi-lang-go=\"`closed`\" pulumi-lang-python=\"`closed`\" pulumi-lang-yaml=\"`closed`\" pulumi-lang-java=\"`closed`\"\u003e`closed`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`paused`\" pulumi-lang-dotnet=\"`Paused`\" pulumi-lang-go=\"`paused`\" pulumi-lang-python=\"`paused`\" pulumi-lang-yaml=\"`paused`\" pulumi-lang-java=\"`paused`\"\u003e`paused`\u003c/span\u003e.\n"},"description":{"type":"string","description":"Rich text description of the incident status\n"},"name":{"type":"string","description":"Unique name of this status\n"}},"type":"object"}},"incident:index/workflow:Workflow":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as incident from \"@pulumi/incident\";\n\n// This is a workflow that automatically assigns the incident lead role to the user who acked an escalation.\nconst autoassignIncidentLead = new incident.Workflow(\"autoassign_incident_lead\", {\n    name: \"Auto-assign incident leader\",\n    trigger: \"escalation.acked\",\n    expressions: [],\n    conditionGroups: [{\n        conditions: [{\n            subject: \"user\",\n            operation: \"is_set\",\n            paramBindings: [],\n        }],\n    }],\n    steps: [{\n        id: \"01HY0QG9WT62CEYJN8JD74MJNR\",\n        name: \"incident.assign_role\",\n        paramBindings: [\n            {\n                value: {\n                    reference: \"incident\",\n                },\n            },\n            {\n                value: {\n                    literal: \"01HB0ZG24MPVF28Z5NF18DQT84\",\n                },\n            },\n            {\n                value: {\n                    reference: \"user\",\n                },\n            },\n        ],\n    }],\n    onceFors: [\"incident\"],\n    includePrivateIncidents: false,\n    continueOnStepError: false,\n    runsOnIncidents: \"newly_created_and_active\",\n    runsOnIncidentModes: [\"standard\"],\n    state: \"draft\",\n});\n```\n```python\nimport pulumi\nimport pulumi_incident as incident\n\n# This is a workflow that automatically assigns the incident lead role to the user who acked an escalation.\nautoassign_incident_lead = incident.Workflow(\"autoassign_incident_lead\",\n    name=\"Auto-assign incident leader\",\n    trigger=\"escalation.acked\",\n    expressions=[],\n    condition_groups=[{\n        \"conditions\": [{\n            \"subject\": \"user\",\n            \"operation\": \"is_set\",\n            \"param_bindings\": [],\n        }],\n    }],\n    steps=[{\n        \"id\": \"01HY0QG9WT62CEYJN8JD74MJNR\",\n        \"name\": \"incident.assign_role\",\n        \"param_bindings\": [\n            {\n                \"value\": {\n                    \"reference\": \"incident\",\n                },\n            },\n            {\n                \"value\": {\n                    \"literal\": \"01HB0ZG24MPVF28Z5NF18DQT84\",\n                },\n            },\n            {\n                \"value\": {\n                    \"reference\": \"user\",\n                },\n            },\n        ],\n    }],\n    once_fors=[\"incident\"],\n    include_private_incidents=False,\n    continue_on_step_error=False,\n    runs_on_incidents=\"newly_created_and_active\",\n    runs_on_incident_modes=[\"standard\"],\n    state=\"draft\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Incident = Pulumi.Incident;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // This is a workflow that automatically assigns the incident lead role to the user who acked an escalation.\n    var autoassignIncidentLead = new Incident.Workflow(\"autoassign_incident_lead\", new()\n    {\n        Name = \"Auto-assign incident leader\",\n        Trigger = \"escalation.acked\",\n        Expressions = new[] {},\n        ConditionGroups = new[]\n        {\n            new Incident.Inputs.WorkflowConditionGroupArgs\n            {\n                Conditions = new[]\n                {\n                    new Incident.Inputs.WorkflowConditionGroupConditionArgs\n                    {\n                        Subject = \"user\",\n                        Operation = \"is_set\",\n                        ParamBindings = new() { },\n                    },\n                },\n            },\n        },\n        Steps = new[]\n        {\n            new Incident.Inputs.WorkflowStepArgs\n            {\n                Id = \"01HY0QG9WT62CEYJN8JD74MJNR\",\n                Name = \"incident.assign_role\",\n                ParamBindings = new[]\n                {\n                    new Incident.Inputs.WorkflowStepParamBindingArgs\n                    {\n                        Value = new Incident.Inputs.WorkflowStepParamBindingValueArgs\n                        {\n                            Reference = \"incident\",\n                        },\n                    },\n                    new Incident.Inputs.WorkflowStepParamBindingArgs\n                    {\n                        Value = new Incident.Inputs.WorkflowStepParamBindingValueArgs\n                        {\n                            Literal = \"01HB0ZG24MPVF28Z5NF18DQT84\",\n                        },\n                    },\n                    new Incident.Inputs.WorkflowStepParamBindingArgs\n                    {\n                        Value = new Incident.Inputs.WorkflowStepParamBindingValueArgs\n                        {\n                            Reference = \"user\",\n                        },\n                    },\n                },\n            },\n        },\n        OnceFors = new[]\n        {\n            \"incident\",\n        },\n        IncludePrivateIncidents = false,\n        ContinueOnStepError = false,\n        RunsOnIncidents = \"newly_created_and_active\",\n        RunsOnIncidentModes = new[]\n        {\n            \"standard\",\n        },\n        State = \"draft\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/incident/v5/incident\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// This is a workflow that automatically assigns the incident lead role to the user who acked an escalation.\n\t\t_, err := incident.NewWorkflow(ctx, \"autoassign_incident_lead\", \u0026incident.WorkflowArgs{\n\t\t\tName:        pulumi.String(\"Auto-assign incident leader\"),\n\t\t\tTrigger:     pulumi.String(\"escalation.acked\"),\n\t\t\tExpressions: incident.WorkflowExpressionArray{},\n\t\t\tConditionGroups: incident.WorkflowConditionGroupArray{\n\t\t\t\t\u0026incident.WorkflowConditionGroupArgs{\n\t\t\t\t\tConditions: incident.WorkflowConditionGroupConditionArray{\n\t\t\t\t\t\t\u0026incident.WorkflowConditionGroupConditionArgs{\n\t\t\t\t\t\t\tSubject:       pulumi.String(\"user\"),\n\t\t\t\t\t\t\tOperation:     pulumi.String(\"is_set\"),\n\t\t\t\t\t\t\tParamBindings: incident.WorkflowConditionGroupConditionParamBindingArray{},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tSteps: incident.WorkflowStepArray{\n\t\t\t\t\u0026incident.WorkflowStepArgs{\n\t\t\t\t\tId:   pulumi.String(\"01HY0QG9WT62CEYJN8JD74MJNR\"),\n\t\t\t\t\tName: pulumi.String(\"incident.assign_role\"),\n\t\t\t\t\tParamBindings: incident.WorkflowStepParamBindingArray{\n\t\t\t\t\t\t\u0026incident.WorkflowStepParamBindingArgs{\n\t\t\t\t\t\t\tValue: \u0026incident.WorkflowStepParamBindingValueArgs{\n\t\t\t\t\t\t\t\tReference: pulumi.String(\"incident\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026incident.WorkflowStepParamBindingArgs{\n\t\t\t\t\t\t\tValue: \u0026incident.WorkflowStepParamBindingValueArgs{\n\t\t\t\t\t\t\t\tLiteral: pulumi.String(\"01HB0ZG24MPVF28Z5NF18DQT84\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026incident.WorkflowStepParamBindingArgs{\n\t\t\t\t\t\t\tValue: \u0026incident.WorkflowStepParamBindingValueArgs{\n\t\t\t\t\t\t\t\tReference: pulumi.String(\"user\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tOnceFors: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"incident\"),\n\t\t\t},\n\t\t\tIncludePrivateIncidents: pulumi.Bool(false),\n\t\t\tContinueOnStepError:     pulumi.Bool(false),\n\t\t\tRunsOnIncidents:         pulumi.String(\"newly_created_and_active\"),\n\t\t\tRunsOnIncidentModes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"standard\"),\n\t\t\t},\n\t\t\tState: pulumi.String(\"draft\"),\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.incident.Workflow;\nimport com.pulumi.incident.WorkflowArgs;\nimport com.pulumi.incident.inputs.WorkflowConditionGroupArgs;\nimport com.pulumi.incident.inputs.WorkflowStepArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // This is a workflow that automatically assigns the incident lead role to the user who acked an escalation.\n        var autoassignIncidentLead = new Workflow(\"autoassignIncidentLead\", WorkflowArgs.builder()\n            .name(\"Auto-assign incident leader\")\n            .trigger(\"escalation.acked\")\n            .expressions()\n            .conditionGroups(WorkflowConditionGroupArgs.builder()\n                .conditions(WorkflowConditionGroupConditionArgs.builder()\n                    .subject(\"user\")\n                    .operation(\"is_set\")\n                    .paramBindings()\n                    .build())\n                .build())\n            .steps(WorkflowStepArgs.builder()\n                .id(\"01HY0QG9WT62CEYJN8JD74MJNR\")\n                .name(\"incident.assign_role\")\n                .paramBindings(                \n                    WorkflowStepParamBindingArgs.builder()\n                        .value(WorkflowStepParamBindingValueArgs.builder()\n                            .reference(\"incident\")\n                            .build())\n                        .build(),\n                    WorkflowStepParamBindingArgs.builder()\n                        .value(WorkflowStepParamBindingValueArgs.builder()\n                            .literal(\"01HB0ZG24MPVF28Z5NF18DQT84\")\n                            .build())\n                        .build(),\n                    WorkflowStepParamBindingArgs.builder()\n                        .value(WorkflowStepParamBindingValueArgs.builder()\n                            .reference(\"user\")\n                            .build())\n                        .build())\n                .build())\n            .onceFors(\"incident\")\n            .includePrivateIncidents(false)\n            .continueOnStepError(false)\n            .runsOnIncidents(\"newly_created_and_active\")\n            .runsOnIncidentModes(\"standard\")\n            .state(\"draft\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # This is a workflow that automatically assigns the incident lead role to the user who acked an escalation.\n  autoassignIncidentLead:\n    type: incident:Workflow\n    name: autoassign_incident_lead\n    properties:\n      name: Auto-assign incident leader\n      trigger: escalation.acked\n      expressions: []\n      conditionGroups:\n        - conditions:\n            - subject: user\n              operation: is_set\n              paramBindings: []\n      steps:\n        - id: 01HY0QG9WT62CEYJN8JD74MJNR\n          name: incident.assign_role\n          paramBindings:\n            - value:\n                reference: incident\n            - value:\n                literal: 01HB0ZG24MPVF28Z5NF18DQT84\n            - value:\n                reference: user\n      onceFors:\n        - incident\n      includePrivateIncidents: false\n      continueOnStepError: false\n      runsOnIncidents: newly_created_and_active\n      runsOnIncidentModes:\n        - standard\n      state: draft\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nThe `pulumi import` command can be used, for example:\n\n#!/bin/bash\n\nImport a workflow using its ID\n\nReplace the ID with a real ID from your incident.io organization\n\n```sh\n$ pulumi import incident:index/workflow:Workflow example 01ABC123DEF456GHI789JKL\n```\n\n","properties":{"conditionGroups":{"type":"array","items":{"$ref":"#/types/incident:index%2FWorkflowConditionGroup:WorkflowConditionGroup"},"description":"Groups of prerequisite conditions. All conditions in at least one group must be satisfied\n"},"continueOnStepError":{"type":"boolean","description":"Whether to continue executing the workflow if a step fails\n"},"delay":{"$ref":"#/types/incident:index%2FWorkflowDelay:WorkflowDelay","description":"Configuration controlling workflow delay behaviour\n"},"expressions":{"type":"array","items":{"$ref":"#/types/incident:index%2FWorkflowExpression:WorkflowExpression"},"description":"The expressions to be prepared for use by steps and conditions\n"},"folder":{"type":"string","description":"Folder to display the workflow in\n"},"includePrivateEscalations":{"type":"boolean","description":"Whether to include private escalations\n"},"includePrivateIncidents":{"type":"boolean","description":"Whether to include private incidents\n"},"name":{"type":"string","description":"Name provided by the user when creating the workflow\n"},"onceFors":{"type":"array","items":{"type":"string"},"description":"This workflow will run 'once for' a list of references\n"},"runsOnIncidentModes":{"type":"array","items":{"type":"string"},"description":"Which incident modes should this workflow run on? By default, workflows only run on standard incidents, but can also be configured to run on test and retrospective incidents.\n"},"runsOnIncidents":{"type":"string","description":"Which incidents should the workflow be applied to?. Possible values are: \u003cspan pulumi-lang-nodejs=\"`newlyCreated`\" pulumi-lang-dotnet=\"`NewlyCreated`\" pulumi-lang-go=\"`newlyCreated`\" pulumi-lang-python=\"`newly_created`\" pulumi-lang-yaml=\"`newlyCreated`\" pulumi-lang-java=\"`newlyCreated`\"\u003e`newly_created`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`newlyCreatedAndActive`\" pulumi-lang-dotnet=\"`NewlyCreatedAndActive`\" pulumi-lang-go=\"`newlyCreatedAndActive`\" pulumi-lang-python=\"`newly_created_and_active`\" pulumi-lang-yaml=\"`newlyCreatedAndActive`\" pulumi-lang-java=\"`newlyCreatedAndActive`\"\u003e`newly_created_and_active`\u003c/span\u003e.\n"},"shortform":{"type":"string","description":"The shortform used to trigger this workflow (only applicable for manual triggers)\n"},"state":{"type":"string","description":"What state this workflow is in. Possible values are: \u003cspan pulumi-lang-nodejs=\"`active`\" pulumi-lang-dotnet=\"`Active`\" pulumi-lang-go=\"`active`\" pulumi-lang-python=\"`active`\" pulumi-lang-yaml=\"`active`\" pulumi-lang-java=\"`active`\"\u003e`active`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`disabled`\" pulumi-lang-dotnet=\"`Disabled`\" pulumi-lang-go=\"`disabled`\" pulumi-lang-python=\"`disabled`\" pulumi-lang-yaml=\"`disabled`\" pulumi-lang-java=\"`disabled`\"\u003e`disabled`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`draft`\" pulumi-lang-dotnet=\"`Draft`\" pulumi-lang-go=\"`draft`\" pulumi-lang-python=\"`draft`\" pulumi-lang-yaml=\"`draft`\" pulumi-lang-java=\"`draft`\"\u003e`draft`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`error`\" pulumi-lang-dotnet=\"`Error`\" pulumi-lang-go=\"`error`\" pulumi-lang-python=\"`error`\" pulumi-lang-yaml=\"`error`\" pulumi-lang-java=\"`error`\"\u003e`error`\u003c/span\u003e.\n"},"steps":{"type":"array","items":{"$ref":"#/types/incident:index%2FWorkflowStep:WorkflowStep"},"description":"Steps that are executed as part of the workflow\n"},"trigger":{"type":"string","description":"Unique name of the trigger\n"}},"type":"object","required":["conditionGroups","continueOnStepError","expressions","includePrivateEscalations","includePrivateIncidents","name","onceFors","runsOnIncidentModes","runsOnIncidents","state","steps","trigger"],"inputProperties":{"conditionGroups":{"type":"array","items":{"$ref":"#/types/incident:index%2FWorkflowConditionGroup:WorkflowConditionGroup"},"description":"Groups of prerequisite conditions. All conditions in at least one group must be satisfied\n"},"continueOnStepError":{"type":"boolean","description":"Whether to continue executing the workflow if a step fails\n"},"delay":{"$ref":"#/types/incident:index%2FWorkflowDelay:WorkflowDelay","description":"Configuration controlling workflow delay behaviour\n"},"expressions":{"type":"array","items":{"$ref":"#/types/incident:index%2FWorkflowExpression:WorkflowExpression"},"description":"The expressions to be prepared for use by steps and conditions\n"},"folder":{"type":"string","description":"Folder to display the workflow in\n"},"includePrivateEscalations":{"type":"boolean","description":"Whether to include private escalations\n"},"includePrivateIncidents":{"type":"boolean","description":"Whether to include private incidents\n"},"name":{"type":"string","description":"Name provided by the user when creating the workflow\n"},"onceFors":{"type":"array","items":{"type":"string"},"description":"This workflow will run 'once for' a list of references\n"},"runsOnIncidentModes":{"type":"array","items":{"type":"string"},"description":"Which incident modes should this workflow run on? By default, workflows only run on standard incidents, but can also be configured to run on test and retrospective incidents.\n"},"runsOnIncidents":{"type":"string","description":"Which incidents should the workflow be applied to?. Possible values are: \u003cspan pulumi-lang-nodejs=\"`newlyCreated`\" pulumi-lang-dotnet=\"`NewlyCreated`\" pulumi-lang-go=\"`newlyCreated`\" pulumi-lang-python=\"`newly_created`\" pulumi-lang-yaml=\"`newlyCreated`\" pulumi-lang-java=\"`newlyCreated`\"\u003e`newly_created`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`newlyCreatedAndActive`\" pulumi-lang-dotnet=\"`NewlyCreatedAndActive`\" pulumi-lang-go=\"`newlyCreatedAndActive`\" pulumi-lang-python=\"`newly_created_and_active`\" pulumi-lang-yaml=\"`newlyCreatedAndActive`\" pulumi-lang-java=\"`newlyCreatedAndActive`\"\u003e`newly_created_and_active`\u003c/span\u003e.\n"},"shortform":{"type":"string","description":"The shortform used to trigger this workflow (only applicable for manual triggers)\n"},"state":{"type":"string","description":"What state this workflow is in. Possible values are: \u003cspan pulumi-lang-nodejs=\"`active`\" pulumi-lang-dotnet=\"`Active`\" pulumi-lang-go=\"`active`\" pulumi-lang-python=\"`active`\" pulumi-lang-yaml=\"`active`\" pulumi-lang-java=\"`active`\"\u003e`active`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`disabled`\" pulumi-lang-dotnet=\"`Disabled`\" pulumi-lang-go=\"`disabled`\" pulumi-lang-python=\"`disabled`\" pulumi-lang-yaml=\"`disabled`\" pulumi-lang-java=\"`disabled`\"\u003e`disabled`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`draft`\" pulumi-lang-dotnet=\"`Draft`\" pulumi-lang-go=\"`draft`\" pulumi-lang-python=\"`draft`\" pulumi-lang-yaml=\"`draft`\" pulumi-lang-java=\"`draft`\"\u003e`draft`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`error`\" pulumi-lang-dotnet=\"`Error`\" pulumi-lang-go=\"`error`\" pulumi-lang-python=\"`error`\" pulumi-lang-yaml=\"`error`\" pulumi-lang-java=\"`error`\"\u003e`error`\u003c/span\u003e.\n"},"steps":{"type":"array","items":{"$ref":"#/types/incident:index%2FWorkflowStep:WorkflowStep"},"description":"Steps that are executed as part of the workflow\n"},"trigger":{"type":"string","description":"Unique name of the trigger\n"}},"requiredInputs":["conditionGroups","continueOnStepError","expressions","includePrivateIncidents","onceFors","runsOnIncidentModes","runsOnIncidents","state","steps","trigger"],"stateInputs":{"description":"Input properties used for looking up and filtering Workflow resources.\n","properties":{"conditionGroups":{"type":"array","items":{"$ref":"#/types/incident:index%2FWorkflowConditionGroup:WorkflowConditionGroup"},"description":"Groups of prerequisite conditions. All conditions in at least one group must be satisfied\n"},"continueOnStepError":{"type":"boolean","description":"Whether to continue executing the workflow if a step fails\n"},"delay":{"$ref":"#/types/incident:index%2FWorkflowDelay:WorkflowDelay","description":"Configuration controlling workflow delay behaviour\n"},"expressions":{"type":"array","items":{"$ref":"#/types/incident:index%2FWorkflowExpression:WorkflowExpression"},"description":"The expressions to be prepared for use by steps and conditions\n"},"folder":{"type":"string","description":"Folder to display the workflow in\n"},"includePrivateEscalations":{"type":"boolean","description":"Whether to include private escalations\n"},"includePrivateIncidents":{"type":"boolean","description":"Whether to include private incidents\n"},"name":{"type":"string","description":"Name provided by the user when creating the workflow\n"},"onceFors":{"type":"array","items":{"type":"string"},"description":"This workflow will run 'once for' a list of references\n"},"runsOnIncidentModes":{"type":"array","items":{"type":"string"},"description":"Which incident modes should this workflow run on? By default, workflows only run on standard incidents, but can also be configured to run on test and retrospective incidents.\n"},"runsOnIncidents":{"type":"string","description":"Which incidents should the workflow be applied to?. Possible values are: \u003cspan pulumi-lang-nodejs=\"`newlyCreated`\" pulumi-lang-dotnet=\"`NewlyCreated`\" pulumi-lang-go=\"`newlyCreated`\" pulumi-lang-python=\"`newly_created`\" pulumi-lang-yaml=\"`newlyCreated`\" pulumi-lang-java=\"`newlyCreated`\"\u003e`newly_created`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`newlyCreatedAndActive`\" pulumi-lang-dotnet=\"`NewlyCreatedAndActive`\" pulumi-lang-go=\"`newlyCreatedAndActive`\" pulumi-lang-python=\"`newly_created_and_active`\" pulumi-lang-yaml=\"`newlyCreatedAndActive`\" pulumi-lang-java=\"`newlyCreatedAndActive`\"\u003e`newly_created_and_active`\u003c/span\u003e.\n"},"shortform":{"type":"string","description":"The shortform used to trigger this workflow (only applicable for manual triggers)\n"},"state":{"type":"string","description":"What state this workflow is in. Possible values are: \u003cspan pulumi-lang-nodejs=\"`active`\" pulumi-lang-dotnet=\"`Active`\" pulumi-lang-go=\"`active`\" pulumi-lang-python=\"`active`\" pulumi-lang-yaml=\"`active`\" pulumi-lang-java=\"`active`\"\u003e`active`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`disabled`\" pulumi-lang-dotnet=\"`Disabled`\" pulumi-lang-go=\"`disabled`\" pulumi-lang-python=\"`disabled`\" pulumi-lang-yaml=\"`disabled`\" pulumi-lang-java=\"`disabled`\"\u003e`disabled`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`draft`\" pulumi-lang-dotnet=\"`Draft`\" pulumi-lang-go=\"`draft`\" pulumi-lang-python=\"`draft`\" pulumi-lang-yaml=\"`draft`\" pulumi-lang-java=\"`draft`\"\u003e`draft`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`error`\" pulumi-lang-dotnet=\"`Error`\" pulumi-lang-go=\"`error`\" pulumi-lang-python=\"`error`\" pulumi-lang-yaml=\"`error`\" pulumi-lang-java=\"`error`\"\u003e`error`\u003c/span\u003e.\n"},"steps":{"type":"array","items":{"$ref":"#/types/incident:index%2FWorkflowStep:WorkflowStep"},"description":"Steps that are executed as part of the workflow\n"},"trigger":{"type":"string","description":"Unique name of the trigger\n"}},"type":"object"}}},"functions":{"incident:index/getAlertAttribute:getAlertAttribute":{"description":"This data source provides information about an alert attribute.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as incident from \"@pulumi/incident\";\n\n// Reference the `Github user` alert attribute\nconst githubUser = incident.getAlertAttribute({\n    name: \"Github user\",\n});\n```\n```python\nimport pulumi\nimport pulumi_incident as incident\n\n# Reference the `Github user` alert attribute\ngithub_user = incident.get_alert_attribute(name=\"Github user\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Incident = Pulumi.Incident;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Reference the `Github user` alert attribute\n    var githubUser = Incident.GetAlertAttribute.Invoke(new()\n    {\n        Name = \"Github user\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/incident/v5/incident\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Reference the `Github user` alert attribute\n\t\t_, err := incident.LookupAlertAttribute(ctx, \u0026incident.LookupAlertAttributeArgs{\n\t\t\tName: \"Github user\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.incident.IncidentFunctions;\nimport com.pulumi.incident.inputs.GetAlertAttributeArgs;\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        // Reference the `Github user` alert attribute\n        final var githubUser = IncidentFunctions.getAlertAttribute(GetAlertAttributeArgs.builder()\n            .name(\"Github user\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # Reference the `Github user` alert attribute\n  githubUser:\n    fn::invoke:\n      function: incident:getAlertAttribute\n      arguments:\n        name: Github user\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getAlertAttribute.\n","properties":{"name":{"type":"string","description":"Unique name of this attribute\n"}},"type":"object","required":["name"]},"outputs":{"description":"A collection of values returned by getAlertAttribute.\n","properties":{"array":{"description":"Whether this attribute is an array\n","type":"boolean"},"id":{"description":"The ID of this attribute\n","type":"string"},"name":{"description":"Unique name of this attribute\n","type":"string"},"required":{"description":"Whether this attribute is required. If this field is not set, the existing setting will be preserved.\n","type":"boolean"},"type":{"description":"Engine resource name for this attribute\n","type":"string"}},"required":["array","id","name","required","type"],"type":"object"}},"incident:index/getAlertSources:getAlertSources":{"description":"Configure your alert sources in incident.io.\n\nAlert sources are the systems that send alerts to incident.io, which can then be routed to the right people and teams.\n\n","inputs":{"description":"A collection of arguments for invoking getAlertSources.\n","properties":{"sourceType":{"type":"string","description":"Filter alert sources by source type (e.g., 'webhook', 'email', 'jira'). If provided, only alert sources of this type will be returned.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getAlertSources.\n","properties":{"alertSources":{"description":"List of alert sources matching the specified criteria. If no filters are provided, all alert sources are returned.\n","items":{"$ref":"#/types/incident:index%2FgetAlertSourcesAlertSource:getAlertSourcesAlertSource"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"sourceType":{"description":"Filter alert sources by source type (e.g., 'webhook', 'email', 'jira'). If provided, only alert sources of this type will be returned.\n","type":"string"}},"required":["alertSources","id"],"type":"object"}},"incident:index/getCatalogEntries:getCatalogEntries":{"description":"This data source provides a list of catalog entries for a specific catalog type.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as incident from \"@pulumi/incident\";\n\n// List catalog entries for a specific catalog type\nconst services = incident.getCatalogEntries({\n    catalogTypeId: \"01FCNDV6P870EA6S7TK1DSYDG0\",\n});\nexport const serviceNames = services.then(services =\u003e .map(entry =\u003e (entry.name)));\nexport const servicesWithExternalId = services.then(services =\u003e .filter(entry =\u003e entry.externalId != \"\").map(entry =\u003e ({\n    name: entry.name,\n    externalId: entry.externalId,\n})));\nexport const serviceAliases = services.then(services =\u003e .filter(entry =\u003e entry.aliases.length \u003e 0).reduce((__obj, entry) =\u003e ({ ...__obj, [entry.name]: entry.aliases })));\n```\n```python\nimport pulumi\nimport pulumi_incident as incident\n\n# List catalog entries for a specific catalog type\nservices = incident.get_catalog_entries(catalog_type_id=\"01FCNDV6P870EA6S7TK1DSYDG0\")\npulumi.export(\"serviceNames\", [entry.name for entry in services.catalog_entries])\npulumi.export(\"servicesWithExternalId\", [{\n    \"name\": entry.name,\n    \"externalId\": entry.external_id,\n} for entry in services.catalog_entries if entry.external_id != \"\"])\npulumi.export(\"serviceAliases\", {entry.name: entry.aliases for entry in services.catalog_entries if len(entry.aliases) \u003e 0})\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Incident = Pulumi.Incident;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // List catalog entries for a specific catalog type\n    var services = Incident.GetCatalogEntries.Invoke(new()\n    {\n        CatalogTypeId = \"01FCNDV6P870EA6S7TK1DSYDG0\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"serviceNames\"] = .Select(entry =\u003e \n        {\n            return entry.Name;\n        }).ToList(),\n        [\"servicesWithExternalId\"] = .Where(entry =\u003e entry.ExternalId != \"\").Select(entry =\u003e \n        {\n            return \n            {\n                { \"name\", entry.Name },\n                { \"externalId\", entry.ExternalId },\n            };\n        }).ToList(),\n        [\"serviceAliases\"] = .ToDictionary(item =\u003e {\n            var entry = item.Value;\n            return entry.Name;\n        }, item =\u003e {\n            var entry = item.Value;\n            return entry.Aliases;\n        }),\n    };\n});\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCatalogEntries.\n","properties":{"catalogTypeId":{"type":"string","description":"The catalog type ID to list entries for.\n"}},"type":"object","required":["catalogTypeId"]},"outputs":{"description":"A collection of values returned by getCatalogEntries.\n","properties":{"catalogEntries":{"description":"List of catalog entries for the specified catalog type.\n","items":{"$ref":"#/types/incident:index%2FgetCatalogEntriesCatalogEntry:getCatalogEntriesCatalogEntry"},"type":"array"},"catalogTypeId":{"description":"The catalog type ID to list entries for.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"}},"required":["catalogEntries","catalogTypeId","id"],"type":"object"}},"incident:index/getCatalogEntry:getCatalogEntry":{"description":"This data source provides information about a catalog entry.\nIt can be used to look up a catalog entry by providing the\u003cspan pulumi-lang-nodejs=\" catalogTypeId \" pulumi-lang-dotnet=\" CatalogTypeId \" pulumi-lang-go=\" catalogTypeId \" pulumi-lang-python=\" catalog_type_id \" pulumi-lang-yaml=\" catalogTypeId \" pulumi-lang-java=\" catalogTypeId \"\u003e catalog_type_id \u003c/span\u003eand an identifier.\n\nThe API will automatically match the identifier against names, external IDs, and aliases.\n","inputs":{"description":"A collection of arguments for invoking getCatalogEntry.\n","properties":{"catalogTypeId":{"type":"string","description":"ID of this catalog type\n"},"identifier":{"type":"string","description":"The identifier to use for finding the catalog entry. This can be a name, external ID, or alias.\n"}},"type":"object","required":["catalogTypeId","identifier"]},"outputs":{"description":"A collection of values returned by getCatalogEntry.\n","properties":{"aliases":{"description":"Optional aliases that can be used to reference this entry\n","items":{"type":"string"},"type":"array"},"attributeValues":{"items":{"$ref":"#/types/incident:index%2FgetCatalogEntryAttributeValue:getCatalogEntryAttributeValue"},"type":"array"},"catalogTypeId":{"description":"ID of this catalog type\n","type":"string"},"externalId":{"description":"An optional alternative ID for this entry, which is ensured to be unique for the type\n","type":"string"},"id":{"description":"The ID of the catalog entry\n","type":"string"},"identifier":{"description":"The identifier to use for finding the catalog entry. This can be a name, external ID, or alias.\n","type":"string"},"name":{"description":"Name is the human readable name of this entry\n","type":"string"},"rank":{"description":"When catalog type is ranked, this is used to help order things\n","type":"number"}},"required":["aliases","attributeValues","catalogTypeId","externalId","id","identifier","name","rank"],"type":"object"}},"incident:index/getCatalogType:getCatalogType":{"description":"This data source provides information about a catalog type.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```yaml\nresources:\n  # Now provision the entries for the catalog type.\n  services:\n    type: incident:CatalogEntries\n    properties:\n      catalogEntriesId: ${service.id}\n      entries:\n        primary:\n          name: artist-web\n          description: public-websites\n          tags:\n            - java\nvariables:\n  # Reference the catalog type by its name.\n  service:\n    fn::invoke:\n      function: incident:getCatalogType\n      arguments:\n        name: Service\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCatalogType.\n","properties":{"categories":{"type":"array","items":{"type":"string"},"description":"The categories that this type belongs to, to be shown in the web dashboard. Possible values are: \u003cspan pulumi-lang-nodejs=\"`customer`\" pulumi-lang-dotnet=\"`Customer`\" pulumi-lang-go=\"`customer`\" pulumi-lang-python=\"`customer`\" pulumi-lang-yaml=\"`customer`\" pulumi-lang-java=\"`customer`\"\u003e`customer`\u003c/span\u003e, `issue-tracker`, `product-feature`, \u003cspan pulumi-lang-nodejs=\"`service`\" pulumi-lang-dotnet=\"`Service`\" pulumi-lang-go=\"`service`\" pulumi-lang-python=\"`service`\" pulumi-lang-yaml=\"`service`\" pulumi-lang-java=\"`service`\"\u003e`service`\u003c/span\u003e, `on-call`, \u003cspan pulumi-lang-nodejs=\"`team`\" pulumi-lang-dotnet=\"`Team`\" pulumi-lang-go=\"`team`\" pulumi-lang-python=\"`team`\" pulumi-lang-yaml=\"`team`\" pulumi-lang-java=\"`team`\"\u003e`team`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`user`\" pulumi-lang-dotnet=\"`User`\" pulumi-lang-go=\"`user`\" pulumi-lang-python=\"`user`\" pulumi-lang-yaml=\"`user`\" pulumi-lang-java=\"`user`\"\u003e`user`\u003c/span\u003e.\n"},"name":{"type":"string","description":"Name is the human readable name of this type\n"},"typeName":{"type":"string","description":"The type name of this catalog type, to be used when defining attributes. This is immutable once a CatalogType has been created. For non-externally sync types, it must follow the pattern Custom[\"SomeName\"]\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getCatalogType.\n","properties":{"categories":{"description":"The categories that this type belongs to, to be shown in the web dashboard. Possible values are: \u003cspan pulumi-lang-nodejs=\"`customer`\" pulumi-lang-dotnet=\"`Customer`\" pulumi-lang-go=\"`customer`\" pulumi-lang-python=\"`customer`\" pulumi-lang-yaml=\"`customer`\" pulumi-lang-java=\"`customer`\"\u003e`customer`\u003c/span\u003e, `issue-tracker`, `product-feature`, \u003cspan pulumi-lang-nodejs=\"`service`\" pulumi-lang-dotnet=\"`Service`\" pulumi-lang-go=\"`service`\" pulumi-lang-python=\"`service`\" pulumi-lang-yaml=\"`service`\" pulumi-lang-java=\"`service`\"\u003e`service`\u003c/span\u003e, `on-call`, \u003cspan pulumi-lang-nodejs=\"`team`\" pulumi-lang-dotnet=\"`Team`\" pulumi-lang-go=\"`team`\" pulumi-lang-python=\"`team`\" pulumi-lang-yaml=\"`team`\" pulumi-lang-java=\"`team`\"\u003e`team`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`user`\" pulumi-lang-dotnet=\"`User`\" pulumi-lang-go=\"`user`\" pulumi-lang-python=\"`user`\" pulumi-lang-yaml=\"`user`\" pulumi-lang-java=\"`user`\"\u003e`user`\u003c/span\u003e.\n","items":{"type":"string"},"type":"array"},"description":{"description":"Human readble description of this type\n","type":"string"},"id":{"description":"ID of this catalog type\n","type":"string"},"name":{"description":"Name is the human readable name of this type\n","type":"string"},"sourceRepoUrl":{"description":"The url of the external repository where this type is managed. If set, users will not be able to edit the catalog type (or its entries) via the UI, and will instead be provided a link to this URL.\n","type":"string"},"typeName":{"description":"The type name of this catalog type, to be used when defining attributes. This is immutable once a CatalogType has been created. For non-externally sync types, it must follow the pattern Custom[\"SomeName\"]\n","type":"string"},"useNameAsIdentifier":{"description":"If enabled, you can refer to entries of this type by their name, as well as their external ID and any aliases.\n","type":"boolean"}},"required":["description","id","name","sourceRepoUrl","typeName","useNameAsIdentifier"],"type":"object"}},"incident:index/getCatalogTypeAttribute:getCatalogTypeAttribute":{"description":"This data source provides information about a catalog type attribute.\n","inputs":{"description":"A collection of arguments for invoking getCatalogTypeAttribute.\n","properties":{"catalogTypeId":{"type":"string","description":"ID of this catalog type\n"},"name":{"type":"string","description":"The name of this attribute.\n"}},"type":"object","required":["catalogTypeId","name"]},"outputs":{"description":"A collection of values returned by getCatalogTypeAttribute.\n","properties":{"array":{"description":"Whether this attribute is an array or scalar.\n","type":"boolean"},"backlinkAttribute":{"description":"If this is a backlink, the id of the attribute that it's linked from\n","type":"string"},"catalogTypeId":{"description":"ID of this catalog type\n","type":"string"},"id":{"description":"The ID of the catalog type attribute\n","type":"string"},"name":{"description":"The name of this attribute.\n","type":"string"},"paths":{"description":"If this is a path attribute, the path that we should use to pull the data\n","items":{"type":"string"},"type":"array"},"schemaOnly":{"type":"boolean"},"type":{"description":"The type of this attribute.\n","type":"string"}},"required":["array","backlinkAttribute","catalogTypeId","id","name","paths","schemaOnly","type"],"type":"object"}},"incident:index/getCustomField:getCustomField":{"description":"This data source provides information about a custom field.\n","inputs":{"description":"A collection of arguments for invoking getCustomField.\n","properties":{"name":{"type":"string","description":"Human readable name for the custom field\n"}},"type":"object","required":["name"]},"outputs":{"description":"A collection of values returned by getCustomField.\n","properties":{"catalogTypeId":{"description":"For catalog fields, the ID of the associated catalog type\n","type":"string"},"description":{"description":"Description of the custom field\n","type":"string"},"fieldType":{"description":"Type of custom field\n","type":"string"},"filterBy":{"$ref":"#/types/incident:index%2FgetCustomFieldFilterBy:getCustomFieldFilterBy"},"groupByCatalogAttributeId":{"description":"For catalog fields, the ID of the attribute used to group catalog entries (if applicable)\n","type":"string"},"helptextCatalogAttributeId":{"description":"Which catalog attribute provides helptext for the options\n","type":"string"},"id":{"description":"The custom field ID\n","type":"string"},"name":{"description":"Human readable name for the custom field\n","type":"string"}},"required":["catalogTypeId","description","fieldType","filterBy","groupByCatalogAttributeId","helptextCatalogAttributeId","id","name"],"type":"object"}},"incident:index/getCustomFieldOption:getCustomFieldOption":{"description":"This data source provides information about a custom field option.\n","inputs":{"description":"A collection of arguments for invoking getCustomFieldOption.\n","properties":{"customFieldId":{"type":"string","description":"ID of the custom field this option belongs to\n"},"sortKey":{"type":"number","description":"Sort key used to order the custom field options correctly\n"},"value":{"type":"string","description":"Human readable name for the custom field option\n"}},"type":"object","required":["customFieldId","value"]},"outputs":{"description":"A collection of values returned by getCustomFieldOption.\n","properties":{"customFieldId":{"description":"ID of the custom field this option belongs to\n","type":"string"},"id":{"description":"Unique identifier for the custom field option\n","type":"string"},"sortKey":{"description":"Sort key used to order the custom field options correctly\n","type":"number"},"value":{"description":"Human readable name for the custom field option\n","type":"string"}},"required":["customFieldId","id","value"],"type":"object"}},"incident:index/getEscalationPath:getEscalationPath":{"description":"Use this data source to retrieve information about an existing escalation path by ID or name.\n","inputs":{"description":"A collection of arguments for invoking getEscalationPath.\n","properties":{"id":{"type":"string","description":"Unique identifier for this escalation path.\n"},"name":{"type":"string","description":"The name of this escalation path, for the user's reference.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getEscalationPath.\n","properties":{"id":{"description":"Unique identifier for this escalation path.\n","type":"string"},"name":{"description":"The name of this escalation path, for the user's reference.\n","type":"string"},"paths":{"description":"The nodes that form the levels and branches of this escalation path.\n","items":{"$ref":"#/types/incident:index%2FgetEscalationPathPath:getEscalationPathPath"},"type":"array"},"teamIds":{"description":"IDs of the teams that own this escalation path. This will automatically sync escalation paths with the right teams in Catalog. If you have an escalation paths attribute on your Teams, this attribute is required.\n","items":{"type":"string"},"type":"array"},"workingHours":{"description":"The working hours for this escalation path.\n","items":{"$ref":"#/types/incident:index%2FgetEscalationPathWorkingHour:getEscalationPathWorkingHour"},"type":"array"}},"required":["id","name","paths","teamIds","workingHours"],"type":"object"}},"incident:index/getIncidentRole:getIncidentRole":{"description":"This data source provides information about an incident role.\n","inputs":{"description":"A collection of arguments for invoking getIncidentRole.\n","properties":{"id":{"type":"string","description":"Unique identifier for the role\n"}},"type":"object","required":["id"]},"outputs":{"description":"A collection of values returned by getIncidentRole.\n","properties":{"description":{"description":"Describes the purpose of the role\n","type":"string"},"id":{"description":"Unique identifier for the role\n","type":"string"},"instructions":{"description":"Provided to whoever is nominated for the role. Note that this will be empty for the 'reporter' role.\n","type":"string"},"name":{"description":"Human readable name of the incident role\n","type":"string"},"shortform":{"description":"Short human readable name for Slack. Note that this will be empty for the 'reporter' role.\n","type":"string"}},"required":["description","id","instructions","name","shortform"],"type":"object"}},"incident:index/getIncidentTypes:getIncidentTypes":{"description":"This data source provides a list of incident types.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as incident from \"@pulumi/incident\";\n\n// Example usage of the incident_incident_types data source\n// Get all incident types\nconst all = incident.getIncidentTypes({});\nexport const incidentTypes = all.then(all =\u003e all.incidentTypes);\nexport const incidentTypeNames = all.then(all =\u003e .map(it =\u003e (it.name)));\n```\n```python\nimport pulumi\nimport pulumi_incident as incident\n\n# Example usage of the incident_incident_types data source\n# Get all incident types\nall = incident.get_incident_types()\npulumi.export(\"incidentTypes\", all.incident_types)\npulumi.export(\"incidentTypeNames\", [it.name for it in all.incident_types])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Incident = Pulumi.Incident;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Example usage of the incident_incident_types data source\n    // Get all incident types\n    var all = Incident.GetIncidentTypes.Invoke();\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"incidentTypes\"] = all.Apply(getIncidentTypesResult =\u003e getIncidentTypesResult.IncidentTypes),\n        [\"incidentTypeNames\"] = .Select(it =\u003e \n        {\n            return it.Name;\n        }).ToList(),\n    };\n});\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","outputs":{"description":"A collection of values returned by getIncidentTypes.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"incidentTypes":{"description":"List of incident types.\n","items":{"$ref":"#/types/incident:index%2FgetIncidentTypesIncidentType:getIncidentTypesIncidentType"},"type":"array"}},"required":["id","incidentTypes"],"type":"object"}},"incident:index/getSchedule:getSchedule":{"description":"View and manage schedules.\nManage your full schedule of on-call rotations, including the users and rotation configuration.\n\n\nUse this data source to retrieve information about an existing schedule.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as incident from \"@pulumi/incident\";\n\n// Reference the incident schedule by its id.\nconst byId = incident.getSchedule({\n    id: \"01HPFH8T92MPGSQS5C1SPAF4V0\",\n});\n// Reference the incident schedule by its name (case sensitive).\nconst byName = incident.getSchedule({\n    name: \"Primary On-call\",\n});\nexport const scheduleId = byName.then(byName =\u003e byName.id);\nexport const scheduleTimezone = byName.then(byName =\u003e byName.timezone);\nexport const scheduleTeamIds = byName.then(byName =\u003e byName.teamIds);\n```\n```python\nimport pulumi\nimport pulumi_incident as incident\n\n# Reference the incident schedule by its id.\nby_id = incident.get_schedule(id=\"01HPFH8T92MPGSQS5C1SPAF4V0\")\n# Reference the incident schedule by its name (case sensitive).\nby_name = incident.get_schedule(name=\"Primary On-call\")\npulumi.export(\"scheduleId\", by_name.id)\npulumi.export(\"scheduleTimezone\", by_name.timezone)\npulumi.export(\"scheduleTeamIds\", by_name.team_ids)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Incident = Pulumi.Incident;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Reference the incident schedule by its id.\n    var byId = Incident.GetSchedule.Invoke(new()\n    {\n        Id = \"01HPFH8T92MPGSQS5C1SPAF4V0\",\n    });\n\n    // Reference the incident schedule by its name (case sensitive).\n    var byName = Incident.GetSchedule.Invoke(new()\n    {\n        Name = \"Primary On-call\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"scheduleId\"] = byName.Apply(getScheduleResult =\u003e getScheduleResult.Id),\n        [\"scheduleTimezone\"] = byName.Apply(getScheduleResult =\u003e getScheduleResult.Timezone),\n        [\"scheduleTeamIds\"] = byName.Apply(getScheduleResult =\u003e getScheduleResult.TeamIds),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/incident/v5/incident\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Reference the incident schedule by its id.\n\t\t_, err := incident.LookupSchedule(ctx, \u0026incident.LookupScheduleArgs{\n\t\t\tId: pulumi.StringRef(\"01HPFH8T92MPGSQS5C1SPAF4V0\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Reference the incident schedule by its name (case sensitive).\n\t\tbyName, err := incident.LookupSchedule(ctx, \u0026incident.LookupScheduleArgs{\n\t\t\tName: pulumi.StringRef(\"Primary On-call\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"scheduleId\", byName.Id)\n\t\tctx.Export(\"scheduleTimezone\", byName.Timezone)\n\t\tctx.Export(\"scheduleTeamIds\", byName.TeamIds)\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.incident.IncidentFunctions;\nimport com.pulumi.incident.inputs.GetScheduleArgs;\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        // Reference the incident schedule by its id.\n        final var byId = IncidentFunctions.getSchedule(GetScheduleArgs.builder()\n            .id(\"01HPFH8T92MPGSQS5C1SPAF4V0\")\n            .build());\n\n        // Reference the incident schedule by its name (case sensitive).\n        final var byName = IncidentFunctions.getSchedule(GetScheduleArgs.builder()\n            .name(\"Primary On-call\")\n            .build());\n\n        ctx.export(\"scheduleId\", byName.id());\n        ctx.export(\"scheduleTimezone\", byName.timezone());\n        ctx.export(\"scheduleTeamIds\", byName.teamIds());\n    }\n}\n```\n```yaml\nvariables:\n  # Reference the incident schedule by its id.\n  byId:\n    fn::invoke:\n      function: incident:getSchedule\n      arguments:\n        id: 01HPFH8T92MPGSQS5C1SPAF4V0\n  # Reference the incident schedule by its name (case sensitive).\n  byName:\n    fn::invoke:\n      function: incident:getSchedule\n      arguments:\n        name: Primary On-call\noutputs:\n  # Output the schedule details\n  scheduleId: ${byName.id}\n  scheduleTimezone: ${byName.timezone}\n  scheduleTeamIds: ${byName.teamIds}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getSchedule.\n","properties":{"id":{"type":"string","description":"Unique internal ID of the schedule\n"},"name":{"type":"string","description":"Human readable name synced from external provider\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getSchedule.\n","properties":{"id":{"description":"Unique internal ID of the schedule\n","type":"string"},"name":{"description":"Human readable name synced from external provider\n","type":"string"},"teamIds":{"description":"IDs of teams that own this schedule\n","items":{"type":"string"},"type":"array"},"timezone":{"description":"Timezone of the schedule, as interpreted at the point of generating the report\n","type":"string"}},"required":["id","name","teamIds","timezone"],"type":"object"}},"incident:index/getUser:getUser":{"description":"View users.\n\nUsers all have a single base role, and can be assigned multiple custom roles. They can be managed via your Slack workspace or SAML provider.\n","inputs":{"description":"A collection of arguments for invoking getUser.\n","properties":{"email":{"type":"string"},"id":{"type":"string","description":"The ID of this resource.\n"},"slackUserId":{"type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getUser.\n","properties":{"email":{"type":"string"},"id":{"description":"The ID of this resource.\n","type":"string"},"name":{"type":"string"},"slackUserId":{"type":"string"}},"required":["name"],"type":"object"}},"pulumi:providers:incident/terraformConfig":{"description":"This function returns a Terraform config object with terraform-namecased keys,to be used with the Terraform Module Provider.","inputs":{"properties":{"__self__":{"$ref":"#/resources/pulumi:providers:incident"}},"type":"object","required":["__self__"]},"outputs":{"properties":{"result":{"additionalProperties":{"$ref":"pulumi.json#/Any"},"type":"object"}},"required":["result"],"type":"object"}}},"parameterization":{"baseProvider":{"name":"terraform-provider","version":"1.0.1"},"parameter":"eyJyZW1vdGUiOnsidXJsIjoicmVnaXN0cnkub3BlbnRvZnUub3JnL2luY2lkZW50LWlvL2luY2lkZW50IiwidmVyc2lvbiI6IjUuMjguMCJ9fQ=="}}