Resources/bicep/retry-policy.schema.json
|
{ "$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "required": ["schemaVersion", "limits", "modes", "reads", "observation", "regions", "wrappers", "rules"], "properties": { "schemaVersion": { "const": 1 }, "modes": { "type": "object", "additionalProperties": false, "required": ["InPlace", "Fresh"], "properties": { "InPlace": { "type": "object", "additionalProperties": false, "required": ["location"], "properties": { "location": { "const": "Preserve" } } }, "Fresh": { "type": "object", "additionalProperties": false, "required": ["location"], "properties": { "location": { "enum": ["Preserve", "NextEligible"] } } } } }, "limits": { "type": "object", "additionalProperties": false, "required": ["deploymentAttempts", "regionAttempts", "delaySeconds"], "properties": { "deploymentAttempts": { "type": "integer", "minimum": 1, "maximum": 3 }, "regionAttempts": { "type": "integer", "minimum": 1, "maximum": 3 }, "delaySeconds": { "type": "integer", "minimum": 0, "maximum": 60 } } }, "reads": { "type": "object", "additionalProperties": false, "required": ["attempts", "initialDelaySeconds"], "properties": { "attempts": { "type": "integer", "minimum": 1, "maximum": 3 }, "initialDelaySeconds": { "type": "integer", "minimum": 0, "maximum": 60 } } }, "observation": { "type": "object", "additionalProperties": false, "required": ["timeoutSeconds", "coordinatorTimeoutSeconds", "pollIntervalSeconds", "consecutiveTimeouts"], "properties": { "timeoutSeconds": { "type": "integer", "minimum": 1, "maximum": 3600 }, "coordinatorTimeoutSeconds": { "type": "integer", "minimum": 1, "maximum": 14400 }, "pollIntervalSeconds": { "type": "integer", "minimum": 0, "maximum": 60 }, "consecutiveTimeouts": { "type": "integer", "minimum": 1, "maximum": 3 } } }, "regions": { "type": "object", "additionalProperties": false, "required": ["allowed", "excluded"], "properties": { "allowed": { "$ref": "#/definitions/strings" }, "excluded": { "$ref": "#/definitions/strings" } } }, "wrappers": { "$ref": "#/definitions/strings" }, "rules": { "type": "array", "minItems": 1, "maxItems": 100, "items": { "type": "object", "additionalProperties": false, "required": ["id", "mode", "code", "messagePatterns"], "properties": { "id": { "type": "string", "pattern": "^[a-z][a-z0-9-]{0,79}$" }, "mode": { "enum": ["InPlace", "Fresh"] }, "code": { "type": "string", "pattern": "^[A-Za-z0-9]*$" }, "messagePatterns": { "type": "array", "minItems": 1, "maxItems": 8, "items": { "$ref": "#/definitions/pattern" } }, "parentCode": { "type": "string", "pattern": "^[A-Za-z][A-Za-z0-9]+$" }, "parentSingleDetail": { "type": "boolean" }, "parentTargetRequired": { "type": "boolean" }, "parentWithoutTarget": { "type": "boolean" }, "parentMessagePattern": { "$ref": "#/definitions/pattern" }, "targetTypes": { "$ref": "#/definitions/strings" }, "targetRequired": { "type": "boolean" }, "forbidTarget": { "type": "boolean" }, "allowEmptyDetails": { "type": "boolean" }, "regionCapture": { "$ref": "#/definitions/capture" }, "numberCaptures": { "type": "object", "propertyNames": { "$ref": "#/definitions/capture" }, "additionalProperties": { "type": "object", "additionalProperties": false, "required": ["exclusiveMinimum", "maximum"], "properties": { "exclusiveMinimum": { "type": "number" }, "maximum": { "type": "number" } } } }, "dateCaptures": { "type": "object", "propertyNames": { "$ref": "#/definitions/capture" }, "additionalProperties": { "enum": ["r", "yyyy-MM-dd"] } }, "listCaptures": { "type": "object", "propertyNames": { "$ref": "#/definitions/capture" }, "additionalProperties": { "type": "object", "additionalProperties": false, "required": ["maximumCount"], "properties": { "allowed": { "$ref": "#/definitions/strings" }, "excluded": { "$ref": "#/definitions/strings" }, "excludeRegion": { "type": "boolean" }, "maximumCount": { "type": "integer", "minimum": 1, "maximum": 100 } } } }, "jsonEquals": { "type": "object", "minProperties": 1, "propertyNames": { "$ref": "#/definitions/capture" }, "additionalProperties": { "type": ["string", "null"] } }, "jsonMessagePattern": { "$ref": "#/definitions/pattern" }, "headerNames": { "$ref": "#/definitions/strings" } } } } }, "definitions": { "capture": { "type": "string", "pattern": "^[A-Za-z][A-Za-z0-9]*$" }, "pattern": { "type": "string", "minLength": 1, "maxLength": 8192 }, "strings": { "type": "array", "minItems": 1, "maxItems": 100, "uniqueItems": true, "items": { "type": "string", "minLength": 1, "maxLength": 200 } } } } |