{ "$schema": "http://json-schema.org/draft-07/schema#", "title": "Step", "description": "Bitrise Step", "type": "object", "additionalProperties": false, "required": [ "title", "summary", "website", "support_url", "source_code_url" ], "if": { "properties": { "type_tags": { "contains": { "const": "notification" } } }, "required": [ "type_tags" ] }, "then": { "required": [ "title", "summary", "website", "support_url", "source_code_url", "is_always_run" ], "properties": { "is_always_run": { "const": true } } }, "properties": { "title": { "type": "string", "minLength": 1 }, "summary": { "type": "string", "pattern": "^.{1,100}$" }, "description": { "type": "string" }, "website": { "$ref": "#/definitions/URL" }, "source_code_url": { "$ref": "#/definitions/URL" }, "support_url": { "$ref": "#/definitions/URL" }, "published_at": { "type": "string", "format": "date-time" }, "source": { "$ref": "#/definitions/StepSourceModel" }, "project_type_tags": { "type": "array", "minItems": 1, "uniqueItems": true, "items": { "type": "string", "enum": [ "ios", "macos", "android", "react-native", "cordova", "ionic", "flutter", "kotlin-multiplatform", "node-js", "java", "web", "other" ] } }, "type_tags": { "type": "array", "minItems": 1, "uniqueItems": true, "items": { "type": "string", "enum": [ "access-control", "artifact-info", "build", "code-sign", "dependency", "deploy", "installer", "notification", "security", "test", "utility" ] } }, "toolkit": { "$ref": "#/definitions/StepToolkitModel" }, "deps": { "$ref": "#/definitions/DepsModel" }, "is_always_run": { "type": "boolean" }, "is_skippable": { "type": "boolean" }, "run_if": { "type": "string" }, "timeout": { "type": "integer", "exclusiveMinimum": 0 }, "meta": { "type": "object", "patternProperties": { ".*": { "additionalProperties": true } } }, "inputs": { "type": "array", "uniqueItems": true, "items": { "$ref": "#/definitions/InputEnvVar" } }, "outputs": { "type": "array", "uniqueItems": true, "items": { "$ref": "#/definitions/OutputEnvVar" } }, "executables": { "$ref": "#/definitions/ExecutablesModel" } }, "definitions": { "StepSourceModel": { "properties": { "git": { "type": "string" }, "commit": { "type": "string" } }, "additionalProperties": false, "type": "object" }, "URL": { "type": "string", "format": "uri", "pattern": "^https?://" }, "OutputEnvVar": { "type": "object", "maxProperties": 2, "minProperties": 1, "if": { "required": [ "opts" ] }, "then": { "minProperties": 2 }, "additionalProperties": { "type": [ "null", "string" ] }, "patternProperties": { "opts": { "$ref": "#/definitions/EnvVarOpts" } } }, "InputEnvVar": { "type": "object", "maxProperties": 2, "minProperties": 1, "allOf": [ { "if": { "required": [ "opts" ] }, "then": { "minProperties": 2 } }, { "if": { "required": [ "opts" ], "properties": { "opts": { "required": [ "value_options" ], "properties": { "value_options": { "type": "array", "minItems": 2, "items": { "type": "string" } } } } } }, "then": { "additionalProperties": { "type": "string", "minLength": 1 }, "patternProperties": { "opts": { "$ref": "#/definitions/EnvVarOpts" } } } } ], "additionalProperties": { "type": [ "null", "string" ] }, "patternProperties": { "opts": { "$ref": "#/definitions/EnvVarOpts" } } }, "EnvVarOpts": { "type": "object", "additionalProperties": false, "required": [ "title", "summary" ], "if": { "properties": { "is_sensitive": { "const": true } }, "required": [ "is_sensitive" ] }, "then": { "properties": { "is_expand": { "const": true } } }, "properties": { "is_expand": { "type": "boolean" }, "skip_if_empty": { "type": "boolean" }, "title": { "type": "string", "minLength": 1 }, "description": { "type": "string" }, "summary": { "type": "string", "minLength": 1 }, "category": { "type": "string" }, "value_options": { "type": "array", "minItems": 2, "items": { "type": "string" } }, "is_required": { "type": "boolean" }, "is_dont_change_value": { "type": "boolean" }, "is_template": { "type": "boolean" }, "is_sensitive": { "type": "boolean" }, "unset": { "type": "boolean" }, "meta": { "type": "object" } } }, "AptGetDepModel": { "type": "object", "additionalProperties": false, "required": [ "name" ], "properties": { "name": { "type": "string", "minLength": 1, "not": { "const": "go" } }, "bin_name": { "type": "string", "not": { "const": "go" } } } }, "BashStepToolkitModel": { "type": "object", "additionalProperties": false, "required": [ "entry_file" ], "properties": { "entry_file": { "type": "string", "minLength": 1 } } }, "BrewDepModel": { "type": "object", "additionalProperties": false, "required": [ "name" ], "properties": { "name": { "type": "string", "minLength": 1, "not": { "const": "go" } }, "bin_name": { "type": "string", "not": { "const": "go" } } } }, "CheckOnlyDepModel": { "type": "object", "additionalProperties": false, "required": [ "name" ], "properties": { "name": { "type": "string", "minLength": 1, "not": { "const": "go" } } } }, "DepsModel": { "type": "object", "additionalProperties": false, "properties": { "brew": { "type": "array", "items": { "$ref": "#/definitions/BrewDepModel" } }, "apt_get": { "type": "array", "items": { "$ref": "#/definitions/AptGetDepModel" } }, "check_only": { "type": "array", "items": { "$ref": "#/definitions/CheckOnlyDepModel" } } } }, "GoStepToolkitModel": { "type": "object", "additionalProperties": false, "required": [ "package_name" ], "properties": { "package_name": { "type": "string", "minLength": 1 } } }, "StepToolkitModel": { "type": "object", "additionalProperties": false, "minProperties": 1, "maxProperties": 1, "properties": { "bash": { "$ref": "#/definitions/BashStepToolkitModel" }, "go": { "$ref": "#/definitions/GoStepToolkitModel" } } }, "ExecutablesModel": { "type": "object", "additionalProperties": { "type": "object", "properties": { "storage_uri": { "type": "string" }, "hash": { "type": "string" } } } } } }