{"openapi":"3.1.0","info":{"title":"Port API","version":"1.0"},"components":{"securitySchemes":{"bearer":{"type":"apiKey","name":"Authorization","in":"header"}},"schemas":{"def-0":{"title":"JQ query","type":"object","properties":{"jqQuery":{"type":"string","description":"A [jq query](https://stedolan.github.io/jq/manual/) that resolves to `true` or `false`, determining the visibility of the input."}},"required":["jqQuery"],"additionalProperties":false},"def-1":{"title":"Entities query","type":"object","properties":{"combinator":{"enum":["and","or"],"description":"The combinator to use for the rules."},"rules":{"type":"array","items":{"anyOf":[{"type":"object","title":"Date Rule","properties":{"property":{"title":"Contexted property","oneOf":[{"type":"string"},{"type":"object","title":"User-context field","properties":{"property":{"type":"string"},"context":{"type":"string","enum":["user","userTeams"]}},"required":["property","context"]}]},"operator":{"enum":["between","notBetween","="]},"value":{"type":"object","oneOf":[{"type":"object","title":"Date Range","properties":{"from":{"type":"string","format":"date-time"},"to":{"type":"string","format":"date-time"}},"required":["from","to"]},{"type":"object","title":"Date Preset","properties":{"preset":{"type":"string","enum":["today","tomorrow","yesterday","lastDay","lastWeek","last2Weeks","lastMonth","last3Months","last6Months","last12Months","last2Years","last3Years","nextDay","nextWeek","next2Weeks","nextMonth","next3Months","next6Months","next12Months"]}},"required":["preset"]},{"type":"object","title":"User-context field","properties":{"property":{"type":"string"},"context":{"type":"string","enum":["user","userTeams"]}},"required":["property","context"]}]}},"required":["property","operator","value"],"additionalProperties":false},{"type":"object","title":"Empty Rule","oneOf":[{"type":"object","title":"Empty Rule","properties":{"operator":{"enum":["isEmpty","isNotEmpty"]},"property":{"type":"string"}},"required":["operator","property"],"additionalProperties":false}]},{"type":"object","title":"Number Rule","properties":{"property":{"title":"Contexted property","oneOf":[{"type":"string"},{"type":"object","title":"User-context field","properties":{"property":{"type":"string"},"context":{"type":"string","enum":["user","userTeams"]}},"required":["property","context"]}]},"operator":{"enum":[">",">=","<","<="]},"value":{"anyOf":[{"type":"number","title":"number"},{"type":"string","format":"date-time","title":"date-time"},{"type":"object","title":"User-context field","properties":{"property":{"type":"string"},"context":{"type":"string","enum":["user","userTeams"]}},"required":["property","context"]}]}},"required":["property","operator","value"],"additionalProperties":false},{"type":"object","title":"Expired Rule","oneOf":[{"type":"object","title":"Expired Rule","properties":{"operator":{"enum":["isExpired","isNotExpired"]},"property":{"type":"string"}},"required":["operator","property"],"additionalProperties":false}]},{"type":"object","title":"String Rule","oneOf":[{"type":"object","title":"String Rule","properties":{"property":{"title":"Contexted property","oneOf":[{"type":"string"},{"type":"object","title":"User-context field","properties":{"property":{"type":"string"},"context":{"type":"string","enum":["user","userTeams"]}},"required":["property","context"]}]},"operator":{"enum":["=","!=","containsAny","contains","doesNotContains","beginsWith","doesNotBeginsWith","endsWith","doesNotEndsWith","in","notIn"]},"value":{"anyOf":[{"type":"null","title":"null"},{"type":"string","title":"string"},{"type":"number","title":"number"},{"type":"boolean","title":"boolean"},{"type":"string","format":"date-time","title":"date-time"},{"type":"array","items":{"type":"string"},"title":"array"},{"type":"array","items":{"type":"number"},"title":"array"},{"type":"array","items":{"type":"boolean"},"title":"array"},{"type":"array","items":{"type":"string","format":"date-time"},"title":"array"},{"type":"object","title":"User-context field","properties":{"property":{"type":"string"},"context":{"type":"string","enum":["user","userTeams"]}},"required":["property","context"]}]}},"additionalProperties":false,"required":["property","operator","value"]}]},{"type":"object","title":"Relation Rule","properties":{"operator":{"enum":["relatedTo"]},"blueprint":{"type":"string"},"value":{"anyOf":[{"type":"string","title":"string"},{"type":"array","items":{"type":"string"},"title":"array"}]},"direction":{"enum":["upstream","downstream"]},"required":{"type":"boolean"}},"additionalProperties":false,"required":["operator","value","blueprint"]},{"type":"object","title":"Property schema rule","properties":{"propertySchema":{"type":"object","properties":{"type":{"type":"string"},"format":{"type":"string"},"items":{"type":"object","properties":{"type":{"type":"string"},"format":{"type":"string"}},"required":["type"]}},"required":["type"],"additionalProperties":false},"operator":{"enum":["=","!=","contains"]},"value":{"anyOf":[{"type":"null","title":"null"},{"type":"string","title":"string"},{"type":"number","title":"number"},{"type":"boolean","title":"boolean"}]}},"required":["operator","propertySchema"],"additionalProperties":false},{"type":"object","title":"matchAny Rule","anyOf":[{"type":"object","title":"Property matchAny rule","properties":{"property":{"oneOf":[{"type":"object","title":"Path filter property","properties":{"path":{"type":"array","minItems":1,"items":{"anyOf":[{"type":"string","title":"Relation identifier"},{"type":"object","title":"Relation with max hops","properties":{"relation":{"type":"string"},"maxHops":{"type":"number","minimum":1,"maximum":15}}}]}},"fromBlueprint":{"type":"string"}},"required":["path"],"additionalProperties":false},{"title":"Contexted property","oneOf":[{"type":"string"},{"type":"object","title":"User-context field","properties":{"property":{"type":"string"},"context":{"type":"string","enum":["user","userTeams"]}},"required":["property","context"]}]}]},"operator":{"type":"string","enum":["matchAny"]},"value":{"anyOf":[{"type":"array","items":{"type":"string"}},{"title":"Contexted property","oneOf":[{"type":"string"},{"type":"object","title":"User-context field","properties":{"property":{"type":"string"},"context":{"type":"string","enum":["user","userTeams"]}},"required":["property","context"]}]}]}},"required":["property","operator","value"],"additionalProperties":false}]},{"allOf":[{"$ref":"#/components/schemas/def-1"},{"title":"Nested query"}]}]}}},"required":["combinator","rules"],"additionalProperties":false,"example":{"combinator":"and","rules":[{"property":"$blueprint","operator":"=","value":"service"},{"combinator":"or","rules":[{"property":"environment","operator":"=","value":"production"},{"property":"environment","operator":"=","value":"staging"}]}]}},"def-2":{"title":"Entities query with JQ","type":"object","properties":{"combinator":{"enum":["and","or"],"description":"The combinator to use for the rules."},"rules":{"type":"array","items":{"anyOf":[{"type":"object","title":"Date Rule","properties":{"property":{"title":"Contexted property","oneOf":[{"type":"string"},{"type":"object","title":"User-context field","properties":{"property":{"type":"string"},"context":{"type":"string","enum":["user","userTeams"]}},"required":["property","context"]}]},"operator":{"enum":["between","notBetween","="]},"value":{"type":"object","oneOf":[{"type":"object","title":"Date Range","properties":{"from":{"type":"string","format":"date-time"},"to":{"type":"string","format":"date-time"}},"required":["from","to"]},{"type":"object","title":"Date Preset","properties":{"preset":{"type":"string","enum":["today","tomorrow","yesterday","lastDay","lastWeek","last2Weeks","lastMonth","last3Months","last6Months","last12Months","last2Years","last3Years","nextDay","nextWeek","next2Weeks","nextMonth","next3Months","next6Months","next12Months"]}},"required":["preset"]},{"type":"object","title":"User-context field","properties":{"property":{"type":"string"},"context":{"type":"string","enum":["user","userTeams"]}},"required":["property","context"]}]}},"required":["property","operator","value"],"additionalProperties":false},{"type":"object","title":"Empty Rule","oneOf":[{"type":"object","title":"Empty Rule","properties":{"operator":{"enum":["isEmpty","isNotEmpty"]},"property":{"type":"string"}},"required":["operator","property"],"additionalProperties":false}]},{"type":"object","title":"Expired Rule","oneOf":[{"type":"object","title":"Expired Rule","properties":{"operator":{"enum":["isExpired","isNotExpired"]},"property":{"type":"string"}},"required":["operator","property"],"additionalProperties":false}]},{"type":"object","title":"Number Rule","properties":{"property":{"title":"Contexted property","oneOf":[{"type":"string"},{"type":"object","title":"User-context field","properties":{"property":{"type":"string"},"context":{"type":"string","enum":["user","userTeams"]}},"required":["property","context"]}]},"operator":{"enum":[">",">=","<","<="]},"value":{"anyOf":[{"type":"number","title":"number"},{"type":"string","format":"date-time","title":"date-time"},{"$ref":"#/components/schemas/def-0"},{"type":"object","title":"User-context field","properties":{"property":{"type":"string"},"context":{"type":"string","enum":["user","userTeams"]}},"required":["property","context"]}]}},"required":["property","operator","value"],"additionalProperties":false},{"type":"object","title":"String Rule","oneOf":[{"type":"object","title":"String Rule","properties":{"property":{"title":"Contexted property","oneOf":[{"type":"string"},{"type":"object","title":"User-context field","properties":{"property":{"type":"string"},"context":{"type":"string","enum":["user","userTeams"]}},"required":["property","context"]}]},"operator":{"enum":["=","!=","containsAny","contains","doesNotContains","beginsWith","doesNotBeginsWith","endsWith","doesNotEndsWith","in","notIn"]},"value":{"anyOf":[{"type":"null","title":"null"},{"type":"string","title":"string"},{"type":"number","title":"number"},{"type":"boolean","title":"boolean"},{"type":"string","format":"date-time","title":"date-time"},{"type":"array","items":{"type":"string"},"title":"array"},{"type":"array","items":{"type":"number"},"title":"array"},{"type":"array","items":{"type":"boolean"},"title":"array"},{"type":"array","items":{"type":"string","format":"date-time"},"title":"array"},{"$ref":"#/components/schemas/def-0"},{"type":"object","title":"User-context field","properties":{"property":{"type":"string"},"context":{"type":"string","enum":["user","userTeams"]}},"required":["property","context"]}]}},"additionalProperties":false,"required":["property","operator","value"]}]},{"type":"object","title":"Relation Rule","properties":{"operator":{"enum":["relatedTo"]},"blueprint":{"type":"string"},"value":{"anyOf":[{"type":"string","title":"string"},{"type":"array","items":{"type":"string"},"title":"array"},{"$ref":"#/components/schemas/def-0"}]},"direction":{"enum":["upstream","downstream"]},"required":{"type":"boolean"}},"additionalProperties":false,"required":["operator","value","blueprint"]},{"type":"object","title":"Property schema rule","properties":{"propertySchema":{"type":"object","properties":{"type":{"type":"string"},"format":{"type":"string"},"items":{"type":"object","properties":{"type":{"type":"string"},"format":{"type":"string"}},"required":["type"]}},"required":["type"],"additionalProperties":false},"operator":{"enum":["=","!=","contains"]},"value":{"anyOf":[{"type":"null","title":"null"},{"type":"string","title":"string"},{"type":"number","title":"number"},{"type":"boolean","title":"boolean"},{"$ref":"#/components/schemas/def-0"}]}},"required":["operator","propertySchema"],"additionalProperties":false},{"type":"object","title":"matchAny Rule","anyOf":[{"type":"object","title":"Property matchAny rule","properties":{"property":{"oneOf":[{"type":"object","title":"Path filter property","properties":{"path":{"type":"array","minItems":1,"items":{"anyOf":[{"type":"string","title":"Relation identifier"},{"type":"object","title":"Relation with max hops","properties":{"relation":{"type":"string"},"maxHops":{"type":"number","minimum":1,"maximum":15}}}]}},"fromBlueprint":{"type":"string"}},"required":["path"],"additionalProperties":false},{"title":"Contexted property","oneOf":[{"type":"string"},{"type":"object","title":"User-context field","properties":{"property":{"type":"string"},"context":{"type":"string","enum":["user","userTeams"]}},"required":["property","context"]}]}]},"operator":{"type":"string","enum":["matchAny"]},"value":{"anyOf":[{"type":"array","items":{"type":"string"}},{"title":"Contexted property","oneOf":[{"type":"string"},{"type":"object","title":"User-context field","properties":{"property":{"type":"string"},"context":{"type":"string","enum":["user","userTeams"]}},"required":["property","context"]}]}]}},"required":["property","operator","value"],"additionalProperties":false}]},{"allOf":[{"$ref":"#/components/schemas/def-2"},{"title":"Nested query"}]}]}}},"required":["combinator","rules"],"additionalProperties":false},"def-3":{"type":"object","properties":{"id":{"type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"type":"string","enum":["dashboard-widget"]},"layout":{"type":"array","items":{"type":"object","properties":{"height":{"type":"number"},"columns":{"type":"array","items":{"type":"object","properties":{"size":{"type":"number"},"id":{"type":"string"}},"additionalProperties":false,"required":["size","id"]}}},"additionalProperties":false,"required":["columns","height"]}},"widgets":{"type":"array","items":{"$ref":"#/components/schemas/def-8"}},"fullPage":{"type":"boolean"}},"additionalProperties":false,"required":["type","layout","widgets"],"title":"/schemas/dashboardWidget"},"def-4":{"type":"object","properties":{"id":{"type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"type":"string","enum":["grouper"]},"title":{"type":"string"},"displayMode":{"type":"string","enum":["tabs","switch"]},"activeGroupUrlParam":{"type":"string"},"groupsOrder":{"type":"array","items":{"type":"string"}},"groups":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"icon":{"type":"string"},"widgets":{"type":"array","items":{"$ref":"#/components/schemas/def-8"}}},"additionalProperties":false,"required":["title","widgets"]}}},"additionalProperties":false,"required":["type","groups","displayMode"],"title":"/schemas/grouperWidget"},"def-5":{"title":"Search identifier query","type":"object","properties":{"combinator":{"enum":["and","or"]},"rules":{"type":"array","description":"A search query to define the entity's identifier based on a property of the entity.<br/>Read more [here](https://docs.port.io/context-lake/ingestion/configure-mapping/overview#map-by-property).","items":{"anyOf":[{"type":"object","title":"`=` rule","properties":{"property":{"type":"string"},"operator":{"enum":["="]},"value":{"anyOf":[{"type":"string","title":"String"},{"type":"number","title":"Number"},{"type":"null"}]}},"additionalProperties":false,"required":["property","operator","value"]},{"type":"object","title":"`in` rule","properties":{"property":{"type":"string"},"operator":{"enum":["in","containsAny"]},"value":{"type":"array","items":{"type":"string"},"errorMessage":"must be an array of strings when the operator is 'in' or 'containsAny'"}},"additionalProperties":false,"required":["property","operator","value"]},{"type":"object","title":"`contains` rule","properties":{"property":{"type":"string"},"operator":{"enum":["contains"]},"value":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}},{"type":"null"}]}},"additionalProperties":false,"required":["property","operator","value"]},{"allOf":[{"$ref":"#/components/schemas/def-5"},{"title":"Nested query"}]}]}}},"required":["combinator","rules"],"additionalProperties":false},"def-6":{"title":"Search relations query","type":"object","properties":{"combinator":{"enum":["and","or"]},"rules":{"type":"array","description":"A search query to define the entity's identifier based on a property of the entity.<br/>Read more [here](https://docs.port.io/context-lake/ingestion/configure-mapping/overview#map-by-property).","items":{"anyOf":[{"type":"object","title":"`=` rule","properties":{"property":{"type":"string"},"operator":{"enum":["="]},"value":{"anyOf":[{"type":"string","title":"String"},{"type":"number","title":"Number"},{"type":"null"}]}},"additionalProperties":false,"required":["property","operator","value"]},{"type":"object","title":"`in` rule","properties":{"property":{"type":"string"},"operator":{"enum":["in","containsAny"]},"value":{"type":"array","items":{"type":"string"},"errorMessage":"must be an array of strings when the operator is 'in' or 'containsAny'"}},"additionalProperties":false,"required":["property","operator","value"]},{"type":"object","title":"`contains` rule","properties":{"property":{"type":"string"},"operator":{"enum":["contains"]},"value":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}},{"type":"null"}]}},"additionalProperties":false,"required":["property","operator","value"]},{"allOf":[{"$ref":"#/components/schemas/def-6"},{"title":"Nested query"}]}]}}},"required":["combinator","rules"],"additionalProperties":false},"def-7":{"title":"Entities query","type":"object","properties":{"combinator":{"enum":["and","or"]},"rules":{"type":"array","items":{"anyOf":[{"type":"object","title":"Date Rule","properties":{"property":{"title":"Contexted property","oneOf":[{"type":"string"},{"type":"object","title":"User-context field","properties":{"property":{"type":"string"},"context":{"type":"string","enum":["user","userTeams"]}},"required":["property","context"]}]},"operator":{"enum":["between","notBetween","="]},"value":{"type":"object","oneOf":[{"type":"object","title":"Date Range","properties":{"from":{"type":"string","format":"date-time"},"to":{"type":"string","format":"date-time"}},"required":["from","to"]},{"type":"object","title":"Date Preset","properties":{"preset":{"type":"string","enum":["today","tomorrow","yesterday","lastDay","lastWeek","last2Weeks","lastMonth","last3Months","last6Months","last12Months","last2Years","last3Years","nextDay","nextWeek","next2Weeks","nextMonth","next3Months","next6Months","next12Months"]}},"required":["preset"]},{"type":"object","title":"User-context field","properties":{"property":{"type":"string"},"context":{"type":"string","enum":["user","userTeams"]}},"required":["property","context"]}]}},"required":["property","operator","value"],"additionalProperties":false},{"type":"object","title":"Empty Rule","oneOf":[{"title":"Property empty rule","properties":{"operator":{"enum":["isEmpty","isNotEmpty"]},"property":{"type":"string"}},"required":["operator","property"],"additionalProperties":false},{"title":"Relation empty rule","properties":{"operator":{"enum":["isEmpty","isNotEmpty"]},"targetProperty":{"type":"string","enum":["$title","$identifier"]},"relation":{"type":"string"}},"required":["operator","relation"],"additionalProperties":false},{"title":"Scorecard empty rule","properties":{"operator":{"enum":["isEmpty","isNotEmpty"]},"scorecardRule":{"type":"string"},"scorecard":{"type":"string"}},"required":["operator","scorecard"],"additionalProperties":false}]},{"type":"object","title":"Expired Rule","oneOf":[{"type":"object","title":"Expired Rule","properties":{"operator":{"enum":["isExpired","isNotExpired"]},"property":{"type":"string"}},"required":["operator","property"],"additionalProperties":false}]},{"type":"object","title":"Number Rule","properties":{"property":{"title":"Contexted property","oneOf":[{"type":"string"},{"type":"object","title":"User-context field","properties":{"property":{"type":"string"},"context":{"type":"string","enum":["user","userTeams"]}},"required":["property","context"]}]},"operator":{"enum":[">",">=","<","<="]},"value":{"anyOf":[{"type":"number","title":"number"},{"type":"string","format":"date-time","title":"date-time"},{"type":"object","title":"User-context field","properties":{"property":{"type":"string"},"context":{"type":"string","enum":["user","userTeams"]}},"required":["property","context"]}]}},"required":["property","operator","value"],"additionalProperties":false},{"type":"object","title":"String Rule","oneOf":[{"type":"object","title":"Property string rule","properties":{"property":{"title":"Contexted property","oneOf":[{"type":"string"},{"type":"object","title":"User-context field","properties":{"property":{"type":"string"},"context":{"type":"string","enum":["user","userTeams"]}},"required":["property","context"]}]},"operator":{"enum":["=","!=","containsAny","contains","doesNotContains","beginsWith","doesNotBeginsWith","endsWith","doesNotEndsWith","in","notIn"]},"value":{"anyOf":[{"type":"null"},{"type":"string","title":"string"},{"type":"number","title":"number"},{"type":"boolean","title":"boolean"},{"type":"array","items":{"type":"string"},"title":"array"},{"type":"array","items":{"type":"number"},"title":"array"},{"type":"array","items":{"type":"boolean"},"title":"array"},{"type":"array","items":{"type":"string","format":"date-time"},"title":"array"},{"type":"string","format":"date-time","title":"date-time"},{"type":"object","title":"User-context field","properties":{"property":{"type":"string"},"context":{"type":"string","enum":["user","userTeams"]}},"required":["property","context"]}]}},"additionalProperties":false,"required":["property","operator","value"]},{"type":"object","title":"Relation string rule","properties":{"relation":{"type":"string"},"targetProperty":{"type":"string","enum":["$title","$identifier"]},"operator":{"enum":["=","!=","containsAny","contains","doesNotContains","beginsWith","doesNotBeginsWith","endsWith","doesNotEndsWith","in","notIn"]},"value":{"anyOf":[{"type":"null"},{"type":"string","title":"string"},{"type":"number","title":"number"},{"type":"boolean","title":"boolean"},{"type":"array","items":{"type":"string"},"title":"array"},{"type":"array","items":{"type":"number"},"title":"array"},{"type":"array","items":{"type":"boolean"},"title":"array"},{"type":"array","items":{"type":"string","format":"date-time"},"title":"array"},{"type":"string","format":"date-time","title":"date-time"}]}},"additionalProperties":false,"required":["relation","operator","value"]},{"type":"object","title":"Scorecard string rule","properties":{"scorecard":{"type":"string"},"scorecardRule":{"type":"string"},"operator":{"enum":["=","!=","containsAny","contains","doesNotContains","beginsWith","doesNotBeginsWith","endsWith","doesNotEndsWith","in","notIn"]},"value":{"anyOf":[{"type":"null"},{"type":"string","title":"string"},{"type":"number","title":"number"},{"type":"boolean","title":"boolean"},{"type":"array","items":{"type":"string"},"title":"array"},{"type":"array","items":{"type":"number"},"title":"array"},{"type":"array","items":{"type":"boolean"},"title":"array"},{"type":"array","items":{"type":"string","format":"date-time"},"title":"array"},{"type":"string","format":"date-time","title":"date-time"}]}},"additionalProperties":false,"required":["scorecard","operator","value"]}]},{"type":"object","title":"Relation Rule","properties":{"operator":{"enum":["relatedTo"]},"blueprint":{"type":"string"},"value":{"anyOf":[{"type":"string","title":"string"},{"type":"array","items":{"type":"string"},"title":"array"}]},"direction":{"enum":["upstream","downstream"]},"required":{"type":"boolean"}},"additionalProperties":false,"required":["operator","value","blueprint"]},{"type":"object","title":"All properties search filter","properties":{"operator":{"enum":["allPropertiesSearch"]},"value":{"type":"string","minLength":1},"properties":{"type":"array","items":{"type":"string"},"minItems":1}},"required":["operator","value"],"additionalProperties":false},{"type":"object","title":"Property schema rule","properties":{"propertySchema":{"type":"object","properties":{"type":{"type":"string"},"format":{"type":"string"},"items":{"type":"object","properties":{"type":{"type":"string"},"format":{"type":"string"}},"required":["type"]}},"required":["type"],"additionalProperties":false},"operator":{"enum":["=","!=","contains"]},"value":{"anyOf":[{"type":"null","title":"null"},{"type":"string","title":"string"},{"type":"number","title":"number"},{"type":"boolean","title":"boolean"}]}},"required":["operator","propertySchema"],"additionalProperties":false},{"type":"object","title":"matchAny Rule","anyOf":[{"type":"object","title":"Property matchAny rule","properties":{"property":{"oneOf":[{"type":"object","title":"Path filter property","properties":{"path":{"type":"array","minItems":1,"items":{"anyOf":[{"type":"string","title":"Relation identifier"},{"type":"object","title":"Relation with max hops","properties":{"relation":{"type":"string"},"maxHops":{"type":"number","minimum":1,"maximum":15}}}]}},"fromBlueprint":{"type":"string"}},"required":["path"],"additionalProperties":false},{"title":"Contexted property","oneOf":[{"type":"string"},{"type":"object","title":"User-context field","properties":{"property":{"type":"string"},"context":{"type":"string","enum":["user","userTeams"]}},"required":["property","context"]}]}]},"operator":{"type":"string","enum":["matchAny"]},"value":{"anyOf":[{"type":"array","items":{"type":"string"}},{"title":"Contexted property","oneOf":[{"type":"string"},{"type":"object","title":"User-context field","properties":{"property":{"type":"string"},"context":{"type":"string","enum":["user","userTeams"]}},"required":["property","context"]}]}]}},"required":["property","operator","value"],"additionalProperties":false}]},{"allOf":[{"$ref":"#/components/schemas/def-7"},{"title":"Nested query"}]}]}}},"required":["combinator","rules"],"additionalProperties":false},"def-8":{"type":"object","anyOf":[{"type":"object","properties":{"id":{"type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"enum":["ai-agent"]},"title":{"type":"string"},"description":{"type":"string"},"agentIdentifier":{"type":"string"},"icon":{"type":"string"},"useMCP":{"type":"boolean"}},"additionalProperties":false,"required":["type","agentIdentifier"]},{"type":"object","properties":{"id":{"type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"enum":["entity-info"]},"title":{"type":"string"},"description":{"type":"string"},"icon":{"type":"string"},"entity":{"type":"string"},"hiddenQuery":{"type":"array","items":{"type":"string"}},"order":{"type":"array","items":{"type":"string"}},"showEmptyValues":{"type":"boolean"},"blueprint":{"type":"string"}},"additionalProperties":false,"required":["type","entity","blueprint"]},{"type":"object","properties":{"id":{"type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"enum":["entity-details"]},"title":{"type":"string"},"description":{"type":"string"},"icon":{"type":"string"},"entity":{"type":"string"},"hiddenQuery":{"type":"array","items":{"type":"string"}},"order":{"type":"array","items":{"type":"string"}},"showEmptyValues":{"type":"boolean"},"blueprint":{"type":"string"}},"additionalProperties":false,"required":["type","entity","blueprint"]},{"type":"object","properties":{"id":{"type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"enum":["action-runs-table-widget"]},"icon":{"type":"string"},"description":{"type":"string"},"title":{"type":"string"},"displayMode":{"type":"string","enum":["single","widget"]},"action":{"type":"string"},"tableConfig":{"type":"object","properties":{"filterSettings":{"type":"object","properties":{"filterBy":{"$ref":"#/components/schemas/def-1"}},"additionalProperties":false,"required":["filterBy"]},"groupSettings":{"type":"object","properties":{"groupBy":{"type":"array","items":{"type":"string"}}},"additionalProperties":false,"required":["groupBy"]},"sortSettings":{"type":"object","properties":{"sortBy":{"type":"array","items":{"type":"object","properties":{"property":{"type":"string"},"order":{"enum":["asc","desc"]}},"additionalProperties":false,"required":["property","order"]}}},"additionalProperties":false},"propertiesSettings":{"type":"object","properties":{"hidden":{"type":"array","items":{"type":"string"}},"order":{"type":"array","items":{"type":"string"}}},"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":false,"required":["type","action"]},{"type":"object","properties":{"id":{"type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"enum":["action-card-widget"]},"icon":{"type":"string"},"description":{"type":"string"},"title":{"type":"string"},"actions":{"type":"array","items":{"type":"object","properties":{"action":{"type":"string"}},"required":["action"]},"minItems":1}},"additionalProperties":false,"required":["type","actions"]},{"type":"object","properties":{"id":{"type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"enum":["workflow-card-widget"]},"icon":{"type":"string"},"description":{"type":"string"},"title":{"type":"string"},"items":{"type":"array","items":{"type":"object","properties":{"workflowIdentifier":{"type":"string"},"triggerIdentifier":{"type":"string"}},"required":["workflowIdentifier"]},"minItems":1}},"additionalProperties":false,"required":["type","title","items"]},{"type":"object","properties":{"id":{"type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"enum":["workflow-runs-table-widget"]},"icon":{"type":"string"},"description":{"type":"string"},"title":{"type":"string"},"workflowIdentifiers":{"type":"array","items":{"type":"string"}},"statuses":{"type":"array","items":{"type":"string","enum":["SUCCESS","FAILED","CANCELLED","CANCELLING","WAITING_FOR_INPUT","IN_PROGRESS"]}},"timeRange":{"type":"object","properties":{"preset":{"type":"string","enum":["today","yesterday","lastDay","lastWeek","last2Weeks","lastMonth","last3Months"]}},"required":["preset"],"additionalProperties":false},"tableConfig":{"type":"object","properties":{"filterSettings":{"type":"object","properties":{"filterBy":{"$ref":"#/components/schemas/def-1"}},"additionalProperties":false,"required":["filterBy"]},"groupSettings":{"type":"object","properties":{"groupBy":{"type":"array","items":{"type":"string"}}},"additionalProperties":false,"required":["groupBy"]},"sortSettings":{"type":"object","properties":{"sortBy":{"type":"array","items":{"type":"object","properties":{"property":{"type":"string"},"order":{"enum":["asc","desc"]}},"additionalProperties":false,"required":["property","order"]}}},"additionalProperties":false},"propertiesSettings":{"type":"object","properties":{"hidden":{"type":"array","items":{"type":"string"}},"order":{"type":"array","items":{"type":"string"}}},"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":false,"required":["type","title","workflowIdentifiers"]},{"type":"object","properties":{"id":{"type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"enum":["links-widget"]},"title":{"type":"string"},"description":{"type":"string"},"icon":{"type":"string"},"links":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string","minLength":1},"description":{"type":"string"},"url":{"type":"string"},"icon":{"type":"string"}},"additionalProperties":false,"required":["title","url"]}}},"additionalProperties":false,"required":["type","links"]},{"type":"object","properties":{"id":{"type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"enum":["table-entities-explorer"]},"icon":{"type":"string"},"description":{"type":"string"},"emptyStateText":{"type":"string"},"title":{"type":"string"},"blueprint":{"type":"string"},"dataset":{"$ref":"#/components/schemas/def-1"},"excludedFields":{"type":"array","items":{"type":"string"}},"displayMode":{"type":"string","enum":["tabs","single","widget"]},"entitiesQueryMode":{"type":"string","enum":["standard","optimized"]},"entitiesQueryMaxResults":{"type":"number","enum":[100,1000,10000,100000]},"blueprintConfig":{"type":"object","propertyNames":{"pattern":"^(?!\\.{1,2}$)[\\p{L}0-9@_.+:\\\\/='-]+$"},"additionalProperties":{"type":"object","properties":{"filterSettings":{"type":"object","properties":{"filterBy":{"$ref":"#/components/schemas/def-1"}},"additionalProperties":false,"required":["filterBy"]},"groupSettings":{"type":"object","properties":{"groupBy":{"type":"array","items":{"type":"string"}}},"additionalProperties":false,"required":["groupBy"]},"sortSettings":{"type":"object","properties":{"sortBy":{"type":"array","items":{"type":"object","properties":{"property":{"type":"string"},"order":{"enum":["asc","desc"]}},"additionalProperties":false,"required":["property","order"]}}},"additionalProperties":false},"propertiesSettings":{"type":"object","properties":{"hidden":{"type":"array","items":{"type":"string"}},"shown":{"type":"array","items":{"type":"string"}},"order":{"type":"array","items":{"type":"string"}}},"additionalProperties":false},"columnsOrder":{"type":"array","items":{"type":"string"}},"cardsOrder":{"type":"object","additionalProperties":{"type":"string"}},"tabIndex":{"type":"number"},"hidden":{"type":"boolean"},"title":{"type":"string","maxLength":20},"description":{"type":"string"}},"additionalProperties":false}},"showOnlyRelatedEntities":{"type":"boolean"}},"additionalProperties":false,"required":["type","dataset"],"allOf":[{"if":{"properties":{"entitiesQueryMaxResults":{"type":"number"}},"required":["entitiesQueryMaxResults"]},"then":{"properties":{"entitiesQueryMode":{"enum":["optimized"]}},"required":["entitiesQueryMode"]}}]},{"type":"object","properties":{"id":{"type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"enum":["board"]},"icon":{"type":"string"},"description":{"type":"string"},"emptyStateText":{"type":"string"},"title":{"type":"string"},"blueprint":{"type":"string"},"dataset":{"$ref":"#/components/schemas/def-1"},"excludedFields":{"type":"array","items":{"type":"string"}},"entitiesQueryMode":{"type":"string","enum":["optimized"]},"entitiesQueryMaxResults":{"type":"number","enum":[100,1000,10000,100000]},"blueprintConfig":{"type":"object","minProperties":1,"propertyNames":{"pattern":"^(?!\\.{1,2}$)[\\p{L}0-9@_.+:\\\\/='-]+$"},"additionalProperties":{"type":"object","properties":{"filterSettings":{"type":"object","properties":{"filterBy":{"$ref":"#/components/schemas/def-1"}},"additionalProperties":false,"required":["filterBy"]},"groupSettings":{"type":"object","properties":{"groupBy":{"type":"array","items":{"type":"string"},"minItems":1,"maxItems":1}},"additionalProperties":false,"required":["groupBy"]},"sortSettings":{"type":"object","properties":{"sortBy":{"type":"array","items":{"type":"object","properties":{"property":{"type":"string"},"order":{"enum":["asc","desc"]}},"additionalProperties":false,"required":["property","order"]}}},"additionalProperties":false},"propertiesSettings":{"type":"object","properties":{"hidden":{"type":"array","items":{"type":"string"}},"shown":{"type":"array","items":{"type":"string"}},"order":{"type":"array","items":{"type":"string"}}},"additionalProperties":false},"columnsOrder":{"type":"array","items":{"type":"string"}},"cardsOrder":{"type":"object","additionalProperties":{"type":"string"}},"tabIndex":{"type":"number"},"hidden":{"type":"boolean"},"title":{"type":"string","maxLength":20},"description":{"type":"string"}},"additionalProperties":false,"required":["groupSettings"]}},"showOnlyRelatedEntities":{"type":"boolean"},"showEmptyValues":{"type":"boolean"}},"additionalProperties":false,"required":["type","dataset","blueprintConfig"]},{"type":"object","properties":{"id":{"type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"enum":["table-entities-explorer-by-direction"]},"title":{"type":"string"},"blueprintConfig":{"type":"object","propertyNames":{"pattern":"^[A-Za-z0-9@_.:\\\\/=-]*\\$(specificpath|upstream|downstream|custom)(\\$[A-Za-z0-9@_.:\\\\/=-]+)*$"},"additionalProperties":{"type":"object","properties":{"filterSettings":{"type":"object","properties":{"filterBy":{"$ref":"#/components/schemas/def-1"}},"additionalProperties":false,"required":["filterBy"]},"groupSettings":{"type":"object","properties":{"groupBy":{"type":"array","items":{"type":"string"}}},"additionalProperties":false,"required":["groupBy"]},"sortSettings":{"type":"object","properties":{"sortBy":{"type":"array","items":{"type":"object","properties":{"property":{"type":"string"},"order":{"enum":["asc","desc"]}},"additionalProperties":false,"required":["property","order"]}}},"additionalProperties":false},"propertiesSettings":{"type":"object","properties":{"hidden":{"type":"array","items":{"type":"string"}},"shown":{"type":"array","items":{"type":"string"}},"order":{"type":"array","items":{"type":"string"}}},"additionalProperties":false},"tabIndex":{"type":"number"},"hidden":{"type":"boolean"},"title":{"type":"string","maxLength":20},"description":{"type":"string"},"dataset":{"$ref":"#/components/schemas/def-1"},"targetBlueprint":{"type":"string"},"relatedProperty":{"type":"string"}},"additionalProperties":false}}},"additionalProperties":false,"required":["type"]},{"type":"object","properties":{"id":{"type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"enum":["table-audit-log"]},"title":{"type":"string"},"description":{"type":"string"},"query":{"type":"object","properties":{"identifier":{"type":"string","description":"An identifier of the log event you want to fetch."},"entity":{"type":"string","description":"Fetch all audit logs related to the specified entity."},"include_deleted_entities":{"type":"boolean","description":"Include deleted entities when searching for audit logs. This requires the `entity`, `blueprint`, `status`, `from` and `to` parameters. And the diff between `from` & `to` is limited to 1 day."},"blueprint":{"type":"string","description":"Fetch all audit logs related to the specified blueprint."},"run_id":{"type":"string","description":"Fetch all audit logs related to the specified action run."},"webhookId":{"type":"string","description":"Fetch all audit logs related to the specified webhook."},"webhookEventId":{"type":"string","description":"Fetch all audit logs related to the specified webhook event."},"origin":{"type":"array","items":{"type":"string"},"description":"Fetch all audit logs coming from the specified origin/s. This refers to the integration/s that triggered the log. For operations performed via Port's UI, the origin will be `UI`."},"InstallationId":{"type":"string","description":"Fetch all audit logs related to the specified integration."},"resources":{"anyOf":[{"type":"array","items":{"type":"string","enum":["entity","blueprint_permission","blueprint","run","webhook","action","action_permission","scorecard","integration","secret"]}},{"type":"string","enum":["entity","blueprint_permission","blueprint","run","webhook","action","action_permission","scorecard","integration","secret"]}],"description":"Fetch all audit logs related to the specified resource type/s.<br/>**Possible values**: [`blueprint`, `entity`, `run`, `webhook`, `scorecard`, `action`, `integration`]<br/>The `integration` value is **experimental** and may change in future API versions."},"includes":{"type":"array","items":{"enum":["action","context","diff","identifier","resourceType","status","trigger","additionalData","message"]},"description":"The fields you want to include in the response. If used, only the specified fields will be included in the response."},"from":{"type":"string","format":"date-time","description":"The starting timestamp of the audit logs you want to fetch, in the ISO format `2022-04-23T18:25:43.511Z`."},"to":{"type":"string","format":"date-time","description":"The ending timestamp of the audit logs you want to fetch, in the ISO format `2022-04-23T18:25:43.511Z`."},"action":{"type":"string","description":"Fetch all audit logs with the specified action type - `CREATE`, `UPDATE`, or `DELETE`."},"status":{"type":"string","enum":["SUCCESS","FAILURE"],"description":"Fetch all audit logs with the specified status."},"limit":{"type":"number","description":"The maximum number of logs to return. Optional; defaults to `10000`. The previous default was `100000`, which could cause `504 Gateway Timeout` on large accounts. Use a lower value or narrow `from` and `to` if you still hit timeouts."},"actionType":{"type":"string","enum":["automation","self-service"]}},"additionalProperties":false},"tableConfig":{"type":"object","properties":{"filterSettings":{"type":"object","properties":{"filterBy":{"$ref":"#/components/schemas/def-1"}},"additionalProperties":false,"required":["filterBy"]},"groupSettings":{"type":"object","properties":{"groupBy":{"type":"array","items":{"type":"string"}}},"additionalProperties":false,"required":["groupBy"]},"sortSettings":{"type":"object","properties":{"sortBy":{"type":"array","items":{"type":"object","properties":{"property":{"type":"string"},"order":{"enum":["asc","desc"]}},"additionalProperties":false,"required":["property","order"]}}},"additionalProperties":false},"propertiesSettings":{"type":"object","properties":{"hidden":{"type":"array","items":{"type":"string"}},"order":{"type":"array","items":{"type":"string"}}},"additionalProperties":false}}}},"additionalProperties":false,"required":["type","query"]},{"type":"object","properties":{"id":{"type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"enum":["users-table"]},"title":{"type":"string"},"query":{"type":"object","properties":{"team":{"type":"string"}}},"tableConfig":{"type":"object","properties":{"filterSettings":{"type":"object","properties":{"filterBy":{"$ref":"#/components/schemas/def-1"}},"additionalProperties":false,"required":["filterBy"]},"groupSettings":{"type":"object","properties":{"groupBy":{"type":"array","items":{"type":"string"}}},"additionalProperties":false,"required":["groupBy"]},"sortSettings":{"type":"object","properties":{"sortBy":{"type":"array","items":{"type":"object","properties":{"property":{"type":"string"},"order":{"enum":["asc","desc"]}},"additionalProperties":false,"required":["property","order"]}}},"additionalProperties":false},"propertiesSettings":{"type":"object","properties":{"hidden":{"type":"array","items":{"type":"string"}},"order":{"type":"array","items":{"type":"string"}}},"additionalProperties":false}}}},"additionalProperties":false,"required":["type"]},{"type":"object","properties":{"id":{"type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"enum":["teams-table"]},"title":{"type":"string"},"query":{"type":"object","properties":{"user":{"type":"string"}}},"tableConfig":{"type":"object","properties":{"filterSettings":{"type":"object","properties":{"filterBy":{"$ref":"#/components/schemas/def-1"}},"additionalProperties":false,"required":["filterBy"]},"groupSettings":{"type":"object","properties":{"groupBy":{"type":"array","items":{"type":"string"}}},"additionalProperties":false,"required":["groupBy"]},"sortSettings":{"type":"object","properties":{"sortBy":{"type":"array","items":{"type":"object","properties":{"property":{"type":"string"},"order":{"enum":["asc","desc"]}},"additionalProperties":false,"required":["property","order"]}}},"additionalProperties":false},"propertiesSettings":{"type":"object","properties":{"hidden":{"type":"array","items":{"type":"string"}},"order":{"type":"array","items":{"type":"string"}}},"additionalProperties":false}}}},"additionalProperties":false,"required":["type"]},{"type":"object","properties":{"id":{"type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"enum":["runs-table"]},"title":{"type":"string"},"query":{"type":"object","properties":{"entity":{"type":"string","description":"The identifier of the entity associated with the action run."},"blueprint":{"type":"string","description":"The identifier of the blueprint associated with the action run."},"active":{"type":"boolean","description":"If `true`, only running action runs will be fetched."},"user_email":{"type":"string","description":"The email of the user who initiated the action run."},"user_id":{"type":"string","description":"The id of the user who initiated the action run."},"limit":{"type":"number","minimum":1,"maximum":1000,"description":"The maximum number of action runs to fetch."},"exclude":{"type":"array","items":{"type":"string"},"description":"The fields to exclude from the response"},"external_run_id":{"type":"string","description":"The run id of your backend, for example the id that GitHub gives the workflow. This can be used to identify the action run instead of the `run_id`."},"version":{"type":"string","enum":["v1","v2"],"description":"Specifies the API version to use. Please use `v2` for the latest version of the API."},"action":{"type":"string"},"source":{"type":"array","items":{"type":"string","enum":["UI","API","AUTOMATION"]}},"next":{"type":"string","description":"An opaque cursor for pagination. Pass the `next` value from the previous response to fetch the next page of results."}},"if":{"properties":{"version":{"enum":["v1",null]}}},"then":{"properties":{"action":{"type":"null"}}},"additionalProperties":false},"tableConfig":{"type":"object","properties":{"filterSettings":{"type":"object","properties":{"filterBy":{"$ref":"#/components/schemas/def-1"}},"additionalProperties":false,"required":["filterBy"]},"groupSettings":{"type":"object","properties":{"groupBy":{"type":"array","items":{"type":"string"}}},"additionalProperties":false,"required":["groupBy"]},"sortSettings":{"type":"object","properties":{"sortBy":{"type":"array","items":{"type":"object","properties":{"property":{"type":"string"},"order":{"enum":["asc","desc"]}},"additionalProperties":false,"required":["property","order"]}}},"additionalProperties":false},"propertiesSettings":{"type":"object","properties":{"hidden":{"type":"array","items":{"type":"string"}},"order":{"type":"array","items":{"type":"string"}}},"additionalProperties":false}}}},"additionalProperties":false,"required":["type"]},{"type":"object","properties":{"id":{"type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"enum":["workflow-runs-history-table"]},"query":{"type":"object"},"tableConfig":{"type":"object","properties":{"filterSettings":{"type":"object","properties":{"filterBy":{"$ref":"#/components/schemas/def-1"}},"additionalProperties":false,"required":["filterBy"]},"groupSettings":{"type":"object","properties":{"groupBy":{"type":"array","items":{"type":"string"}}},"additionalProperties":false,"required":["groupBy"]},"sortSettings":{"type":"object","properties":{"sortBy":{"type":"array","items":{"type":"object","properties":{"property":{"type":"string"},"order":{"enum":["asc","desc"]}},"additionalProperties":false,"required":["property","order"]}}},"additionalProperties":false},"propertiesSettings":{"type":"object","properties":{"hidden":{"type":"array","items":{"type":"string"}},"order":{"type":"array","items":{"type":"string"}}},"additionalProperties":false}}}},"additionalProperties":false,"required":["type"]},{"type":"object","properties":{"id":{"type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"enum":["run-info"]},"title":{"type":"string"},"runId":{"type":"string"}},"additionalProperties":false,"required":["type","runId"]},{"type":"object","properties":{"id":{"type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"enum":["user-info"]},"title":{"type":"string"},"user_email":{"type":"string"}},"additionalProperties":false,"required":["type","user_email"]},{"type":"object","properties":{"id":{"type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"enum":["graph-entities-explorer"]},"title":{"type":"string"},"dataset":{"$ref":"#/components/schemas/def-1"},"hiddenBlueprints":{"type":"array","items":{"type":"string"}}},"additionalProperties":false,"required":["type","dataset"]},{"type":"object","properties":{"id":{"type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"icon":{"type":"string"},"type":{"enum":["bar-chart"]},"title":{"type":"string"},"blueprint":{"type":"string"},"property":{"type":"string"},"description":{"type":"string"},"dataset":{"$ref":"#/components/schemas/def-1"},"emptyStateText":{"type":"string"},"showOnlyRelatedEntities":{"type":"boolean"},"segmentTableViewConfig":{"type":"object","propertyNames":{"pattern":"^(?!\\.{1,2}$)[\\p{L}0-9@_.+:\\\\/='-]+$"},"additionalProperties":{"type":"object","properties":{"filterSettings":{"type":"object","properties":{"filterBy":{"$ref":"#/components/schemas/def-1"}},"additionalProperties":false,"required":["filterBy"]},"groupSettings":{"type":"object","properties":{"groupBy":{"type":"array","items":{"type":"string"}}},"additionalProperties":false,"required":["groupBy"]},"sortSettings":{"type":"object","properties":{"sortBy":{"type":"array","items":{"type":"object","properties":{"property":{"type":"string"},"order":{"enum":["asc","desc"]}},"additionalProperties":false,"required":["property","order"]}}},"additionalProperties":false},"propertiesSettings":{"type":"object","properties":{"hidden":{"type":"array","items":{"type":"string"}},"shown":{"type":"array","items":{"type":"string"}},"order":{"type":"array","items":{"type":"string"}}},"additionalProperties":false},"columnsOrder":{"type":"array","items":{"type":"string"}},"cardsOrder":{"type":"object","additionalProperties":{"type":"string"}},"tabIndex":{"type":"number"},"hidden":{"type":"boolean"},"title":{"type":"string","maxLength":20},"description":{"type":"string"}},"additionalProperties":false}}},"additionalProperties":false,"required":["type","dataset","property"]},{"type":"object","properties":{"id":{"type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"icon":{"type":"string"},"type":{"enum":["entities-pie-chart"]},"title":{"type":"string"},"blueprint":{"type":"string"},"property":{"type":"string"},"description":{"type":"string"},"dataset":{"$ref":"#/components/schemas/def-1"},"emptyStateText":{"type":"string"},"showOnlyRelatedEntities":{"type":"boolean"},"segmentTableViewConfig":{"type":"object","propertyNames":{"pattern":"^(?!\\.{1,2}$)[\\p{L}0-9@_.+:\\\\/='-]+$"},"additionalProperties":{"type":"object","properties":{"filterSettings":{"type":"object","properties":{"filterBy":{"$ref":"#/components/schemas/def-1"}},"additionalProperties":false,"required":["filterBy"]},"groupSettings":{"type":"object","properties":{"groupBy":{"type":"array","items":{"type":"string"}}},"additionalProperties":false,"required":["groupBy"]},"sortSettings":{"type":"object","properties":{"sortBy":{"type":"array","items":{"type":"object","properties":{"property":{"type":"string"},"order":{"enum":["asc","desc"]}},"additionalProperties":false,"required":["property","order"]}}},"additionalProperties":false},"propertiesSettings":{"type":"object","properties":{"hidden":{"type":"array","items":{"type":"string"}},"shown":{"type":"array","items":{"type":"string"}},"order":{"type":"array","items":{"type":"string"}}},"additionalProperties":false},"columnsOrder":{"type":"array","items":{"type":"string"}},"cardsOrder":{"type":"object","additionalProperties":{"type":"string"}},"tabIndex":{"type":"number"},"hidden":{"type":"boolean"},"title":{"type":"string","maxLength":20},"description":{"type":"string"}},"additionalProperties":false}}},"additionalProperties":false,"required":["type","dataset","property"]},{"type":"object","oneOf":[{"properties":{"id":{"type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"icon":{"type":"string"},"type":{"enum":["line-chart"]},"title":{"type":"string"},"blueprint":{"type":"string"},"chartType":{"enum":["propertiesValueHistory"]},"xAxisTitle":{"type":"string"},"yAxisTitle":{"type":"string"},"timeInterval":{"type":"string","enum":["hour","day","isoWeek","month","quarter"]},"timeRange":{"type":"object","properties":{"preset":{"type":"string","enum":["today","yesterday","lastDay","lastWeek","last2Weeks","lastMonth","last3Months","last6Months","last12Months","last2Years","last3Years"]}},"required":["preset"],"additionalProperties":false},"description":{"type":"string"},"emptyStateText":{"type":"string"},"entity":{"type":"string"},"properties":{"type":"array","items":{"type":"string"},"minItems":1}},"required":["type","blueprint","chartType","entity","properties"],"additionalProperties":false,"if":{"type":"object","properties":{"timeRange":{"type":"object","properties":{"preset":{"enum":["last2Years","last3Years"]}}}}},"then":{"type":"object","properties":{"timeInterval":{"enum":["quarter"]}}}},{"properties":{"id":{"type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"icon":{"type":"string"},"type":{"enum":["line-chart"]},"title":{"type":"string"},"blueprint":{"type":"string"},"chartType":{"enum":["aggregatePropertiesValues"]},"xAxisTitle":{"type":"string"},"yAxisTitle":{"type":"string"},"timeInterval":{"type":"string","enum":["hour","day","isoWeek","month","quarter"]},"timeRange":{"type":"object","properties":{"preset":{"type":"string","enum":["today","yesterday","lastDay","lastWeek","last2Weeks","lastMonth","last3Months","last6Months","last12Months","last2Years","last3Years"]}},"required":["preset"],"additionalProperties":false},"description":{"type":"string"},"emptyStateText":{"type":"string"},"func":{"type":"string","enum":["sum","average","min","max","median","last"]},"properties":{"type":"array","items":{"type":"string"},"minItems":1},"measureTimeBy":{"type":"string"},"dataset":{"$ref":"#/components/schemas/def-1"}},"required":["type","blueprint","chartType","func","measureTimeBy","properties"],"additionalProperties":false,"if":{"type":"object","properties":{"timeRange":{"type":"object","properties":{"preset":{"enum":["last2Years","last3Years"]}}}}},"then":{"type":"object","properties":{"timeInterval":{"enum":["quarter"]}}}},{"properties":{"id":{"type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"icon":{"type":"string"},"type":{"enum":["line-chart"]},"title":{"type":"string"},"blueprint":{"type":"string"},"chartType":{"enum":["countEntities"]},"xAxisTitle":{"type":"string"},"yAxisTitle":{"type":"string"},"timeInterval":{"type":"string","enum":["hour","day","isoWeek","month","quarter"]},"timeRange":{"type":"object","properties":{"preset":{"type":"string","enum":["today","yesterday","lastDay","lastWeek","last2Weeks","lastMonth","last3Months","last6Months","last12Months","last2Years","last3Years"]}},"required":["preset"],"additionalProperties":false},"description":{"type":"string"},"emptyStateText":{"type":"string"},"func":{"type":"string","enum":["count","average"]},"breakdownProperty":{"type":"string"},"measureTimeBy":{"type":"string"},"dataset":{"$ref":"#/components/schemas/def-1"}},"required":["type","blueprint","chartType","func","measureTimeBy"],"additionalProperties":false,"if":{"type":"object","properties":{"timeRange":{"type":"object","properties":{"preset":{"enum":["last2Years","last3Years"]}}}}},"then":{"type":"object","properties":{"timeInterval":{"enum":["quarter"]}}}}]},{"type":"object","properties":{"id":{"type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"icon":{"type":"string"},"type":{"enum":["multi-line-chart"]},"title":{"type":"string"},"xAxisTitle":{"type":"string"},"yAxisTitle":{"type":"string"},"timeInterval":{"type":"string","enum":["hour","day","isoWeek","month","quarter"]},"timeRange":{"type":"object","properties":{"preset":{"type":"string","enum":["today","yesterday","lastDay","lastWeek","last2Weeks","lastMonth","last3Months","last6Months","last12Months","last2Years","last3Years"]}},"required":["preset"],"additionalProperties":false},"description":{"type":"string"},"emptyStateText":{"type":"string"},"lines":{"type":"array","items":{"type":"object","oneOf":[{"properties":{"title":{"type":"string"},"blueprint":{"type":"string"},"chartType":{"enum":["propertiesValueHistory"]},"entity":{"type":"string"},"properties":{"type":"array","items":{"type":"string"},"minItems":1}},"required":["title","entity","properties","blueprint","chartType"],"additionalProperties":false},{"properties":{"title":{"type":"string"},"blueprint":{"type":"string"},"chartType":{"enum":["aggregatePropertiesValues"]},"func":{"type":"string","enum":["sum","average","min","max","median","last"]},"properties":{"type":"array","items":{"type":"string"},"minItems":1},"measureTimeBy":{"type":"string"},"dataset":{"$ref":"#/components/schemas/def-1"}},"required":["title","func","measureTimeBy","properties","blueprint","chartType"],"additionalProperties":false},{"properties":{"title":{"type":"string"},"blueprint":{"type":"string"},"chartType":{"enum":["countEntities"]},"func":{"type":"string","enum":["count","average"]},"breakdownProperty":{"type":"string"},"measureTimeBy":{"type":"string"},"dataset":{"$ref":"#/components/schemas/def-1"}},"required":["title","func","measureTimeBy","blueprint","chartType"],"additionalProperties":false}]}},"baselines":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"value":{"type":"number"},"color":{"type":"string"}},"additionalProperties":false,"required":["value"]}},"nullValueDisplayMode":{"type":"string","enum":["zero","null"]}},"required":["lines","timeInterval","timeRange","title","type"]},{"type":"object","properties":{"id":{"type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"type":"string","enum":["entities-number-chart"]},"title":{"type":"string"},"icon":{"type":"string"},"description":{"type":"string"},"emptyStateText":{"type":"string"},"unit":{"type":"string","enum":["none","$","€","£","%","custom"]},"unitAlignment":{"type":"string","enum":["left","right"]},"calculationBy":{"type":"string","enum":["entities","property"]},"conditionalFormatting":{"type":"array","items":{"type":"object","properties":{"operator":{"enum":[">",">=","<","<=","=","!="]},"value":{"type":"number"},"message":{"type":"string","maxLength":50},"description":{"type":"string","maxLength":200},"color":{"type":"string","enum":["blue","turquoise","orange","purple","pink","yellow","green","red","gold","silver","paleBlue","darkGray","lightGray","bronze","lime","olive","brown"]}},"required":["operator","value"]}},"displayFormatting":{"type":"string","enum":["none","round","custom"]},"decimalPlaces":{"type":"string","enum":[".0",".00",".000",".0000",".00000"]},"showOnlyRelatedEntities":{"type":"boolean"}},"required":["type","unit"],"allOf":[{"if":{"properties":{"chartType":{"enum":["aggregateByProperty"]}},"required":["chartType"]},"then":{"properties":{"dataset":{"oneOf":[{"type":"array","items":{"anyOf":[{"type":"object","title":"Date Rule","properties":{"property":{"title":"Contexted property","oneOf":[{"type":"string"},{"type":"object","title":"User-context field","properties":{"property":{"type":"string"},"context":{"type":"string","enum":["user","userTeams"]}},"required":["property","context"]}]},"operator":{"enum":["between","notBetween","="]},"value":{"type":"object","oneOf":[{"type":"object","title":"Date Range","properties":{"from":{"type":"string","format":"date-time"},"to":{"type":"string","format":"date-time"}},"required":["from","to"]},{"type":"object","title":"Date Preset","properties":{"preset":{"type":"string","enum":["today","tomorrow","yesterday","lastDay","lastWeek","last2Weeks","lastMonth","last3Months","last6Months","last12Months","last2Years","last3Years","nextDay","nextWeek","next2Weeks","nextMonth","next3Months","next6Months","next12Months"]}},"required":["preset"]},{"type":"object","title":"User-context field","properties":{"property":{"type":"string"},"context":{"type":"string","enum":["user","userTeams"]}},"required":["property","context"]}]}},"required":["property","operator","value"],"additionalProperties":false},{"type":"object","title":"Empty Rule","oneOf":[{"type":"object","title":"Empty Rule","properties":{"operator":{"enum":["isEmpty","isNotEmpty"]},"property":{"type":"string"}},"required":["operator","property"],"additionalProperties":false}]},{"type":"object","title":"Number Rule","properties":{"property":{"title":"Contexted property","oneOf":[{"type":"string"},{"type":"object","title":"User-context field","properties":{"property":{"type":"string"},"context":{"type":"string","enum":["user","userTeams"]}},"required":["property","context"]}]},"operator":{"enum":[">",">=","<","<="]},"value":{"anyOf":[{"type":"number","title":"number"},{"type":"string","format":"date-time","title":"date-time"},{"type":"object","title":"User-context field","properties":{"property":{"type":"string"},"context":{"type":"string","enum":["user","userTeams"]}},"required":["property","context"]}]}},"required":["property","operator","value"],"additionalProperties":false},{"type":"object","title":"Expired Rule","oneOf":[{"type":"object","title":"Expired Rule","properties":{"operator":{"enum":["isExpired","isNotExpired"]},"property":{"type":"string"}},"required":["operator","property"],"additionalProperties":false}]},{"type":"object","title":"String Rule","oneOf":[{"type":"object","title":"String Rule","properties":{"property":{"title":"Contexted property","oneOf":[{"type":"string"},{"type":"object","title":"User-context field","properties":{"property":{"type":"string"},"context":{"type":"string","enum":["user","userTeams"]}},"required":["property","context"]}]},"operator":{"enum":["=","!=","containsAny","contains","doesNotContains","beginsWith","doesNotBeginsWith","endsWith","doesNotEndsWith","in","notIn"]},"value":{"anyOf":[{"type":"null","title":"null"},{"type":"string","title":"string"},{"type":"number","title":"number"},{"type":"boolean","title":"boolean"},{"type":"string","format":"date-time","title":"date-time"},{"type":"array","items":{"type":"string"},"title":"array"},{"type":"array","items":{"type":"number"},"title":"array"},{"type":"array","items":{"type":"boolean"},"title":"array"},{"type":"array","items":{"type":"string","format":"date-time"},"title":"array"},{"type":"object","title":"User-context field","properties":{"property":{"type":"string"},"context":{"type":"string","enum":["user","userTeams"]}},"required":["property","context"]}]}},"additionalProperties":false,"required":["property","operator","value"]}]},{"type":"object","title":"Relation Rule","properties":{"operator":{"enum":["relatedTo"]},"blueprint":{"type":"string"},"value":{"anyOf":[{"type":"string","title":"string"},{"type":"array","items":{"type":"string"},"title":"array"}]},"direction":{"enum":["upstream","downstream"]},"required":{"type":"boolean"}},"additionalProperties":false,"required":["operator","value","blueprint"]},{"type":"object","title":"Property schema rule","properties":{"propertySchema":{"type":"object","properties":{"type":{"type":"string"},"format":{"type":"string"},"items":{"type":"object","properties":{"type":{"type":"string"},"format":{"type":"string"}},"required":["type"]}},"required":["type"],"additionalProperties":false},"operator":{"enum":["=","!=","contains"]},"value":{"anyOf":[{"type":"null","title":"null"},{"type":"string","title":"string"},{"type":"number","title":"number"},{"type":"boolean","title":"boolean"}]}},"required":["operator","propertySchema"],"additionalProperties":false},{"type":"object","title":"matchAny Rule","anyOf":[{"type":"object","title":"Property matchAny rule","properties":{"property":{"oneOf":[{"type":"object","title":"Path filter property","properties":{"path":{"type":"array","minItems":1,"items":{"anyOf":[{"type":"string","title":"Relation identifier"},{"type":"object","title":"Relation with max hops","properties":{"relation":{"type":"string"},"maxHops":{"type":"number","minimum":1,"maximum":15}}}]}},"fromBlueprint":{"type":"string"}},"required":["path"],"additionalProperties":false},{"title":"Contexted property","oneOf":[{"type":"string"},{"type":"object","title":"User-context field","properties":{"property":{"type":"string"},"context":{"type":"string","enum":["user","userTeams"]}},"required":["property","context"]}]}]},"operator":{"type":"string","enum":["matchAny"]},"value":{"anyOf":[{"type":"array","items":{"type":"string"}},{"title":"Contexted property","oneOf":[{"type":"string"},{"type":"object","title":"User-context field","properties":{"property":{"type":"string"},"context":{"type":"string","enum":["user","userTeams"]}},"required":["property","context"]}]}]}},"required":["property","operator","value"],"additionalProperties":false}]},{"allOf":[{"$ref":"#/components/schemas/def-1"},{"title":"Nested query"}]}]}},{"$ref":"#/components/schemas/def-1"}]},"segmentTableViewConfig":{"type":"object","propertyNames":{"pattern":"^(?!\\.{1,2}$)[\\p{L}0-9@_.+:\\\\/='-]+$"},"additionalProperties":{"type":"object","properties":{"filterSettings":{"type":"object","properties":{"filterBy":{"$ref":"#/components/schemas/def-1"}},"additionalProperties":false,"required":["filterBy"]},"groupSettings":{"type":"object","properties":{"groupBy":{"type":"array","items":{"type":"string"}}},"additionalProperties":false,"required":["groupBy"]},"sortSettings":{"type":"object","properties":{"sortBy":{"type":"array","items":{"type":"object","properties":{"property":{"type":"string"},"order":{"enum":["asc","desc"]}},"additionalProperties":false,"required":["property","order"]}}},"additionalProperties":false},"propertiesSettings":{"type":"object","properties":{"hidden":{"type":"array","items":{"type":"string"}},"shown":{"type":"array","items":{"type":"string"}},"order":{"type":"array","items":{"type":"string"}}},"additionalProperties":false},"columnsOrder":{"type":"array","items":{"type":"string"}},"cardsOrder":{"type":"object","additionalProperties":{"type":"string"}},"tabIndex":{"type":"number"},"hidden":{"type":"boolean"},"title":{"type":"string","maxLength":20},"description":{"type":"string"}},"additionalProperties":false}}},"required":["dataset"]}},{"if":{"properties":{"chartType":{"enum":["countEntities"]}},"required":["chartType"]},"then":{"properties":{"dataset":{"oneOf":[{"type":"array","items":{"anyOf":[{"type":"object","title":"Date Rule","properties":{"property":{"title":"Contexted property","oneOf":[{"type":"string"},{"type":"object","title":"User-context field","properties":{"property":{"type":"string"},"context":{"type":"string","enum":["user","userTeams"]}},"required":["property","context"]}]},"operator":{"enum":["between","notBetween","="]},"value":{"type":"object","oneOf":[{"type":"object","title":"Date Range","properties":{"from":{"type":"string","format":"date-time"},"to":{"type":"string","format":"date-time"}},"required":["from","to"]},{"type":"object","title":"Date Preset","properties":{"preset":{"type":"string","enum":["today","tomorrow","yesterday","lastDay","lastWeek","last2Weeks","lastMonth","last3Months","last6Months","last12Months","last2Years","last3Years","nextDay","nextWeek","next2Weeks","nextMonth","next3Months","next6Months","next12Months"]}},"required":["preset"]},{"type":"object","title":"User-context field","properties":{"property":{"type":"string"},"context":{"type":"string","enum":["user","userTeams"]}},"required":["property","context"]}]}},"required":["property","operator","value"],"additionalProperties":false},{"type":"object","title":"Empty Rule","oneOf":[{"type":"object","title":"Empty Rule","properties":{"operator":{"enum":["isEmpty","isNotEmpty"]},"property":{"type":"string"}},"required":["operator","property"],"additionalProperties":false}]},{"type":"object","title":"Number Rule","properties":{"property":{"title":"Contexted property","oneOf":[{"type":"string"},{"type":"object","title":"User-context field","properties":{"property":{"type":"string"},"context":{"type":"string","enum":["user","userTeams"]}},"required":["property","context"]}]},"operator":{"enum":[">",">=","<","<="]},"value":{"anyOf":[{"type":"number","title":"number"},{"type":"string","format":"date-time","title":"date-time"},{"type":"object","title":"User-context field","properties":{"property":{"type":"string"},"context":{"type":"string","enum":["user","userTeams"]}},"required":["property","context"]}]}},"required":["property","operator","value"],"additionalProperties":false},{"type":"object","title":"Expired Rule","oneOf":[{"type":"object","title":"Expired Rule","properties":{"operator":{"enum":["isExpired","isNotExpired"]},"property":{"type":"string"}},"required":["operator","property"],"additionalProperties":false}]},{"type":"object","title":"String Rule","oneOf":[{"type":"object","title":"String Rule","properties":{"property":{"title":"Contexted property","oneOf":[{"type":"string"},{"type":"object","title":"User-context field","properties":{"property":{"type":"string"},"context":{"type":"string","enum":["user","userTeams"]}},"required":["property","context"]}]},"operator":{"enum":["=","!=","containsAny","contains","doesNotContains","beginsWith","doesNotBeginsWith","endsWith","doesNotEndsWith","in","notIn"]},"value":{"anyOf":[{"type":"null","title":"null"},{"type":"string","title":"string"},{"type":"number","title":"number"},{"type":"boolean","title":"boolean"},{"type":"string","format":"date-time","title":"date-time"},{"type":"array","items":{"type":"string"},"title":"array"},{"type":"array","items":{"type":"number"},"title":"array"},{"type":"array","items":{"type":"boolean"},"title":"array"},{"type":"array","items":{"type":"string","format":"date-time"},"title":"array"},{"type":"object","title":"User-context field","properties":{"property":{"type":"string"},"context":{"type":"string","enum":["user","userTeams"]}},"required":["property","context"]}]}},"additionalProperties":false,"required":["property","operator","value"]}]},{"type":"object","title":"Relation Rule","properties":{"operator":{"enum":["relatedTo"]},"blueprint":{"type":"string"},"value":{"anyOf":[{"type":"string","title":"string"},{"type":"array","items":{"type":"string"},"title":"array"}]},"direction":{"enum":["upstream","downstream"]},"required":{"type":"boolean"}},"additionalProperties":false,"required":["operator","value","blueprint"]},{"type":"object","title":"Property schema rule","properties":{"propertySchema":{"type":"object","properties":{"type":{"type":"string"},"format":{"type":"string"},"items":{"type":"object","properties":{"type":{"type":"string"},"format":{"type":"string"}},"required":["type"]}},"required":["type"],"additionalProperties":false},"operator":{"enum":["=","!=","contains"]},"value":{"anyOf":[{"type":"null","title":"null"},{"type":"string","title":"string"},{"type":"number","title":"number"},{"type":"boolean","title":"boolean"}]}},"required":["operator","propertySchema"],"additionalProperties":false},{"type":"object","title":"matchAny Rule","anyOf":[{"type":"object","title":"Property matchAny rule","properties":{"property":{"oneOf":[{"type":"object","title":"Path filter property","properties":{"path":{"type":"array","minItems":1,"items":{"anyOf":[{"type":"string","title":"Relation identifier"},{"type":"object","title":"Relation with max hops","properties":{"relation":{"type":"string"},"maxHops":{"type":"number","minimum":1,"maximum":15}}}]}},"fromBlueprint":{"type":"string"}},"required":["path"],"additionalProperties":false},{"title":"Contexted property","oneOf":[{"type":"string"},{"type":"object","title":"User-context field","properties":{"property":{"type":"string"},"context":{"type":"string","enum":["user","userTeams"]}},"required":["property","context"]}]}]},"operator":{"type":"string","enum":["matchAny"]},"value":{"anyOf":[{"type":"array","items":{"type":"string"}},{"title":"Contexted property","oneOf":[{"type":"string"},{"type":"object","title":"User-context field","properties":{"property":{"type":"string"},"context":{"type":"string","enum":["user","userTeams"]}},"required":["property","context"]}]}]}},"required":["property","operator","value"],"additionalProperties":false}]},{"allOf":[{"$ref":"#/components/schemas/def-1"},{"title":"Nested query"}]}]}},{"$ref":"#/components/schemas/def-1"}]},"segmentTableViewConfig":{"type":"object","propertyNames":{"pattern":"^(?!\\.{1,2}$)[\\p{L}0-9@_.+:\\\\/='-]+$"},"additionalProperties":{"type":"object","properties":{"filterSettings":{"type":"object","properties":{"filterBy":{"$ref":"#/components/schemas/def-1"}},"additionalProperties":false,"required":["filterBy"]},"groupSettings":{"type":"object","properties":{"groupBy":{"type":"array","items":{"type":"string"}}},"additionalProperties":false,"required":["groupBy"]},"sortSettings":{"type":"object","properties":{"sortBy":{"type":"array","items":{"type":"object","properties":{"property":{"type":"string"},"order":{"enum":["asc","desc"]}},"additionalProperties":false,"required":["property","order"]}}},"additionalProperties":false},"propertiesSettings":{"type":"object","properties":{"hidden":{"type":"array","items":{"type":"string"}},"shown":{"type":"array","items":{"type":"string"}},"order":{"type":"array","items":{"type":"string"}}},"additionalProperties":false},"columnsOrder":{"type":"array","items":{"type":"string"}},"cardsOrder":{"type":"object","additionalProperties":{"type":"string"}},"tabIndex":{"type":"number"},"hidden":{"type":"boolean"},"title":{"type":"string","maxLength":20},"description":{"type":"string"}},"additionalProperties":false}}},"required":["dataset"]}},{"if":{"properties":{"chartType":{"enum":["displaySingleProperty"]}},"required":["chartType"]},"then":{"properties":{"property":{"type":"string"},"entity":{"type":"string"}},"required":["property"]}},{"if":{"properties":{"calculationBy":{"enum":["property"]}},"required":["calculationBy"]},"then":{"properties":{"property":{"type":"string"},"func":{"type":"string","enum":["sum","average","min","max","median"]}},"required":["property","func"]}},{"if":{"properties":{"calculationBy":{"enum":["entities"]}},"required":["calculationBy"]},"then":{"properties":{"func":{"type":"string","enum":["average","count"]}},"required":["func"]}},{"if":{"properties":{"func":{"enum":["average"]}},"required":["func"]},"then":{"properties":{"averageOf":{"type":"string","enum":["hour","day","week","month","total"]},"measureTimeBy":{"type":"string"}},"required":["averageOf"]}},{"if":{"properties":{"unit":{"enum":["custom"]}},"required":["unit"]},"then":{"properties":{"unitCustom":{"type":"string"}},"required":["unitCustom"]}},{"if":{"properties":{"displayFormatting":{"enum":["custom"]}},"required":["displayFormatting"]},"then":{"properties":{"decimalPlaces":{"type":"string","enum":[".0",".00",".000",".0000",".00000"]}},"required":["decimalPlaces"]}}]},{"type":"object","properties":{"id":{"type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"type":"string","enum":["iframe-widget"]},"title":{"type":"string"},"icon":{"type":"string"},"description":{"type":"string"},"url":{"type":"string","anyOf":[{"format":"url"},{"pattern":"^/(?!/)"}]},"urlType":{"type":"string","enum":["public","protected"]}},"required":["type","url","urlType","title"],"allOf":[{"if":{"properties":{"urlType":{"enum":["protected"]}}},"then":{"properties":{"popupAuth":{"type":"boolean"},"tokenUrl":{"type":"string","format":"url"},"authorizationUrl":{"type":"string","format":"url"},"clientId":{"type":"string"},"scopes":{"type":"array","items":{"type":"string"}}},"required":["tokenUrl","authorizationUrl","clientId","scopes"]}}]},{"type":"object","properties":{"id":{"type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"type":"string","enum":["markdown"]},"title":{"type":"string"},"icon":{"type":"string"}},"required":["type","title"],"anyOf":[{"type":"object","properties":{"source":{"type":"string","enum":["custom"]},"markdown":{"type":"string"}},"required":["markdown"]},{"type":"object","properties":{"source":{"type":"string","enum":["property"]},"blueprintIdentifier":{"type":"string"},"propertyIdentifier":{"type":"string"},"entityIdentifier":{"type":"string"}},"required":["source","blueprintIdentifier","propertyIdentifier","entityIdentifier"]}]},{"type":"object","properties":{"id":{"type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"enum":["team-info"]},"title":{"type":"string"},"team_name":{"type":"string"}},"additionalProperties":false,"required":["type","team_name"]},{"type":"object","properties":{"id":{"type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"type":"string","enum":["recently-viewed-entities"]},"title":{"type":"string"},"icon":{"type":"string"},"description":{"type":"string"}},"required":["type","title"]},{"type":"object","properties":{"id":{"type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"type":"string","enum":["recently-used-actions"]},"title":{"type":"string"},"icon":{"type":"string"},"description":{"type":"string"}},"required":["type","title"]},{"type":"object","properties":{"id":{"type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"type":"string","enum":["my-entities"]},"title":{"type":"string"},"description":{"type":"string"},"icon":{"type":"string"}},"required":["type","title"]},{"type":"object","properties":{"id":{"type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"type":"string","enum":["custom-widget"]},"title":{"type":"string"},"icon":{"type":"string"},"description":{"type":"string"},"pluginId":{"type":"string"},"paramValues":{"type":"object","additionalProperties":{"type":"object","properties":{"type":{"type":"string","enum":["string","number","boolean","object","array","blueprint"]},"value":{"oneOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"array"},{"type":"object"}]}},"required":["type","value"],"additionalProperties":false}}},"required":["type","pluginId","title"],"additionalProperties":false},{"$ref":"#/components/schemas/def-3"},{"$ref":"#/components/schemas/def-4"}],"title":"/schemas/widgets"}}},"paths":{"/v1/blueprints/{blueprint_identifier}/permissions":{"get":{"summary":"Get a blueprint's permissions","tags":["Blueprints"],"description":"This route allows you to retrieve the permissions of a blueprint.<br/><br/>To learn more about permissions, check out the [documentation](https://docs.port.io/context-lake/consuming-the-lake/govern-data-access/examples/).","parameters":[{"schema":{"type":"string","minLength":1},"in":"path","name":"blueprint_identifier","required":true,"description":"The identifier of the blueprint to operate on."}],"security":[{"bearer":["read:blueprints"]}],"x-should-be-exposed-to-customers":true,"responses":{"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}}}},"patch":{"summary":"Update a blueprint's permissions","tags":["Blueprints"],"description":"This route allows you to update the permissions of a blueprint.<br/><br/>To learn more about permissions, check out the [documentation](https://docs.port.io/context-lake/consuming-the-lake/govern-data-access/examples/).","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"entities":{"type":"object","properties":{"read":{"type":"object","properties":{"users":{"type":"array","items":{"type":"string"},"description":"List of users (email addresses) that are allowed to perform the action."},"teams":{"type":"array","items":{"type":"string"},"description":"List of teams that are allowed to perform the action."},"roles":{"type":"array","items":{"type":"string"},"description":"List of roles that are allowed to perform the action."},"ownedByTeam":{"type":"boolean"},"policy":{"$ref":"#/components/schemas/def-1"}},"additionalProperties":false},"register":{"type":"object","properties":{"users":{"type":"array","items":{"type":"string"},"description":"List of users (email addresses) that are allowed to perform the action."},"teams":{"type":"array","items":{"type":"string"},"description":"List of teams that are allowed to perform the action."},"roles":{"type":"array","items":{"type":"string"},"description":"List of roles that are allowed to perform the action."},"ownedByTeam":{"type":"boolean"},"policy":{"$ref":"#/components/schemas/def-1"}},"additionalProperties":false,"description":"Defines who has permissions to create entities of this blueprint."},"update":{"type":"object","properties":{"users":{"type":"array","items":{"type":"string"},"description":"List of users (email addresses) that are allowed to perform the action."},"teams":{"type":"array","items":{"type":"string"},"description":"List of teams that are allowed to perform the action."},"roles":{"type":"array","items":{"type":"string"},"description":"List of roles that are allowed to perform the action."},"ownedByTeam":{"type":"boolean"},"policy":{"$ref":"#/components/schemas/def-1"}},"additionalProperties":false,"description":"Defines who has permissions to modify entities of this blueprint."},"unregister":{"type":"object","properties":{"users":{"type":"array","items":{"type":"string"},"description":"List of users (email addresses) that are allowed to perform the action."},"teams":{"type":"array","items":{"type":"string"},"description":"List of teams that are allowed to perform the action."},"roles":{"type":"array","items":{"type":"string"},"description":"List of roles that are allowed to perform the action."},"ownedByTeam":{"type":"boolean"},"policy":{"$ref":"#/components/schemas/def-1"}},"additionalProperties":false,"description":"Defines who has permissions to delete entities of this blueprint."},"updateProperties":{"type":"object","description":"Defines who has permissions to modify specific properties in entities of this blueprint.","additionalProperties":{"type":"object","properties":{"users":{"type":"array","items":{"type":"string"},"description":"List of users (email addresses) that are allowed to perform the action."},"teams":{"type":"array","items":{"type":"string"},"description":"List of teams that are allowed to perform the action."},"roles":{"type":"array","items":{"type":"string"},"description":"List of roles that are allowed to perform the action."},"ownedByTeam":{"type":"boolean","description":"If `true`, permissions will be determined by team ownership, rather than by roles or direct assignment to users. Every user will be able to modify properties in entities belonging to their team/s."}}}},"updateRelations":{"type":"object","description":"Defines who has permissions to modify specific relations in entities of this blueprint.","additionalProperties":{"type":"object","properties":{"users":{"type":"array","items":{"type":"string"},"description":"List of users (email addresses) that are allowed to perform the action."},"teams":{"type":"array","items":{"type":"string"},"description":"List of teams that are allowed to perform the action."},"roles":{"type":"array","items":{"type":"string"},"description":"List of roles that are allowed to perform the action."},"ownedByTeam":{"type":"boolean","description":"If `true`, permissions will be determined by team ownership, rather than by roles or direct assignment to users. Every user will be able to modify relations in entities belonging to their team/s."}}}},"readProperties":{"type":"object","description":"Defines which users, roles, and teams are allowed to read specific properties, when defined all non allowed will be restricted.","additionalProperties":{"type":"object","properties":{"users":{"type":"array","items":{"type":"string"},"description":"List of users (email addresses) that are allowed to perform the action."},"teams":{"type":"array","items":{"type":"string"},"description":"List of teams that are allowed to perform the action."},"roles":{"type":"array","items":{"type":"string"},"description":"List of roles that are allowed to perform the action."}}}}},"additionalProperties":false}},"additionalProperties":false}}}},"parameters":[{"schema":{"type":"string","minLength":1},"in":"path","name":"blueprint_identifier","required":true,"description":"The identifier of the blueprint to operate on."}],"security":[{"bearer":[]}],"x-should-be-exposed-to-customers":true,"responses":{"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}},"413":{"description":"Request body is too large (limit is 1MiB)","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false,"description":"Request body is too large (limit is 1MiB)"}}}},"422":{"description":"The json provided does not match the route's schema","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"The json provided does not match the route's schema"}}}}}}},"/v1/blueprints/{blueprint_identifier}/permissions/simulate":{"post":{"summary":"Simulate permissions for a user","tags":["Blueprints"],"description":"This route allows you to simulate what permissions a specific user would have for entities in a blueprint.<br/>Provide a userIdentifier and operation to see which entities are accessible, or additionally provide an entityIdentifier to see detailed permission checks for that specific entity.<br/><br/>To learn more, see the [permission simulator documentation](https://docs.port.io/context-lake/consuming-the-lake/govern-data-access/overview#permission-simulator).","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"userIdentifier":{"type":"string","description":"The identifier of the user to simulate permissions for."},"operation":{"type":"string","enum":["read","register","update","unregister"],"description":"The operation to simulate permissions for."},"entityIdentifier":{"type":"string","description":"The identifier of the entity to simulate permissions for."},"entity":{"allOf":[{"type":"object","properties":{"_id":{"type":"string"},"title":{"type":"string"},"team":{"type":"array","items":{"type":"string"}},"icon":{"type":"string"},"properties":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"relations":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}},{"type":"null"}]}}},"required":["properties"],"additionalProperties":false},{"type":"object","properties":{"identifier":{"type":"string"}},"additionalProperties":false}],"description":"The entity to register or update."},"permissions":{"description":"The permissions to simulate.","type":"object","properties":{"entities":{"type":"object","properties":{"read":{"type":"object","properties":{"roles":{"description":"The roles to simulate permissions for.","type":"array","items":{"type":"string"}},"users":{"description":"The users to simulate permissions for.","type":"array","items":{"type":"string"}},"teams":{"description":"The teams to simulate permissions for.","type":"array","items":{"type":"string"}},"ownedByTeam":{"description":"The owned by team to simulate permissions for.","type":"boolean"},"policy":{"type":"object","properties":{"combinator":{"type":"string","enum":["and","or"]},"rules":{"type":"array","items":{}}},"required":["combinator","rules"],"additionalProperties":false}},"additionalProperties":false},"register":{"type":"object","properties":{"roles":{"description":"The roles to simulate permissions for.","type":"array","items":{"type":"string"}},"users":{"description":"The users to simulate permissions for.","type":"array","items":{"type":"string"}},"teams":{"description":"The teams to simulate permissions for.","type":"array","items":{"type":"string"}},"ownedByTeam":{"description":"The owned by team to simulate permissions for.","type":"boolean"},"policy":{"type":"object","properties":{"combinator":{"type":"string","enum":["and","or"]},"rules":{"type":"array","items":{}}},"required":["combinator","rules"],"additionalProperties":false}},"additionalProperties":false},"update":{"type":"object","properties":{"roles":{"description":"The roles to simulate permissions for.","type":"array","items":{"type":"string"}},"users":{"description":"The users to simulate permissions for.","type":"array","items":{"type":"string"}},"teams":{"description":"The teams to simulate permissions for.","type":"array","items":{"type":"string"}},"ownedByTeam":{"description":"The owned by team to simulate permissions for.","type":"boolean"},"policy":{"type":"object","properties":{"combinator":{"type":"string","enum":["and","or"]},"rules":{"type":"array","items":{}}},"required":["combinator","rules"],"additionalProperties":false}},"additionalProperties":false},"unregister":{"type":"object","properties":{"roles":{"description":"The roles to simulate permissions for.","type":"array","items":{"type":"string"}},"users":{"description":"The users to simulate permissions for.","type":"array","items":{"type":"string"}},"teams":{"description":"The teams to simulate permissions for.","type":"array","items":{"type":"string"}},"ownedByTeam":{"description":"The owned by team to simulate permissions for.","type":"boolean"},"policy":{"type":"object","properties":{"combinator":{"type":"string","enum":["and","or"]},"rules":{"type":"array","items":{}}},"required":["combinator","rules"],"additionalProperties":false}},"additionalProperties":false},"updateProperties":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"roles":{"description":"The roles to simulate permissions for.","type":"array","items":{"type":"string"}},"users":{"description":"The users to simulate permissions for.","type":"array","items":{"type":"string"}},"teams":{"description":"The teams to simulate permissions for.","type":"array","items":{"type":"string"}},"ownedByTeam":{"description":"The owned by team to simulate permissions for.","type":"boolean"}},"additionalProperties":false}},"updateRelations":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"roles":{"description":"The roles to simulate permissions for.","type":"array","items":{"type":"string"}},"users":{"description":"The users to simulate permissions for.","type":"array","items":{"type":"string"}},"teams":{"description":"The teams to simulate permissions for.","type":"array","items":{"type":"string"}},"ownedByTeam":{"description":"The owned by team to simulate permissions for.","type":"boolean"}},"additionalProperties":false}},"readProperties":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"roles":{"description":"The roles to simulate permissions for.","type":"array","items":{"type":"string"}},"users":{"description":"The users to simulate permissions for.","type":"array","items":{"type":"string"}},"teams":{"description":"The teams to simulate permissions for.","type":"array","items":{"type":"string"}},"ownedByTeam":{"description":"The owned by team to simulate permissions for.","type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false,"description":"The entities to simulate permissions for."}},"additionalProperties":false}},"required":["userIdentifier","operation"],"additionalProperties":false}}},"required":true},"parameters":[{"schema":{"type":"string","minLength":1},"in":"path","name":"blueprint_identifier","required":true,"description":"The identifier of the blueprint to operate on."}],"security":[{"bearer":[]}],"x-should-be-exposed-to-customers":true,"responses":{"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}},"413":{"description":"Request body is too large (limit is 1MiB)","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false,"description":"Request body is too large (limit is 1MiB)"}}}},"422":{"description":"The json provided does not match the route's schema","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"The json provided does not match the route's schema"}}}}}}},"/v1/pages/permissions":{"get":{"summary":"Get organization-level page permissions","tags":["Pages"],"description":"This route allows you to get organization-level page permissions, such as who can create private pages.","security":[{"bearer":["read:organization"]}],"x-should-be-exposed-to-customers":true,"responses":{"200":{"description":"Retrieved successfully.","content":{"application/json":{"schema":{"description":"Retrieved successfully.","type":"object","properties":{"ok":{"enum":[true]},"permissions":{"type":"object","properties":{"create":{"type":"object","properties":{"users":{"type":"array","items":{"type":"string"}},"roles":{"type":"array","items":{"type":"string"}},"teams":{"type":"array","items":{"type":"string"}},"ownedByTeam":{"type":"boolean"}},"additionalProperties":false}},"additionalProperties":false}},"required":["permissions","ok"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}}}},"patch":{"summary":"Update organization-level page permissions","tags":["Pages"],"description":"This route allows you to update organization-level page permissions, such as who can create private pages.","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"create":{"type":"object","properties":{"users":{"type":"array","items":{"type":"string"}},"roles":{"type":"array","items":{"type":"string"}},"teams":{"type":"array","items":{"type":"string"}}},"additionalProperties":false}},"additionalProperties":false}}}},"security":[{"bearer":["update:organization"]}],"x-should-be-exposed-to-customers":true,"responses":{"200":{"description":"Updated successfully.","content":{"application/json":{"schema":{"description":"Updated successfully.","type":"object","properties":{"ok":{"enum":[true]},"permissions":{"type":"object","properties":{"create":{"type":"object","properties":{"users":{"type":"array","items":{"type":"string"}},"roles":{"type":"array","items":{"type":"string"}},"teams":{"type":"array","items":{"type":"string"}},"ownedByTeam":{"type":"boolean"}},"additionalProperties":false}},"additionalProperties":false}},"required":["permissions","ok"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}},"413":{"description":"Request body is too large (limit is 1MiB)","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false,"description":"Request body is too large (limit is 1MiB)"}}}},"422":{"description":"The json provided does not match the route's schema","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"The json provided does not match the route's schema"}}}}}}},"/v1/pages/{page_identifier}/permissions":{"get":{"summary":"Get a page's permissions","tags":["Pages"],"description":"This route allows you to get a specific page's permissions.<br/><br/>To learn more about pages, check out the [documentation](https://docs.port.io/interface-builder/port-interface/page/page-permissions).","parameters":[{"schema":{"type":"string","minLength":1},"in":"path","name":"page_identifier","required":true}],"security":[{"bearer":[]}],"x-should-be-exposed-to-customers":true,"responses":{"200":{"description":"Retrieved successfully.","content":{"application/json":{"schema":{"description":"Retrieved successfully.","type":"object","properties":{"ok":{"enum":[true]},"permissions":{"type":"object","properties":{"read":{"type":"object","properties":{"users":{"type":"array","items":{"type":"string"}},"roles":{"type":"array","items":{"type":"string"}},"teams":{"type":"array","items":{"type":"string"}}},"additionalProperties":false},"update":{"type":"object","properties":{"users":{"type":"array","items":{"type":"string"}},"roles":{"type":"array","items":{"type":"string"}},"teams":{"type":"array","items":{"type":"string"}}},"additionalProperties":false}},"additionalProperties":false}},"required":["permissions","ok"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}}}},"patch":{"summary":"Update a page's permissions","tags":["Pages"],"description":"This route allows you to update a specific page’s permissions. <br/><br/>To learn more about pages, check out the [documentation](https://docs.port.io/interface-builder/port-interface/page/page-permissions).","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"read":{"type":"object","properties":{"users":{"type":"array","items":{"type":"string"}},"roles":{"type":"array","items":{"type":"string"}},"teams":{"type":"array","items":{"type":"string"}}},"additionalProperties":false},"update":{"type":"object","properties":{"users":{"type":"array","items":{"type":"string"}},"roles":{"type":"array","items":{"type":"string"}},"teams":{"type":"array","items":{"type":"string"}}},"additionalProperties":false}},"additionalProperties":false}}}},"parameters":[{"schema":{"type":"string","minLength":1},"in":"path","name":"page_identifier","required":true}],"security":[{"bearer":[]}],"x-should-be-exposed-to-customers":true,"responses":{"200":{"description":"Updated successfully.","content":{"application/json":{"schema":{"description":"Updated successfully.","type":"object","properties":{"ok":{"enum":[true]},"permissions":{"type":"object","properties":{"read":{"type":"object","properties":{"users":{"type":"array","items":{"type":"string"}},"roles":{"type":"array","items":{"type":"string"}},"teams":{"type":"array","items":{"type":"string"}}},"additionalProperties":false},"update":{"type":"object","properties":{"users":{"type":"array","items":{"type":"string"}},"roles":{"type":"array","items":{"type":"string"}},"teams":{"type":"array","items":{"type":"string"}}},"additionalProperties":false}},"additionalProperties":false}},"required":["permissions","ok"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}},"413":{"description":"Request body is too large (limit is 1MiB)","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false,"description":"Request body is too large (limit is 1MiB)"}}}},"422":{"description":"The json provided does not match the route's schema","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"The json provided does not match the route's schema"}}}}}}},"/v1/auth/access_token":{"post":{"summary":"Create an access token","tags":["Authentication / Authorization"],"description":"This route allows you to create an access token for your Port account. You can use this token to authenticate your requests to the Port API.<br/><br/>To obtain your client ID and client secret, go to your [Port application](https://app.port.io), click on the `...` button in the top right corner, then click `Credentials`.","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"clientId":{"type":"string","description":"Your Port client ID"},"clientSecret":{"type":"string","description":"Your Port client secret"}},"additionalProperties":false,"required":["clientId","clientSecret"]}}},"required":true},"x-should-be-exposed-to-customers":true,"responses":{"200":{"description":"Authorized successfully","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"enum":[true]},"accessToken":{"type":"string"},"expiresIn":{"type":"number","description":"The number of seconds until the access token expires"},"tokenType":{"type":"string"}},"additionalProperties":false,"required":["accessToken","expiresIn","tokenType"],"description":"Authorized successfully"}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}},"413":{"description":"Request body is too large (limit is 1MiB)","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false,"description":"Request body is too large (limit is 1MiB)"}}}},"422":{"description":"The json provided does not match the route's schema","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"The json provided does not match the route's schema"}}}}}}},"/v1/blueprints/{blueprint_identifier}/entities":{"post":{"summary":"Create an entity","tags":["Entities"],"description":"This route allows you to create an entity in your software catalog based on an existing blueprint in your data model. It can also be used to overwrite or update an existing entity.<br/><br/>To learn more about entities, check out the [documentation](https://docs.port.io/context-lake/ingestion/overview/#entities).","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"identifier":{"oneOf":[{"type":["string"],"pattern":"^(?!\\.{1,2}$)[\\p{L}0-9@_.+:\\\\/='-]+$","maxLength":1000,"title":"String identifier","description":"The identifier of the entity."},{"$ref":"#/components/schemas/def-5","title":"Search query"}]},"title":{"type":"string","description":"The title of the entity."},"icon":{"type":"string","description":"The icon of the entity."},"team":{"oneOf":[{"title":"Team (Single)","type":"string","description":"The Port team/s to which the entity will belong."},{"title":"Teams (Multiple)","type":"array","items":{"type":"string"},"description":"The Port team/s to which the entity will belong."},{"title":"Additional query","$ref":"#/components/schemas/def-6"},{"title":"Union source slice","description":"Only valid when the blueprint's \"ownership.union\" is enabled: a single source key mapped to that source's slice of owning teams, as in `{ \"<sourceKey>\": [\"team-a\"] }`. The slice may also be a search query.","type":"object","minProperties":1,"maxProperties":1,"additionalProperties":{"anyOf":[{"type":["array","null"],"items":{"type":"string"}},{"$ref":"#/components/schemas/def-6"}]}}]},"properties":{"type":"object","default":{},"description":"An object containing the properties of the entity, in `\"key\":\"value\"` pairs where the `key` is the property's identifier, and the `value` is its value."},"relations":{"type":"object","description":"An object containing the relations of the entity, in `\"key\":\"value\"` pairs where the `key` is the relation's identifier, and the `value` is the related entity's identifier for single-relations, or an array of identifiers for many-relations.<br/>You can also use a [search query](https://docs.port.io/context-lake/ingestion/configure-mapping/configuration-methods#mapping-relations-using-search-queries) to define relations based on a property of the related entity.","additionalProperties":{"anyOf":[{"type":"string","pattern":"^(?!\\.{1,2}$)[\\p{L}0-9@_.+:\\\\/='-]+$","maxLength":1000,"title":"string"},{"type":"array","items":{"type":"string","pattern":"^(?!\\.{1,2}$)[\\p{L}0-9@_.+:\\\\/='-]+$"},"title":"array"},{"type":"null","title":"null"},{"$ref":"#/components/schemas/def-6"},{"title":"Union source slice","description":"Only valid for relations with \"union\" enabled: a single source key mapped to that source's slice of targets, as in `{ \"<sourceKey>\": [\"target-id\"] }`. The slice may also be a search query.","type":"object","minProperties":1,"maxProperties":1,"additionalProperties":{"anyOf":[{"type":["array","null"],"items":{"type":"string","pattern":"^(?!\\.{1,2}$)[\\p{L}0-9@_.+:\\\\/='-]+$"}},{"$ref":"#/components/schemas/def-6"}]}}]}}},"additionalProperties":true,"example":{"identifier":"new-microservice","title":"MyNewMicroservice","icon":"Microservice","team":[],"properties":{"content":"my content"},"relations":{}}}}}},"parameters":[{"schema":{"type":"boolean","default":false},"in":"query","name":"upsert","required":true,"description":"If `true`, this call will override the entire entity/ies, if it/they already exist/s."},{"schema":{"type":"boolean","default":false},"in":"query","name":"validation_only","required":false,"description":"If `true`, this call will only validate the entity/ies and return the validation errors."},{"schema":{"type":"boolean","default":false},"in":"query","name":"create_missing_related_entities","required":false,"description":"If `true`, this call will also create missing related entities.<br/>This is useful when you want to create an entity and its related entities in one call, or if you want to create an entity whose related entity does not exist yet."},{"schema":{"type":"boolean","default":false},"in":"query","name":"merge","required":false,"description":"If `true` and `upsert` is also `true`, this call will update the entity/ies, if it/they already exist/s."},{"schema":{"type":"string"},"in":"query","name":"run_id","required":false,"description":"You can provide a `run_id` to associate the created entities with a specific [action run](https://docs.port.io/workflows/actions-and-automations/reflect-action-progress/#tying-entities-to-an-action-run)."},{"schema":{"type":"string"},"in":"query","name":"node_run_identifier","required":false,"description":"The unique identifier of the workflow node run."},{"schema":{"type":"string"},"in":"query","name":"ocean_info_resync_id","required":false,"description":"Resync run identifier. Only valid when `ocean_info_event_type` is `resync`."},{"schema":{"type":"string"},"in":"query","name":"ocean_info_event_type","required":false,"description":"How the operation was triggered."},{"schema":{"type":"string","minLength":1},"in":"path","name":"blueprint_identifier","required":true,"description":"The identifier of the blueprint to operate on."}],"security":[{"bearer":[]}],"x-should-be-exposed-to-customers":true,"responses":{"201":{"description":"Created successfully.","content":{"application/json":{"schema":{"description":"Created successfully.","type":"object","properties":{"ok":{"enum":[true]},"entity":{"type":"object","properties":{"identifier":{"oneOf":[{"type":["string"],"pattern":"^(?!\\.{1,2}$)[\\p{L}0-9@_.+:\\\\/='-]+$","maxLength":1000,"title":"String identifier","description":"The identifier of the entity."},{"$ref":"#/components/schemas/def-5","title":"Search query"}]},"title":{"type":"string","description":"The title of the entity."},"icon":{"type":"string","description":"The icon of the entity."},"team":{"oneOf":[{"title":"Team (Single)","type":"string","description":"The Port team/s to which the entity will belong."},{"title":"Teams (Multiple)","type":"array","items":{"type":"string"},"description":"The Port team/s to which the entity will belong."},{"title":"Additional query","$ref":"#/components/schemas/def-6"},{"title":"Union source slice","description":"Only valid when the blueprint's \"ownership.union\" is enabled: a single source key mapped to that source's slice of owning teams, as in `{ \"<sourceKey>\": [\"team-a\"] }`. The slice may also be a search query.","type":"object","minProperties":1,"maxProperties":1,"additionalProperties":{"anyOf":[{"type":["array","null"],"items":{"type":"string"}},{"$ref":"#/components/schemas/def-6"}]}}]},"properties":{"type":"object","default":{},"description":"An object containing the properties of the entity, in `\"key\":\"value\"` pairs where the `key` is the property's identifier, and the `value` is its value."},"relations":{"type":"object","description":"An object containing the relations of the entity, in `\"key\":\"value\"` pairs where the `key` is the relation's identifier, and the `value` is the related entity's identifier for single-relations, or an array of identifiers for many-relations.<br/>You can also use a [search query](https://docs.port.io/context-lake/ingestion/configure-mapping/configuration-methods#mapping-relations-using-search-queries) to define relations based on a property of the related entity.","additionalProperties":{"anyOf":[{"type":"string","pattern":"^(?!\\.{1,2}$)[\\p{L}0-9@_.+:\\\\/='-]+$","maxLength":1000,"title":"string"},{"type":"array","items":{"type":"string","pattern":"^(?!\\.{1,2}$)[\\p{L}0-9@_.+:\\\\/='-]+$"},"title":"array"},{"type":"null","title":"null"},{"$ref":"#/components/schemas/def-6"},{"title":"Union source slice","description":"Only valid for relations with \"union\" enabled: a single source key mapped to that source's slice of targets, as in `{ \"<sourceKey>\": [\"target-id\"] }`. The slice may also be a search query.","type":"object","minProperties":1,"maxProperties":1,"additionalProperties":{"anyOf":[{"type":["array","null"],"items":{"type":"string","pattern":"^(?!\\.{1,2}$)[\\p{L}0-9@_.+:\\\\/='-]+$"}},{"$ref":"#/components/schemas/def-6"}]}}]}}},"additionalProperties":false}},"required":["entity","ok"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}},"413":{"description":"Request body is too large (limit is 1MiB)","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false,"description":"Request body is too large (limit is 1MiB)"}}}},"422":{"description":"The json provided does not match the route's schema","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"The json provided does not match the route's schema"}}}}}},"get":{"summary":"Get all entities of a blueprint","tags":["Entities"],"description":"This route allows you to fetch all entities in your software catalog based on a given blueprint.<br/><br/>**Not recommended for large datasets:** This endpoint does not support pagination and may fail or return errors when a blueprint contains a large number of entities. For large datasets, use the [Search a blueprint's entities](https://docs.port.io/api-reference/search-a-blueprints-entities) endpoint instead, which supports pagination via the `limit` and `from` body parameters.<br/><br/>To learn more about entities, check out the [documentation](https://docs.port.io/context-lake/ingestion/overview/#entities).","parameters":[{"schema":{"type":"boolean","default":false},"in":"query","name":"exclude_calculated_properties","required":false,"description":"If `true`, [calculated properties](https://docs.port.io/context-lake/data-model/setup-blueprint/properties/calculation-property/) will be excluded from the entities."},{"schema":{"type":"array","items":{"type":"string"}},"in":"query","name":"include","required":false,"description":"An array of values from the [entity JSON](https://docs.port.io/context-lake/ingestion/ingest-data-into-port/native-integrations/overview/#json-structure). Only these values will be returned in the response.<br/>For example: `{ \"properties.propertyIdentifier\",\"identifier\"}`."},{"schema":{"type":"array","items":{"type":"string"}},"in":"query","name":"exclude","required":false,"description":"An array of values from the [entity JSON](https://docs.port.io/context-lake/ingestion/ingest-data-into-port/native-integrations/overview/#json-structure) to be ommitted from the response.<br/>For example: `{ \"properties.propertyIdentifier\",\"identifier\"}`"},{"schema":{"type":"boolean","default":false},"in":"query","name":"attach_title_to_relation","required":false},{"schema":{"type":"boolean","default":false},"in":"query","name":"attach_identifier_to_title_mirror_properties","required":false},{"schema":{"type":"boolean","default":false},"in":"query","name":"allow_partial_results","required":false,"description":"When enabled allows some of the blueprint searches to fail without failing the full request."},{"schema":{"type":"string","minLength":1},"in":"path","name":"blueprint_identifier","required":true,"description":"The identifier of the blueprint to operate on."}],"security":[{"bearer":["read:entities"]}],"x-should-be-exposed-to-customers":true,"responses":{"200":{"description":"Retrieved successfully.","content":{"application/json":{"schema":{"description":"Retrieved successfully.","type":"object","properties":{"ok":{"enum":[true]},"entities":{"type":"array","items":{"type":"object","properties":{"identifier":{"oneOf":[{"type":["string"],"pattern":"^(?!\\.{1,2}$)[\\p{L}0-9@_.+:\\\\/='-]+$","maxLength":1000,"title":"String identifier","description":"The identifier of the entity."},{"$ref":"#/components/schemas/def-5","title":"Search query"}]},"title":{"type":"string","description":"The title of the entity."},"icon":{"type":"string","description":"The icon of the entity."},"team":{"oneOf":[{"title":"Team (Single)","type":"string","description":"The Port team/s to which the entity will belong."},{"title":"Teams (Multiple)","type":"array","items":{"type":"string"},"description":"The Port team/s to which the entity will belong."},{"title":"Additional query","$ref":"#/components/schemas/def-6"},{"title":"Union source slice","description":"Only valid when the blueprint's \"ownership.union\" is enabled: a single source key mapped to that source's slice of owning teams, as in `{ \"<sourceKey>\": [\"team-a\"] }`. The slice may also be a search query.","type":"object","minProperties":1,"maxProperties":1,"additionalProperties":{"anyOf":[{"type":["array","null"],"items":{"type":"string"}},{"$ref":"#/components/schemas/def-6"}]}}]},"properties":{"type":"object","default":{},"description":"An object containing the properties of the entity, in `\"key\":\"value\"` pairs where the `key` is the property's identifier, and the `value` is its value."},"relations":{"type":"object","description":"An object containing the relations of the entity, in `\"key\":\"value\"` pairs where the `key` is the relation's identifier, and the `value` is the related entity's identifier for single-relations, or an array of identifiers for many-relations.<br/>You can also use a [search query](https://docs.port.io/context-lake/ingestion/configure-mapping/configuration-methods#mapping-relations-using-search-queries) to define relations based on a property of the related entity.","additionalProperties":{"anyOf":[{"type":"string","pattern":"^(?!\\.{1,2}$)[\\p{L}0-9@_.+:\\\\/='-]+$","maxLength":1000,"title":"string"},{"type":"array","items":{"type":"string","pattern":"^(?!\\.{1,2}$)[\\p{L}0-9@_.+:\\\\/='-]+$"},"title":"array"},{"type":"null","title":"null"},{"$ref":"#/components/schemas/def-6"},{"title":"Union source slice","description":"Only valid for relations with \"union\" enabled: a single source key mapped to that source's slice of targets, as in `{ \"<sourceKey>\": [\"target-id\"] }`. The slice may also be a search query.","type":"object","minProperties":1,"maxProperties":1,"additionalProperties":{"anyOf":[{"type":["array","null"],"items":{"type":"string","pattern":"^(?!\\.{1,2}$)[\\p{L}0-9@_.+:\\\\/='-]+$"}},{"$ref":"#/components/schemas/def-6"}]}}]}}},"additionalProperties":false}}},"required":["entities","ok"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}}}}},"/v1/blueprints/{blueprint_identifier}/entities/bulk":{"post":{"summary":"Create multiple entities","tags":["Entities"],"description":"This route allows you to create multiple entities (No more than 20 entities per request) in your software catalog based on an existing blueprint in your data model. It can also be used to overwrite or update existing entities.<br/><br/>To learn more about entities, check out the [documentation](https://docs.port.io/context-lake/ingestion/overview/#entities).<br/><br/> **Note:** A failure response does not necessarily mean that all entities failed. A `207 Multi-Status` response indicates that some entities were successfully created while others failed.","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"entities":{"type":"array","items":{"type":"object","properties":{"identifier":{"oneOf":[{"type":["string"],"pattern":"^(?!\\.{1,2}$)[\\p{L}0-9@_.+:\\\\/='-]+$","maxLength":1000,"title":"String identifier","description":"The identifier of the entity."},{"$ref":"#/components/schemas/def-5","title":"Search query"}]},"title":{"type":"string","description":"The title of the entity."},"icon":{"type":"string","description":"The icon of the entity."},"team":{"oneOf":[{"title":"Team (Single)","type":"string","description":"The Port team/s to which the entity will belong."},{"title":"Teams (Multiple)","type":"array","items":{"type":"string"},"description":"The Port team/s to which the entity will belong."},{"title":"Additional query","$ref":"#/components/schemas/def-6"},{"title":"Union source slice","description":"Only valid when the blueprint's \"ownership.union\" is enabled: a single source key mapped to that source's slice of owning teams, as in `{ \"<sourceKey>\": [\"team-a\"] }`. The slice may also be a search query.","type":"object","minProperties":1,"maxProperties":1,"additionalProperties":{"anyOf":[{"type":["array","null"],"items":{"type":"string"}},{"$ref":"#/components/schemas/def-6"}]}}]},"properties":{"type":"object","default":{},"description":"An object containing the properties of the entity, in `\"key\":\"value\"` pairs where the `key` is the property's identifier, and the `value` is its value."},"relations":{"type":"object","description":"An object containing the relations of the entity, in `\"key\":\"value\"` pairs where the `key` is the relation's identifier, and the `value` is the related entity's identifier for single-relations, or an array of identifiers for many-relations.<br/>You can also use a [search query](https://docs.port.io/context-lake/ingestion/configure-mapping/configuration-methods#mapping-relations-using-search-queries) to define relations based on a property of the related entity.","additionalProperties":{"anyOf":[{"type":"string","pattern":"^(?!\\.{1,2}$)[\\p{L}0-9@_.+:\\\\/='-]+$","maxLength":1000,"title":"string"},{"type":"array","items":{"type":"string","pattern":"^(?!\\.{1,2}$)[\\p{L}0-9@_.+:\\\\/='-]+$"},"title":"array"},{"type":"null","title":"null"},{"$ref":"#/components/schemas/def-6"},{"title":"Union source slice","description":"Only valid for relations with \"union\" enabled: a single source key mapped to that source's slice of targets, as in `{ \"<sourceKey>\": [\"target-id\"] }`. The slice may also be a search query.","type":"object","minProperties":1,"maxProperties":1,"additionalProperties":{"anyOf":[{"type":["array","null"],"items":{"type":"string","pattern":"^(?!\\.{1,2}$)[\\p{L}0-9@_.+:\\\\/='-]+$"}},{"$ref":"#/components/schemas/def-6"}]}}]}}},"additionalProperties":true},"description":"Array of entities to create","minItems":1,"maxItems":20}},"required":["entities"],"additionalProperties":false}}},"required":true},"parameters":[{"schema":{"type":"boolean","default":false},"in":"query","name":"upsert","required":true,"description":"If `true`, this call will override the entire entity/ies, if it/they already exist/s."},{"schema":{"type":"boolean","default":false},"in":"query","name":"validation_only","required":false,"description":"If `true`, this call will only validate the entity/ies and return the validation errors."},{"schema":{"type":"boolean","default":false},"in":"query","name":"create_missing_related_entities","required":false,"description":"If `true`, this call will also create missing related entities.<br/>This is useful when you want to create an entity and its related entities in one call, or if you want to create an entity whose related entity does not exist yet."},{"schema":{"type":"boolean","default":false},"in":"query","name":"merge","required":false,"description":"If `true` and `upsert` is also `true`, this call will update the entity/ies, if it/they already exist/s."},{"schema":{"type":"string"},"in":"query","name":"run_id","required":false,"description":"You can provide a `run_id` to associate the created entities with a specific [action run](https://docs.port.io/workflows/actions-and-automations/reflect-action-progress/#tying-entities-to-an-action-run)."},{"schema":{"type":"string"},"in":"query","name":"node_run_identifier","required":false,"description":"The unique identifier of the workflow node run."},{"schema":{"type":"string"},"in":"query","name":"ocean_info_resync_id","required":false,"description":"Resync run identifier. Only valid when `ocean_info_event_type` is `resync`."},{"schema":{"type":"string"},"in":"query","name":"ocean_info_event_type","required":false,"description":"How the operation was triggered."},{"schema":{"type":"string","minLength":1},"in":"path","name":"blueprint_identifier","required":true,"description":"The identifier of the blueprint to operate on."}],"security":[{"bearer":[]}],"x-should-be-exposed-to-customers":true,"responses":{"200":{"description":"Created successfully.","content":{"application/json":{"schema":{"description":"Created successfully.","type":"object","properties":{"ok":{"type":"boolean"},"maxBulkSize":{"type":"number"},"entities":{"type":"array","items":{"type":"object","properties":{"created":{"type":"boolean"},"updated":{"type":"boolean"},"identifier":{"type":"string"},"index":{"type":"number"},"additionalData":{"type":"object","additionalProperties":true}},"required":["created","updated","identifier","index"]}},"errors":{"type":"array","items":{"type":"object","properties":{"identifier":{"type":"string"},"index":{"type":"number"},"statusCode":{"type":"number"},"error":{"type":"string"},"message":{"type":"string"}},"required":["identifier","index","statusCode","error","message"]},"description":"Failed entities with error details"}},"required":["ok","entities","errors","ok"],"additionalProperties":false}}}},"207":{"description":"Partially created successfully. Some entities were created while others failed.","content":{"application/json":{"schema":{"description":"Partially created successfully. Some entities were created while others failed.","type":"object","properties":{"ok":{"type":"boolean"},"maxBulkSize":{"type":"number"},"entities":{"type":"array","items":{"type":"object","properties":{"created":{"type":"boolean"},"updated":{"type":"boolean"},"identifier":{"type":"string"},"index":{"type":"number"},"additionalData":{"type":"object","additionalProperties":true}},"required":["created","updated","identifier","index"]}},"errors":{"type":"array","items":{"type":"object","properties":{"identifier":{"type":"string"},"index":{"type":"number"},"statusCode":{"type":"number"},"error":{"type":"string"},"message":{"type":"string"}},"required":["identifier","index","statusCode","error","message"]},"description":"Failed entities with error details"}},"required":["ok","entities","errors","ok"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}},"413":{"description":"Request body is too large (limit is 1MiB)","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false,"description":"Request body is too large (limit is 1MiB)"}}}},"422":{"description":"The json provided does not match the route's schema","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"The json provided does not match the route's schema"}}}}}}},"/v1/blueprints/{blueprint_identifier}/entities/{entity_identifier}":{"patch":{"summary":"Update an entity","tags":["Entities"],"description":"This route allows you to edit a specific entity in your software catalog and update its properties.<br/><br/>To learn more about entities, check out the [documentation](https://docs.port.io/context-lake/ingestion/overview/#entities).","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"identifier":{"type":["string"],"pattern":"^(?!\\.{1,2}$)[\\p{L}0-9@_.+:\\\\/='-]+$","maxLength":1000,"description":"The identifier of the entity."},"title":{"type":["string","null"],"description":"The title of the entity."},"icon":{"type":["string","null"],"description":"The icon of the entity."},"team":{"oneOf":[{"type":["string","null"]},{"type":"array","items":{"type":"string"}},{"$ref":"#/components/schemas/def-6"},{"title":"Union source slice","description":"Only valid when the blueprint's \"ownership.union\" is enabled: a single source key mapped to that source's slice of owning teams, as in `{ \"<sourceKey>\": [\"team-a\"] }`. The slice may also be a search query.","type":"object","minProperties":1,"maxProperties":1,"additionalProperties":{"anyOf":[{"type":["array","null"],"items":{"type":"string"}},{"$ref":"#/components/schemas/def-6"}]}}],"description":"The Port team/s to which the entity will belong."},"properties":{"type":"object","propertyNames":{"pattern":"^[A-Za-z0-9@_=\\\\-]+$"},"description":"An object containing the properties of the entity, in `\"key\":\"value\"` pairs where the `key` is the property's identifier, and the `value` is its value."},"relations":{"type":"object","description":"An object containing the relations of the entity, in `\"key\":\"value\"` pairs where the `key` is the relation's identifier, and the `value` is the related entity's identifier for single-relations, or an array of identifiers for many-relations.<br/>You can also use a [search query](https://docs.port.io/context-lake/ingestion/configure-mapping/configuration-methods#mapping-relations-using-search-queries) to define relations based on a property of the related entity.","additionalProperties":{"anyOf":[{"type":"string","pattern":"^(?!\\.{1,2}$)[\\p{L}0-9@_.+:\\\\/='-]+$","maxLength":1000},{"type":"array","items":{"type":"string","pattern":"^(?!\\.{1,2}$)[\\p{L}0-9@_.+:\\\\/='-]+$"}},{"type":"null"},{"$ref":"#/components/schemas/def-6"},{"title":"Union source slice","description":"Only valid for relations with \"union\" enabled: a single source key mapped to that source's slice of targets, as in `{ \"<sourceKey>\": [\"target-id\"] }`. The slice may also be a search query.","type":"object","minProperties":1,"maxProperties":1,"additionalProperties":{"anyOf":[{"type":["array","null"],"items":{"type":"string","pattern":"^(?!\\.{1,2}$)[\\p{L}0-9@_.+:\\\\/='-]+$"}},{"$ref":"#/components/schemas/def-6"}]}}]}}},"additionalProperties":false}}}},"parameters":[{"schema":{"type":"boolean","default":false},"in":"query","name":"create_missing_related_entities","required":false,"description":"If `true`, this call will also create missing related entities.<br/>This is useful when you want to create an entity and its related entities in one call, or if you want to create an entity whose related entity does not exist yet."},{"schema":{"type":"string"},"in":"query","name":"run_id","required":false,"description":"You can provide a `run_id` to associate the created entities with a specific [action run](https://docs.port.io/workflows/actions-and-automations/reflect-action-progress/#tying-entities-to-an-action-run)."},{"schema":{"type":"string"},"in":"query","name":"node_run_identifier","required":false,"description":"The unique identifier of the workflow node run."},{"schema":{"type":"string"},"in":"query","name":"ocean_info_resync_id","required":false,"description":"Resync run identifier. Only valid when `ocean_info_event_type` is `resync`."},{"schema":{"type":"string"},"in":"query","name":"ocean_info_event_type","required":false,"description":"How the operation was triggered."},{"schema":{"type":"string","minLength":1},"in":"path","name":"entity_identifier","required":true,"description":"The identifier of the entity to operate on."},{"schema":{"type":"string","minLength":1},"in":"path","name":"blueprint_identifier","required":true,"description":"The identifier of the blueprint to operate on."}],"security":[{"bearer":[]}],"x-should-be-exposed-to-customers":true,"responses":{"200":{"description":"Updated successfully.","content":{"application/json":{"schema":{"description":"Updated successfully.","type":"object","properties":{"ok":{"enum":[true]},"entity":{"type":"object","properties":{"identifier":{"oneOf":[{"type":["string"],"pattern":"^(?!\\.{1,2}$)[\\p{L}0-9@_.+:\\\\/='-]+$","maxLength":1000,"title":"String identifier","description":"The identifier of the entity."},{"$ref":"#/components/schemas/def-5","title":"Search query"}]},"title":{"type":"string","description":"The title of the entity."},"icon":{"type":"string","description":"The icon of the entity."},"team":{"oneOf":[{"title":"Team (Single)","type":"string","description":"The Port team/s to which the entity will belong."},{"title":"Teams (Multiple)","type":"array","items":{"type":"string"},"description":"The Port team/s to which the entity will belong."},{"title":"Additional query","$ref":"#/components/schemas/def-6"},{"title":"Union source slice","description":"Only valid when the blueprint's \"ownership.union\" is enabled: a single source key mapped to that source's slice of owning teams, as in `{ \"<sourceKey>\": [\"team-a\"] }`. The slice may also be a search query.","type":"object","minProperties":1,"maxProperties":1,"additionalProperties":{"anyOf":[{"type":["array","null"],"items":{"type":"string"}},{"$ref":"#/components/schemas/def-6"}]}}]},"properties":{"type":"object","default":{},"description":"An object containing the properties of the entity, in `\"key\":\"value\"` pairs where the `key` is the property's identifier, and the `value` is its value."},"relations":{"type":"object","description":"An object containing the relations of the entity, in `\"key\":\"value\"` pairs where the `key` is the relation's identifier, and the `value` is the related entity's identifier for single-relations, or an array of identifiers for many-relations.<br/>You can also use a [search query](https://docs.port.io/context-lake/ingestion/configure-mapping/configuration-methods#mapping-relations-using-search-queries) to define relations based on a property of the related entity.","additionalProperties":{"anyOf":[{"type":"string","pattern":"^(?!\\.{1,2}$)[\\p{L}0-9@_.+:\\\\/='-]+$","maxLength":1000,"title":"string"},{"type":"array","items":{"type":"string","pattern":"^(?!\\.{1,2}$)[\\p{L}0-9@_.+:\\\\/='-]+$"},"title":"array"},{"type":"null","title":"null"},{"$ref":"#/components/schemas/def-6"},{"title":"Union source slice","description":"Only valid for relations with \"union\" enabled: a single source key mapped to that source's slice of targets, as in `{ \"<sourceKey>\": [\"target-id\"] }`. The slice may also be a search query.","type":"object","minProperties":1,"maxProperties":1,"additionalProperties":{"anyOf":[{"type":["array","null"],"items":{"type":"string","pattern":"^(?!\\.{1,2}$)[\\p{L}0-9@_.+:\\\\/='-]+$"}},{"$ref":"#/components/schemas/def-6"}]}}]}}},"additionalProperties":false}},"required":["entity","ok"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}},"413":{"description":"Request body is too large (limit is 1MiB)","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false,"description":"Request body is too large (limit is 1MiB)"}}}},"422":{"description":"The json provided does not match the route's schema","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"The json provided does not match the route's schema"}}}}}},"put":{"summary":"Change an entity","tags":["Entities"],"description":"This route allows you to edit a specific entity in your software catalog and update its properties.<br/><br/>To learn more about entities, check out the [documentation](https://docs.port.io/context-lake/ingestion/overview/#entities).","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"identifier":{"type":["string"],"pattern":"^(?!\\.{1,2}$)[\\p{L}0-9@_.+:\\\\/='-]+$","maxLength":1000,"description":"The identifier of the entity."},"title":{"type":"string","description":"The title of the entity."},"icon":{"type":"string","description":"The icon of the entity."},"team":{"oneOf":[{"title":"Team (Single)","type":"string","description":"The Port team/s to which the entity will belong."},{"title":"Teams (Multiple)","type":"array","items":{"type":"string"},"description":"The Port team/s to which the entity will belong."},{"title":"Additional query","$ref":"#/components/schemas/def-6"},{"title":"Union source slice","description":"Only valid when the blueprint's \"ownership.union\" is enabled: a single source key mapped to that source's slice of owning teams, as in `{ \"<sourceKey>\": [\"team-a\"] }`. The slice may also be a search query.","type":"object","minProperties":1,"maxProperties":1,"additionalProperties":{"anyOf":[{"type":["array","null"],"items":{"type":"string"}},{"$ref":"#/components/schemas/def-6"}]}}],"description":"The Port team/s to which the entity will belong."},"properties":{"type":"object","default":{},"description":"An object containing the properties of the entity, in `\"key\":\"value\"` pairs where the `key` is the property's identifier, and the `value` is its value."},"relations":{"type":"object","description":"An object containing the relations of the entity, in `\"key\":\"value\"` pairs where the `key` is the relation's identifier, and the `value` is the related entity's identifier for single-relations, or an array of identifiers for many-relations.<br/>You can also use a [search query](https://docs.port.io/context-lake/ingestion/configure-mapping/configuration-methods#mapping-relations-using-search-queries) to define relations based on a property of the related entity.","additionalProperties":{"anyOf":[{"type":"string","pattern":"^(?!\\.{1,2}$)[\\p{L}0-9@_.+:\\\\/='-]+$","maxLength":1000},{"type":"array","items":{"type":"string","pattern":"^(?!\\.{1,2}$)[\\p{L}0-9@_.+:\\\\/='-]+$"}},{"type":"null"},{"$ref":"#/components/schemas/def-6"},{"title":"Union source slice","description":"Only valid for relations with \"union\" enabled: a single source key mapped to that source's slice of targets, as in `{ \"<sourceKey>\": [\"target-id\"] }`. The slice may also be a search query.","type":"object","minProperties":1,"maxProperties":1,"additionalProperties":{"anyOf":[{"type":["array","null"],"items":{"type":"string","pattern":"^(?!\\.{1,2}$)[\\p{L}0-9@_.+:\\\\/='-]+$"}},{"$ref":"#/components/schemas/def-6"}]}}]}}},"additionalProperties":true}}}},"parameters":[{"schema":{"type":"boolean","default":false},"in":"query","name":"create_missing_related_entities","required":false,"description":"If `true`, this call will also create missing related entities.<br/>This is useful when you want to create an entity and its related entities in one call, or if you want to create an entity whose related entity does not exist yet."},{"schema":{"type":"string"},"in":"query","name":"run_id","required":false,"description":"You can provide a `run_id` to associate the created entities with a specific [action run](https://docs.port.io/workflows/actions-and-automations/reflect-action-progress/#tying-entities-to-an-action-run)."},{"schema":{"type":"string"},"in":"query","name":"node_run_identifier","required":false,"description":"The unique identifier of the workflow node run."},{"schema":{"type":"string"},"in":"query","name":"ocean_info_resync_id","required":false,"description":"Resync run identifier. Only valid when `ocean_info_event_type` is `resync`."},{"schema":{"type":"string"},"in":"query","name":"ocean_info_event_type","required":false,"description":"How the operation was triggered."},{"schema":{"type":"string","minLength":1},"in":"path","name":"entity_identifier","required":true,"description":"The identifier of the entity to operate on."},{"schema":{"type":"string","minLength":1},"in":"path","name":"blueprint_identifier","required":true,"description":"The identifier of the blueprint to operate on."}],"security":[{"bearer":[]}],"x-should-be-exposed-to-customers":true,"responses":{"200":{"description":"Updated successfully.","content":{"application/json":{"schema":{"description":"Updated successfully.","type":"object","properties":{"ok":{"enum":[true]},"entity":{"type":"object","properties":{"identifier":{"oneOf":[{"type":["string"],"pattern":"^(?!\\.{1,2}$)[\\p{L}0-9@_.+:\\\\/='-]+$","maxLength":1000,"title":"String identifier","description":"The identifier of the entity."},{"$ref":"#/components/schemas/def-5","title":"Search query"}]},"title":{"type":"string","description":"The title of the entity."},"icon":{"type":"string","description":"The icon of the entity."},"team":{"oneOf":[{"title":"Team (Single)","type":"string","description":"The Port team/s to which the entity will belong."},{"title":"Teams (Multiple)","type":"array","items":{"type":"string"},"description":"The Port team/s to which the entity will belong."},{"title":"Additional query","$ref":"#/components/schemas/def-6"},{"title":"Union source slice","description":"Only valid when the blueprint's \"ownership.union\" is enabled: a single source key mapped to that source's slice of owning teams, as in `{ \"<sourceKey>\": [\"team-a\"] }`. The slice may also be a search query.","type":"object","minProperties":1,"maxProperties":1,"additionalProperties":{"anyOf":[{"type":["array","null"],"items":{"type":"string"}},{"$ref":"#/components/schemas/def-6"}]}}]},"properties":{"type":"object","default":{},"description":"An object containing the properties of the entity, in `\"key\":\"value\"` pairs where the `key` is the property's identifier, and the `value` is its value."},"relations":{"type":"object","description":"An object containing the relations of the entity, in `\"key\":\"value\"` pairs where the `key` is the relation's identifier, and the `value` is the related entity's identifier for single-relations, or an array of identifiers for many-relations.<br/>You can also use a [search query](https://docs.port.io/context-lake/ingestion/configure-mapping/configuration-methods#mapping-relations-using-search-queries) to define relations based on a property of the related entity.","additionalProperties":{"anyOf":[{"type":"string","pattern":"^(?!\\.{1,2}$)[\\p{L}0-9@_.+:\\\\/='-]+$","maxLength":1000,"title":"string"},{"type":"array","items":{"type":"string","pattern":"^(?!\\.{1,2}$)[\\p{L}0-9@_.+:\\\\/='-]+$"},"title":"array"},{"type":"null","title":"null"},{"$ref":"#/components/schemas/def-6"},{"title":"Union source slice","description":"Only valid for relations with \"union\" enabled: a single source key mapped to that source's slice of targets, as in `{ \"<sourceKey>\": [\"target-id\"] }`. The slice may also be a search query.","type":"object","minProperties":1,"maxProperties":1,"additionalProperties":{"anyOf":[{"type":["array","null"],"items":{"type":"string","pattern":"^(?!\\.{1,2}$)[\\p{L}0-9@_.+:\\\\/='-]+$"}},{"$ref":"#/components/schemas/def-6"}]}}]}}},"additionalProperties":false}},"required":["entity","ok"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}},"413":{"description":"Request body is too large (limit is 1MiB)","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false,"description":"Request body is too large (limit is 1MiB)"}}}},"422":{"description":"The json provided does not match the route's schema","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"The json provided does not match the route's schema"}}}}}},"get":{"summary":"Get an entity","tags":["Entities"],"description":"This route allows you to fetch a specific entity in your software catalog.<br/><br/>To learn more about entities, check out the [documentation](https://docs.port.io/context-lake/ingestion/overview/#entities).","parameters":[{"schema":{"type":"boolean","default":false},"in":"query","name":"exclude_calculated_properties","required":false,"description":"If `true`, [calculated properties](https://docs.port.io/context-lake/data-model/setup-blueprint/properties/calculation-property/) will be excluded from the entities."},{"schema":{"type":"array","items":{"type":"string"}},"in":"query","name":"include","required":false,"description":"An array of values from the [entity JSON](https://docs.port.io/context-lake/ingestion/ingest-data-into-port/native-integrations/overview/#json-structure). Only these values will be returned in the response.<br/>For example: `{ \"properties.propertyIdentifier\",\"identifier\"}`."},{"schema":{"type":"array","items":{"type":"string"}},"in":"query","name":"exclude","required":false,"description":"An array of values from the [entity JSON](https://docs.port.io/context-lake/ingestion/ingest-data-into-port/native-integrations/overview/#json-structure) to be ommitted from the response.<br/>For example: `{ \"properties.propertyIdentifier\",\"identifier\"}`"},{"schema":{"type":"boolean","default":false},"in":"query","name":"attach_title_to_relation","required":false},{"schema":{"type":"boolean","default":false},"in":"query","name":"attach_identifier_to_title_mirror_properties","required":false},{"schema":{"type":"boolean","default":false},"in":"query","name":"allow_partial_results","required":false,"description":"When enabled allows some of the blueprint searches to fail without failing the full request."},{"schema":{"type":"string","minLength":1},"in":"path","name":"entity_identifier","required":true,"description":"The identifier of the entity to operate on."},{"schema":{"type":"string","minLength":1},"in":"path","name":"blueprint_identifier","required":true,"description":"The identifier of the blueprint to operate on."}],"security":[{"bearer":["read:entities"]}],"x-should-be-exposed-to-customers":true,"responses":{"200":{"description":"Retrieved successfully.","content":{"application/json":{"schema":{"description":"Retrieved successfully.","type":"object","properties":{"ok":{"enum":[true]},"entity":{"type":"object","properties":{"identifier":{"oneOf":[{"type":["string"],"pattern":"^(?!\\.{1,2}$)[\\p{L}0-9@_.+:\\\\/='-]+$","maxLength":1000,"title":"String identifier","description":"The identifier of the entity."},{"$ref":"#/components/schemas/def-5","title":"Search query"}]},"title":{"type":"string","description":"The title of the entity."},"icon":{"type":"string","description":"The icon of the entity."},"team":{"oneOf":[{"title":"Team (Single)","type":"string","description":"The Port team/s to which the entity will belong."},{"title":"Teams (Multiple)","type":"array","items":{"type":"string"},"description":"The Port team/s to which the entity will belong."},{"title":"Additional query","$ref":"#/components/schemas/def-6"},{"title":"Union source slice","description":"Only valid when the blueprint's \"ownership.union\" is enabled: a single source key mapped to that source's slice of owning teams, as in `{ \"<sourceKey>\": [\"team-a\"] }`. The slice may also be a search query.","type":"object","minProperties":1,"maxProperties":1,"additionalProperties":{"anyOf":[{"type":["array","null"],"items":{"type":"string"}},{"$ref":"#/components/schemas/def-6"}]}}]},"properties":{"type":"object","default":{},"description":"An object containing the properties of the entity, in `\"key\":\"value\"` pairs where the `key` is the property's identifier, and the `value` is its value."},"relations":{"type":"object","description":"An object containing the relations of the entity, in `\"key\":\"value\"` pairs where the `key` is the relation's identifier, and the `value` is the related entity's identifier for single-relations, or an array of identifiers for many-relations.<br/>You can also use a [search query](https://docs.port.io/context-lake/ingestion/configure-mapping/configuration-methods#mapping-relations-using-search-queries) to define relations based on a property of the related entity.","additionalProperties":{"anyOf":[{"type":"string","pattern":"^(?!\\.{1,2}$)[\\p{L}0-9@_.+:\\\\/='-]+$","maxLength":1000,"title":"string"},{"type":"array","items":{"type":"string","pattern":"^(?!\\.{1,2}$)[\\p{L}0-9@_.+:\\\\/='-]+$"},"title":"array"},{"type":"null","title":"null"},{"$ref":"#/components/schemas/def-6"},{"title":"Union source slice","description":"Only valid for relations with \"union\" enabled: a single source key mapped to that source's slice of targets, as in `{ \"<sourceKey>\": [\"target-id\"] }`. The slice may also be a search query.","type":"object","minProperties":1,"maxProperties":1,"additionalProperties":{"anyOf":[{"type":["array","null"],"items":{"type":"string","pattern":"^(?!\\.{1,2}$)[\\p{L}0-9@_.+:\\\\/='-]+$"}},{"$ref":"#/components/schemas/def-6"}]}}]}}},"additionalProperties":false}},"required":["entity","ok"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}}}},"delete":{"summary":"Delete an entity","tags":["Entities"],"description":"This route allows you to delete a specific entity in your software catalog.<br/><br/>To learn more about entities, check out the [documentation](https://docs.port.io/context-lake/ingestion/overview/#entities).","parameters":[{"schema":{"type":"boolean","default":false},"in":"query","name":"delete_dependents","required":true,"description":"If `true`, this call will also delete all entities with a relation to the deleted entity."},{"schema":{"type":"boolean","default":false},"in":"query","name":"allow_partial_success","required":false,"description":"If `true`, missing identifiers and entities with required dependents are skipped and the rest are deleted (`207`). Default fails the whole batch (`404` / `403`)."},{"schema":{"type":"string"},"in":"query","name":"run_id","required":false,"description":"You can provide a `run_id` to associate the created entities with a specific [action run](https://docs.port.io/workflows/actions-and-automations/reflect-action-progress/#tying-entities-to-an-action-run)."},{"schema":{"type":"string"},"in":"query","name":"node_run_identifier","required":false,"description":"The unique identifier of the workflow node run."},{"schema":{"type":"string"},"in":"query","name":"ocean_info_resync_id","required":false,"description":"Resync run identifier. Only valid when `ocean_info_event_type` is `resync`."},{"schema":{"type":"string"},"in":"query","name":"ocean_info_event_type","required":false,"description":"How the operation was triggered."},{"schema":{"type":"string","minLength":1},"in":"path","name":"entity_identifier","required":true,"description":"The identifier of the entity to operate on."},{"schema":{"type":"string","minLength":1},"in":"path","name":"blueprint_identifier","required":true,"description":"The identifier of the blueprint to operate on."}],"security":[{"bearer":[]}],"x-should-be-exposed-to-customers":true,"responses":{"200":{"description":"Entities deleted successfully","content":{"application/json":{"schema":{"description":"Entities deleted successfully","properties":{"ok":{"enum":[true]}},"required":["ok"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}},"413":{"description":"Request body is too large (limit is 1MiB)","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false,"description":"Request body is too large (limit is 1MiB)"}}}},"422":{"description":"The json provided does not match the route's schema","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"The json provided does not match the route's schema"}}}}}}},"/v1/blueprints/{blueprint_identifier}/entities-count":{"get":{"summary":"Get a blueprint's entity count","tags":["Entities"],"description":"This route allows you to count the number of entities in a specific blueprint in your software catalog.<br/><br/>To learn more about entities, check out the [documentation](https://docs.port.io/context-lake/ingestion/overview/#entities).","parameters":[{"schema":{"type":"string","minLength":1},"in":"path","name":"blueprint_identifier","required":true,"description":"The identifier of the blueprint to operate on."}],"security":[{"bearer":[]}],"x-should-be-exposed-to-customers":true,"responses":{"200":{"description":"Retrieved successfully.","content":{"application/json":{"schema":{"description":"Retrieved successfully.","properties":{"ok":{"enum":[true]},"count":{"type":"number"}},"required":["ok"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}}}}},"/v1/blueprints/{blueprint_identifier}/all-entities":{"delete":{"summary":"Delete all entities of a blueprint","tags":["Entities"],"description":"This route allows you to delete all entities of a specific blueprint in your software catalog.<br/><br/>To learn more about entities, check out the [documentation](https://docs.port.io/context-lake/ingestion/overview/#entities).","parameters":[{"schema":{"type":"string"},"in":"query","name":"run_id","required":false,"description":"You can provide a `run_id` to associate the deleted entities with a specific [action run](https://docs.port.io/workflows/actions-and-automations/reflect-action-progress/#tying-entities-to-an-action-run)."},{"schema":{"type":"string"},"in":"query","name":"ocean_info_resync_id","required":false,"description":"Resync run identifier. Only valid when `ocean_info_event_type` is `resync`."},{"schema":{"type":"string"},"in":"query","name":"ocean_info_event_type","required":false,"description":"How the operation was triggered."},{"schema":{"type":"boolean"},"in":"query","name":"delete_blueprint","required":false,"description":"If `true`, this call will also delete the blueprint itself."},{"schema":{"type":"string","minLength":1},"in":"path","name":"blueprint_identifier","required":true,"description":"The identifier of the blueprint to operate on."}],"security":[{"bearer":[]}],"x-should-be-exposed-to-customers":true,"responses":{"200":{"description":"Entities deleted successfully","content":{"application/json":{"schema":{"description":"Entities deleted successfully","properties":{"ok":{"enum":[true]}},"required":["ok"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}},"413":{"description":"Request body is too large (limit is 1MiB)","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false,"description":"Request body is too large (limit is 1MiB)"}}}},"422":{"description":"The json provided does not match the route's schema","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"The json provided does not match the route's schema"}}}}}}},"/v1/blueprints/{blueprint_identifier}/bulk/entities/delete":{"post":{"summary":"Delete multiple entities","tags":["Entities"],"description":"This route allows you to delete multiple entities (up to 100 entities per request) from a specific blueprint in your software catalog. All entities must belong to the same blueprint.<br/><br/>If any identifier is missing, the entire operation fails with 404 and nothing is deleted. If any entity has required dependents and `delete_dependents` is false, the entire operation fails with 403 and nothing is deleted.<br/><br/>Pass `allow_partial_success=true` to skip missing identifiers and entities with required dependents, delete the rest, and return `207 Multi-Status` with `errors` for the skipped identifiers. If nothing could be deleted, the request still fails with 404 (all missing) or 403 (all have required dependents).<br/><br/>Pass `delete_dependents=true` to delete required dependents together with the requested entities.<br/><br/>To learn more about entities, check out the [documentation](https://docs.port.io/context-lake/ingestion/overview/#entities).","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"entities":{"type":"array","items":{"type":"string"},"description":"Array of entity identifiers to delete","minItems":1,"maxItems":100}},"required":["entities"],"additionalProperties":false}}},"required":true},"parameters":[{"schema":{"type":"boolean","default":false},"in":"query","name":"delete_dependents","required":true,"description":"If `true`, this call will also delete all entities with a relation to the deleted entity."},{"schema":{"type":"boolean","default":false},"in":"query","name":"allow_partial_success","required":false,"description":"If `true`, missing identifiers and entities with required dependents are skipped and the rest are deleted (`207`). Default fails the whole batch (`404` / `403`)."},{"schema":{"type":"string"},"in":"query","name":"run_id","required":false,"description":"You can provide a `run_id` to associate the created entities with a specific [action run](https://docs.port.io/workflows/actions-and-automations/reflect-action-progress/#tying-entities-to-an-action-run)."},{"schema":{"type":"string"},"in":"query","name":"node_run_identifier","required":false,"description":"The unique identifier of the workflow node run."},{"schema":{"type":"string"},"in":"query","name":"ocean_info_resync_id","required":false,"description":"Resync run identifier. Only valid when `ocean_info_event_type` is `resync`."},{"schema":{"type":"string"},"in":"query","name":"ocean_info_event_type","required":false,"description":"How the operation was triggered."},{"schema":{"type":"string","minLength":1},"in":"path","name":"blueprint_identifier","required":true,"description":"The identifier of the blueprint to operate on."}],"security":[{"bearer":[]}],"x-should-be-exposed-to-customers":true,"responses":{"200":{"description":"Entities deleted successfully.","content":{"application/json":{"schema":{"description":"Entities deleted successfully.","type":"object","properties":{"ok":{"enum":[true]},"deletedEntities":{"type":"array","items":{"type":"string"},"description":"Array of deleted entity IDs"},"maxBulkSize":{"type":"number"}},"required":["deletedEntities","ok"],"additionalProperties":false}}}},"207":{"description":"Partially deleted successfully. Some entities were deleted while others failed.","content":{"application/json":{"schema":{"description":"Partially deleted successfully. Some entities were deleted while others failed.","type":"object","properties":{"ok":{"enum":[true]},"deletedEntities":{"type":"array","items":{"type":"string"},"description":"Array of deleted entity IDs"},"errors":{"type":"array","items":{"type":"object","properties":{"identifier":{"type":"string"},"index":{"type":"number"},"statusCode":{"type":"number"},"error":{"type":"string"},"message":{"type":"string"}},"required":["identifier","index","statusCode","error","message"]},"description":"Failed entity identifiers with error details"},"maxBulkSize":{"type":"number"}},"required":["deletedEntities","errors","ok"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}},"413":{"description":"Request body is too large (limit is 1MiB)","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false,"description":"Request body is too large (limit is 1MiB)"}}}},"422":{"description":"The json provided does not match the route's schema","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"The json provided does not match the route's schema"}}}}}}},"/v1/entities/search":{"post":{"summary":"Search entities","tags":["Entities"],"description":"**This route is not supported.** Use [Search a blueprint's entities](https://docs.port.io/api-reference/search-a-blueprints-entities) (`POST /v1/blueprints/:blueprint_identifier/entities/search`) instead.<br/><br/>This route allows you to search for entities in your software catalog based on a given set of rules.<br/><br/>To learn more about entities, check out the [documentation](https://docs.port.io/context-lake/ingestion/overview/#entities).<br/><br/>For more details about Port's search mechanism, rules, and operators - see the [search & query documentation](https://docs.port.io/context-lake/consuming-the-lake/search-and-query/overview).","requestBody":{"content":{"application/json":{"schema":{"title":"Entities query","type":"object","properties":{"combinator":{"enum":["and","or"],"description":"The combinator to use for the rules."},"rules":{"type":"array","items":{"anyOf":[{"type":"object","title":"Date Rule","properties":{"property":{"title":"Contexted property","oneOf":[{"type":"string"},{"type":"object","title":"User-context field","properties":{"property":{"type":"string"},"context":{"type":"string","enum":["user","userTeams"]}},"required":["property","context"]}]},"operator":{"enum":["between","notBetween","="]},"value":{"type":"object","oneOf":[{"type":"object","title":"Date Range","properties":{"from":{"type":"string","format":"date-time"},"to":{"type":"string","format":"date-time"}},"required":["from","to"]},{"type":"object","title":"Date Preset","properties":{"preset":{"type":"string","enum":["today","tomorrow","yesterday","lastDay","lastWeek","last2Weeks","lastMonth","last3Months","last6Months","last12Months","last2Years","last3Years","nextDay","nextWeek","next2Weeks","nextMonth","next3Months","next6Months","next12Months"]}},"required":["preset"]},{"type":"object","title":"User-context field","properties":{"property":{"type":"string"},"context":{"type":"string","enum":["user","userTeams"]}},"required":["property","context"]}]}},"required":["property","operator","value"],"additionalProperties":false},{"type":"object","title":"Empty Rule","oneOf":[{"type":"object","title":"Empty Rule","properties":{"operator":{"enum":["isEmpty","isNotEmpty"]},"property":{"type":"string"}},"required":["operator","property"],"additionalProperties":false}]},{"type":"object","title":"Number Rule","properties":{"property":{"title":"Contexted property","oneOf":[{"type":"string"},{"type":"object","title":"User-context field","properties":{"property":{"type":"string"},"context":{"type":"string","enum":["user","userTeams"]}},"required":["property","context"]}]},"operator":{"enum":[">",">=","<","<="]},"value":{"anyOf":[{"type":"number","title":"number"},{"type":"string","format":"date-time","title":"date-time"},{"type":"object","title":"User-context field","properties":{"property":{"type":"string"},"context":{"type":"string","enum":["user","userTeams"]}},"required":["property","context"]}]}},"required":["property","operator","value"],"additionalProperties":false},{"type":"object","title":"Expired Rule","oneOf":[{"type":"object","title":"Expired Rule","properties":{"operator":{"enum":["isExpired","isNotExpired"]},"property":{"type":"string"}},"required":["operator","property"],"additionalProperties":false}]},{"type":"object","title":"String Rule","oneOf":[{"type":"object","title":"String Rule","properties":{"property":{"title":"Contexted property","oneOf":[{"type":"string"},{"type":"object","title":"User-context field","properties":{"property":{"type":"string"},"context":{"type":"string","enum":["user","userTeams"]}},"required":["property","context"]}]},"operator":{"enum":["=","!=","containsAny","contains","doesNotContains","beginsWith","doesNotBeginsWith","endsWith","doesNotEndsWith","in","notIn"]},"value":{"anyOf":[{"type":"null","title":"null"},{"type":"string","title":"string"},{"type":"number","title":"number"},{"type":"boolean","title":"boolean"},{"type":"string","format":"date-time","title":"date-time"},{"type":"array","items":{"type":"string"},"title":"array"},{"type":"array","items":{"type":"number"},"title":"array"},{"type":"array","items":{"type":"boolean"},"title":"array"},{"type":"array","items":{"type":"string","format":"date-time"},"title":"array"},{"type":"object","title":"User-context field","properties":{"property":{"type":"string"},"context":{"type":"string","enum":["user","userTeams"]}},"required":["property","context"]}]}},"additionalProperties":false,"required":["property","operator","value"]}]},{"type":"object","title":"Relation Rule","properties":{"operator":{"enum":["relatedTo"]},"blueprint":{"type":"string"},"value":{"anyOf":[{"type":"string","title":"string"},{"type":"array","items":{"type":"string"},"title":"array"}]},"direction":{"enum":["upstream","downstream"]},"required":{"type":"boolean"}},"additionalProperties":false,"required":["operator","value","blueprint"]},{"type":"object","title":"Property schema rule","properties":{"propertySchema":{"type":"object","properties":{"type":{"type":"string"},"format":{"type":"string"},"items":{"type":"object","properties":{"type":{"type":"string"},"format":{"type":"string"}},"required":["type"]}},"required":["type"],"additionalProperties":false},"operator":{"enum":["=","!=","contains"]},"value":{"anyOf":[{"type":"null","title":"null"},{"type":"string","title":"string"},{"type":"number","title":"number"},{"type":"boolean","title":"boolean"}]}},"required":["operator","propertySchema"],"additionalProperties":false},{"type":"object","title":"matchAny Rule","anyOf":[{"type":"object","title":"Property matchAny rule","properties":{"property":{"oneOf":[{"type":"object","title":"Path filter property","properties":{"path":{"type":"array","minItems":1,"items":{"anyOf":[{"type":"string","title":"Relation identifier"},{"type":"object","title":"Relation with max hops","properties":{"relation":{"type":"string"},"maxHops":{"type":"number","minimum":1,"maximum":15}}}]}},"fromBlueprint":{"type":"string"}},"required":["path"],"additionalProperties":false},{"title":"Contexted property","oneOf":[{"type":"string"},{"type":"object","title":"User-context field","properties":{"property":{"type":"string"},"context":{"type":"string","enum":["user","userTeams"]}},"required":["property","context"]}]}]},"operator":{"type":"string","enum":["matchAny"]},"value":{"anyOf":[{"type":"array","items":{"type":"string"}},{"title":"Contexted property","oneOf":[{"type":"string"},{"type":"object","title":"User-context field","properties":{"property":{"type":"string"},"context":{"type":"string","enum":["user","userTeams"]}},"required":["property","context"]}]}]}},"required":["property","operator","value"],"additionalProperties":false}]},{"allOf":[{"$ref":"#/components/schemas/def-1"},{"title":"Nested query"}]}]}}},"required":["combinator","rules"],"additionalProperties":false,"example":{"combinator":"and","rules":[{"property":"$blueprint","operator":"=","value":"service"},{"combinator":"or","rules":[{"property":"environment","operator":"=","value":"production"},{"property":"environment","operator":"=","value":"staging"}]}]}}}},"required":true},"parameters":[{"schema":{"type":"boolean","default":false},"in":"query","name":"exclude_calculated_properties","required":false,"description":"If `true`, [calculated properties](https://docs.port.io/context-lake/data-model/setup-blueprint/properties/calculation-property/) will be excluded from the entities."},{"schema":{"type":"array","items":{"type":"string"}},"in":"query","name":"include","required":false,"description":"An array of values from the [entity JSON](https://docs.port.io/context-lake/ingestion/ingest-data-into-port/native-integrations/overview/#json-structure). Only these values will be returned in the response.<br/>For example: `{ \"properties.propertyIdentifier\",\"identifier\"}`."},{"schema":{"type":"array","items":{"type":"string"}},"in":"query","name":"exclude","required":false,"description":"An array of values from the [entity JSON](https://docs.port.io/context-lake/ingestion/ingest-data-into-port/native-integrations/overview/#json-structure) to be ommitted from the response.<br/>For example: `{ \"properties.propertyIdentifier\",\"identifier\"}`"},{"schema":{"type":"boolean","default":false},"in":"query","name":"attach_title_to_relation","required":false},{"schema":{"type":"boolean","default":false},"in":"query","name":"attach_identifier_to_title_mirror_properties","required":false},{"schema":{"type":"boolean","default":false},"in":"query","name":"allow_partial_results","required":false,"description":"When enabled allows some of the blueprint searches to fail without failing the full request."}],"security":[{"bearer":["read:entities"]}],"x-should-be-exposed-to-customers":true,"responses":{"200":{"description":"Retrieved successfully (this response can be compressed).","content":{"application/json":{"schema":{"description":"Retrieved successfully (this response can be compressed).","type":"object","properties":{"ok":{"enum":[true]},"matchingBlueprints":{"type":"array","items":{"type":"string"}},"failedBlueprints":{"type":"array","items":{"type":"string"}},"entities":{"type":"array","items":{"type":"object","properties":{"identifier":{"oneOf":[{"type":["string"],"pattern":"^(?!\\.{1,2}$)[\\p{L}0-9@_.+:\\\\/='-]+$","maxLength":1000,"title":"String identifier","description":"The identifier of the entity."},{"$ref":"#/components/schemas/def-5","title":"Search query"}]},"title":{"type":"string","description":"The title of the entity."},"icon":{"type":"string","description":"The icon of the entity."},"team":{"oneOf":[{"title":"Team (Single)","type":"string","description":"The Port team/s to which the entity will belong."},{"title":"Teams (Multiple)","type":"array","items":{"type":"string"},"description":"The Port team/s to which the entity will belong."},{"title":"Additional query","$ref":"#/components/schemas/def-6"},{"title":"Union source slice","description":"Only valid when the blueprint's \"ownership.union\" is enabled: a single source key mapped to that source's slice of owning teams, as in `{ \"<sourceKey>\": [\"team-a\"] }`. The slice may also be a search query.","type":"object","minProperties":1,"maxProperties":1,"additionalProperties":{"anyOf":[{"type":["array","null"],"items":{"type":"string"}},{"$ref":"#/components/schemas/def-6"}]}}]},"properties":{"type":"object","default":{},"description":"An object containing the properties of the entity, in `\"key\":\"value\"` pairs where the `key` is the property's identifier, and the `value` is its value."},"relations":{"type":"object","description":"An object containing the relations of the entity, in `\"key\":\"value\"` pairs where the `key` is the relation's identifier, and the `value` is the related entity's identifier for single-relations, or an array of identifiers for many-relations.<br/>You can also use a [search query](https://docs.port.io/context-lake/ingestion/configure-mapping/configuration-methods#mapping-relations-using-search-queries) to define relations based on a property of the related entity.","additionalProperties":{"anyOf":[{"type":"string","pattern":"^(?!\\.{1,2}$)[\\p{L}0-9@_.+:\\\\/='-]+$","maxLength":1000,"title":"string"},{"type":"array","items":{"type":"string","pattern":"^(?!\\.{1,2}$)[\\p{L}0-9@_.+:\\\\/='-]+$"},"title":"array"},{"type":"null","title":"null"},{"$ref":"#/components/schemas/def-6"},{"title":"Union source slice","description":"Only valid for relations with \"union\" enabled: a single source key mapped to that source's slice of targets, as in `{ \"<sourceKey>\": [\"target-id\"] }`. The slice may also be a search query.","type":"object","minProperties":1,"maxProperties":1,"additionalProperties":{"anyOf":[{"type":["array","null"],"items":{"type":"string","pattern":"^(?!\\.{1,2}$)[\\p{L}0-9@_.+:\\\\/='-]+$"}},{"$ref":"#/components/schemas/def-6"}]}}]}}},"additionalProperties":false}}},"required":["entities","ok"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}},"413":{"description":"Request body is too large (limit is 1MiB)","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false,"description":"Request body is too large (limit is 1MiB)"}}}},"422":{"description":"The json provided does not match the route's schema","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"The json provided does not match the route's schema"}}}}}}},"/v1/blueprints/{blueprint_identifier}/entities/search":{"post":{"summary":"Search a blueprint's entities","tags":["Entities"],"description":"This route allows you to search your software catalog for a specific blueprint's entities, based on a given set of rules.<br/>The returned entities are paginated for improved performance.<br/><br/>To learn more about entities, check out the [entity documentation](https://docs.port.io/context-lake/ingestion/overview/#entities).<br/><br/>For more details about Port's search mechanism, rules, and operators - see the [search & query documentation](https://docs.port.io/context-lake/consuming-the-lake/search-and-query/overview).","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"$ref":"#/components/schemas/def-7","description":"A [search query](https://docs.port.io/context-lake/consuming-the-lake/search-and-query/overview) used to filter the returned entities."},"include":{"type":"array","items":{"type":"string"},"description":"An array of [properties](https://docs.port.io/context-lake/data-model/setup-blueprint/properties/overview) and/or [relations](https://docs.port.io/context-lake/data-model/setup-blueprint/relate-blueprints) to include in the search, using their identifiers.<br/>Note that for [meta-properties](https://docs.port.io/context-lake/data-model/setup-blueprint/properties/meta-properties) (e.g. `$createdAt`, `$updatedAt`), the `$` prefix must be used."},"exclude":{"type":"array","items":{"type":"string"},"description":"An array of [properties](https://docs.port.io/context-lake/data-model/setup-blueprint/properties/overview) and/or [relations](https://docs.port.io/context-lake/data-model/setup-blueprint/relate-blueprints) to exclude from the search, using their identifiers.<br/>Note that for [meta-properties](https://docs.port.io/context-lake/data-model/setup-blueprint/properties/meta-properties) (e.g. `$createdAt`, `$updatedAt`), the `$` prefix must be used."},"limit":{"type":"number","minimum":1,"maximum":1000,"default":200,"description":"The maximum number of entities to return."},"from":{"type":"string","description":"A string hash of the `next` value that was returned in the previous response. This is used to paginate through the results."}},"additionalProperties":false,"example":{"query":{"combinator":"and","rules":[{"property":"$blueprint","operator":"=","value":"service"},{"combinator":"or","rules":[{"property":"environment","operator":"=","value":"production"},{"property":"environment","operator":"=","value":"staging"}]}]},"include":["$identifier","$title","$createdAt"]}}}}},"parameters":[{"schema":{"type":"string","minLength":1},"in":"path","name":"blueprint_identifier","required":true,"description":"The identifier of the blueprint whose entities you want to search."}],"security":[{"bearer":["read:entities"]}],"x-should-be-exposed-to-customers":true,"responses":{"200":{"description":"Retrieved successfully (this response can be compressed).","content":{"application/json":{"schema":{"description":"Retrieved successfully (this response can be compressed).","type":"object","properties":{"ok":{"type":"boolean"},"next":{"type":"string","description":"A string hash of the next page of results. This is used to paginate through the results."},"entities":{"type":"array","items":{"type":"object","properties":{"identifier":{"oneOf":[{"type":["string"],"pattern":"^(?!\\.{1,2}$)[\\p{L}0-9@_.+:\\\\/='-]+$","maxLength":1000,"title":"String identifier","description":"The identifier of the entity."},{"$ref":"#/components/schemas/def-5","title":"Search query"}]},"title":{"type":"string","description":"The title of the entity."},"icon":{"type":"string","description":"The icon of the entity."},"team":{"oneOf":[{"title":"Team (Single)","type":"string","description":"The Port team/s to which the entity will belong."},{"title":"Teams (Multiple)","type":"array","items":{"type":"string"},"description":"The Port team/s to which the entity will belong."},{"title":"Additional query","$ref":"#/components/schemas/def-6"},{"title":"Union source slice","description":"Only valid when the blueprint's \"ownership.union\" is enabled: a single source key mapped to that source's slice of owning teams, as in `{ \"<sourceKey>\": [\"team-a\"] }`. The slice may also be a search query.","type":"object","minProperties":1,"maxProperties":1,"additionalProperties":{"anyOf":[{"type":["array","null"],"items":{"type":"string"}},{"$ref":"#/components/schemas/def-6"}]}}]},"properties":{"type":"object","default":{},"description":"An object containing the properties of the entity, in `\"key\":\"value\"` pairs where the `key` is the property's identifier, and the `value` is its value."},"relations":{"type":"object","description":"An object containing the relations of the entity, in `\"key\":\"value\"` pairs where the `key` is the relation's identifier, and the `value` is the related entity's identifier for single-relations, or an array of identifiers for many-relations.<br/>You can also use a [search query](https://docs.port.io/context-lake/ingestion/configure-mapping/configuration-methods#mapping-relations-using-search-queries) to define relations based on a property of the related entity.","additionalProperties":{"anyOf":[{"type":"string","pattern":"^(?!\\.{1,2}$)[\\p{L}0-9@_.+:\\\\/='-]+$","maxLength":1000,"title":"string"},{"type":"array","items":{"type":"string","pattern":"^(?!\\.{1,2}$)[\\p{L}0-9@_.+:\\\\/='-]+$"},"title":"array"},{"type":"null","title":"null"},{"$ref":"#/components/schemas/def-6"},{"title":"Union source slice","description":"Only valid for relations with \"union\" enabled: a single source key mapped to that source's slice of targets, as in `{ \"<sourceKey>\": [\"target-id\"] }`. The slice may also be a search query.","type":"object","minProperties":1,"maxProperties":1,"additionalProperties":{"anyOf":[{"type":["array","null"],"items":{"type":"string","pattern":"^(?!\\.{1,2}$)[\\p{L}0-9@_.+:\\\\/='-]+$"}},{"$ref":"#/components/schemas/def-6"}]}}]}}},"additionalProperties":false},"description":"The entities that match the search query."}},"required":["entities","ok"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}},"413":{"description":"Request body is too large (limit is 1MiB)","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false,"description":"Request body is too large (limit is 1MiB)"}}}},"422":{"description":"The json provided does not match the route's schema","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"The json provided does not match the route's schema"}}}}}}},"/v1/blueprints/{blueprint_identifier}/entities/search/count":{"post":{"summary":"Count a blueprint's entities matching a search query","tags":["Entities"],"description":"This route allows you to count your software catalog's entities for a specific blueprint, based on a given set of rules.<br/>Pass an empty body (or omit `query`) to count all entities visible to the caller.<br/><br/>To learn more about entities, check out the [entity documentation](https://docs.port.io/context-lake/ingestion/overview/#entities).<br/><br/>For more details about Port's search mechanism, rules, and operators - see the [search & query documentation](https://docs.port.io/context-lake/consuming-the-lake/search-and-query/overview).","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"$ref":"#/components/schemas/def-7","description":"A [search query](https://docs.port.io/context-lake/consuming-the-lake/search-and-query/overview) used to filter the entities to count."}},"additionalProperties":false,"example":{"query":{"combinator":"and","rules":[{"property":"$blueprint","operator":"=","value":"service"},{"property":"environment","operator":"=","value":"production"}]}}}}}},"parameters":[{"schema":{"type":"string","minLength":1},"in":"path","name":"blueprint_identifier","required":true,"description":"The identifier of the blueprint whose entities you want to search."}],"security":[{"bearer":["read:entities"]}],"x-should-be-exposed-to-customers":true,"responses":{"200":{"description":"Retrieved successfully.","content":{"application/json":{"schema":{"description":"Retrieved successfully.","properties":{"ok":{"enum":[true]},"count":{"type":"number"}},"required":["ok"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}},"413":{"description":"Request body is too large (limit is 1MiB)","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false,"description":"Request body is too large (limit is 1MiB)"}}}},"422":{"description":"The json provided does not match the route's schema","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"The json provided does not match the route's schema"}}}}}}},"/v1/entities/aggregate":{"post":{"summary":"Aggregate entities","tags":["Entities"],"description":"This route allows you to perform an aggregation function on a blueprint's entities based on a given set of rules.<br/><br/>To learn more about entities, check out the [documentation](https://docs.port.io/context-lake/ingestion/overview/#entities).<br/><br/>For more details about Port's search mechanism, rules, and operators - see the [search & query documentation](https://docs.port.io/context-lake/consuming-the-lake/search-and-query/overview).","requestBody":{"content":{"application/json":{"schema":{"type":"object","oneOf":[{"type":"object","title":"Count entities","properties":{"func":{"type":"string","enum":["average","count"]},"averageOf":{"type":"string","enum":["hour","day","week","month","total"]},"measureTimeBy":{"type":"string","description":"A property of type `datetime`, by which the average will be calculated. Relevant only for the `average` function."},"calculationBy":{"type":"string"},"query":{"$ref":"#/components/schemas/def-1","description":"A [search query](https://docs.port.io/context-lake/consuming-the-lake/search-and-query/overview) used to filter the entities before the aggregation is calculated."}},"additionalProperties":false,"required":["func","query"]},{"type":"object","title":"Aggregate by property","properties":{"property":{"type":"string","description":"A property of type `number`, by which the aggregation will be calculated."},"func":{"type":"string","enum":["sum","average","min","max","median"]},"averageOf":{"type":"string","enum":["hour","day","week","month","total"]},"measureTimeBy":{"type":"string","description":"A property of type `datetime`, by which the average will be calculated. Relevant only for the `average` function."},"calculationBy":{"type":"string"},"query":{"$ref":"#/components/schemas/def-1","description":"A [search query](https://docs.port.io/context-lake/consuming-the-lake/search-and-query/overview) used to filter the entities before the aggregation is calculated."}},"additionalProperties":false,"required":["func","property","query"]},{"type":"object","title":"Count values","oneOf":[{"type":"object","title":"Group by property","properties":{"func":{"enum":["countValues"]},"query":{"$ref":"#/components/schemas/def-1"},"property":{"type":"string"}},"required":["func","query","property"],"additionalProperties":false},{"type":"object","title":"Group by relation","properties":{"func":{"enum":["countValues"]},"query":{"$ref":"#/components/schemas/def-1"},"relation":{"type":"string"}},"required":["func","query","relation"],"additionalProperties":false},{"type":"object","title":"Group by scorecard","properties":{"func":{"enum":["countValues"]},"query":{"$ref":"#/components/schemas/def-1"},"scorecard":{"type":"string"}},"required":["func","query","scorecard"],"additionalProperties":false},{"type":"object","title":"Group by scorecard rule","properties":{"func":{"enum":["countValues"]},"query":{"$ref":"#/components/schemas/def-1"},"rule":{"type":"string"},"scorecard":{"type":"string"}},"required":["func","query","rule","scorecard"],"additionalProperties":false}]}]}}}},"security":[{"bearer":["read:entities"]}],"x-should-be-exposed-to-customers":true,"responses":{"200":{"description":"Retrieved successfully (this response can be compressed).","content":{"application/json":{"schema":{"description":"Retrieved successfully (this response can be compressed).","type":"object","properties":{"ok":{"enum":[true]},"matchingBlueprints":{"type":"array","items":{"type":"string"}},"failedBlueprints":{"type":"array","items":{"type":"string"}},"entities":{"type":"array","items":{"type":"object","properties":{"identifier":{"oneOf":[{"type":["string"],"pattern":"^(?!\\.{1,2}$)[\\p{L}0-9@_.+:\\\\/='-]+$","maxLength":1000,"title":"String identifier","description":"The identifier of the entity."},{"$ref":"#/components/schemas/def-5","title":"Search query"}]},"title":{"type":"string","description":"The title of the entity."},"icon":{"type":"string","description":"The icon of the entity."},"team":{"oneOf":[{"title":"Team (Single)","type":"string","description":"The Port team/s to which the entity will belong."},{"title":"Teams (Multiple)","type":"array","items":{"type":"string"},"description":"The Port team/s to which the entity will belong."},{"title":"Additional query","$ref":"#/components/schemas/def-6"},{"title":"Union source slice","description":"Only valid when the blueprint's \"ownership.union\" is enabled: a single source key mapped to that source's slice of owning teams, as in `{ \"<sourceKey>\": [\"team-a\"] }`. The slice may also be a search query.","type":"object","minProperties":1,"maxProperties":1,"additionalProperties":{"anyOf":[{"type":["array","null"],"items":{"type":"string"}},{"$ref":"#/components/schemas/def-6"}]}}]},"properties":{"type":"object","default":{},"description":"An object containing the properties of the entity, in `\"key\":\"value\"` pairs where the `key` is the property's identifier, and the `value` is its value."},"relations":{"type":"object","description":"An object containing the relations of the entity, in `\"key\":\"value\"` pairs where the `key` is the relation's identifier, and the `value` is the related entity's identifier for single-relations, or an array of identifiers for many-relations.<br/>You can also use a [search query](https://docs.port.io/context-lake/ingestion/configure-mapping/configuration-methods#mapping-relations-using-search-queries) to define relations based on a property of the related entity.","additionalProperties":{"anyOf":[{"type":"string","pattern":"^(?!\\.{1,2}$)[\\p{L}0-9@_.+:\\\\/='-]+$","maxLength":1000,"title":"string"},{"type":"array","items":{"type":"string","pattern":"^(?!\\.{1,2}$)[\\p{L}0-9@_.+:\\\\/='-]+$"},"title":"array"},{"type":"null","title":"null"},{"$ref":"#/components/schemas/def-6"},{"title":"Union source slice","description":"Only valid for relations with \"union\" enabled: a single source key mapped to that source's slice of targets, as in `{ \"<sourceKey>\": [\"target-id\"] }`. The slice may also be a search query.","type":"object","minProperties":1,"maxProperties":1,"additionalProperties":{"anyOf":[{"type":["array","null"],"items":{"type":"string","pattern":"^(?!\\.{1,2}$)[\\p{L}0-9@_.+:\\\\/='-]+$"}},{"$ref":"#/components/schemas/def-6"}]}}]}}},"additionalProperties":false}}},"required":["entities","ok"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}},"413":{"description":"Request body is too large (limit is 1MiB)","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false,"description":"Request body is too large (limit is 1MiB)"}}}},"422":{"description":"The json provided does not match the route's schema","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"The json provided does not match the route's schema"}}}}}}},"/v1/entities/aggregate-over-time":{"post":{"summary":"Aggregate entities over time","tags":["Entities"],"description":"This route allows you to perform an aggregation function on a blueprint's entities over a given time range.<br/><br/>To learn more about entities, check out the [entity documentation](https://docs.port.io/context-lake/ingestion/overview/#entities).<br/><br/>For more details about Port's search mechanism, rules, and operators - see the [search & query documentation](https://docs.port.io/context-lake/consuming-the-lake/search-and-query/overview).","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["blueprint","timeRange","timeInterval","query","measureTimeBy","aggregationType"],"oneOf":[{"title":"Aggregate property","properties":{"blueprint":{"type":"string","description":"The blueprint whose entities you wish to aggregate."},"timeRange":{"type":"object","properties":{"preset":{"type":"string","enum":["today","yesterday","lastDay","lastWeek","last2Weeks","lastMonth","last3Months","last6Months","last12Months","last2Years","last3Years","specific"]},"timeZone":{"type":"string"}},"required":["preset"],"additionalProperties":false},"timeInterval":{"type":"string","enum":["hour","day","isoWeek","month","quarter"]},"query":{"$ref":"#/components/schemas/def-1","description":"A [search query](https://docs.port.io/context-lake/consuming-the-lake/search-and-query/overview) used to filter the entities before the aggregation is calculated."},"measureTimeBy":{"type":"string","description":"A property of type `datetime` by which the aggregation will be calculated."},"specificTimeRange":{"type":"array","items":{"type":"number"},"minItems":2,"maxItems":2,"description":"A specific time range [min,max] to aggregate over. If not provided, the time range will be used."},"aggregationType":{"enum":["aggregatePropertiesValues"]},"func":{"type":"string","enum":["average","sum","min","max","median","last"]},"properties":{"type":"array","items":{"type":"string"},"description":"A list of properties of type `number` on which the aggregation will be calculated."}},"required":["func","properties"],"additionalProperties":false,"allOf":[{"if":{"type":"object","properties":{"timeRange":{"type":"object","properties":{"preset":{"enum":["last2Years","last3Years"]}}}}},"then":{"type":"object","properties":{"timeInterval":{"enum":["quarter"]}}}},{"if":{"type":"object","properties":{"timeRange":{"type":"object","properties":{"preset":{"enum":["specific"]}}}},"required":["timeRange"]},"then":{"type":"object","properties":{"specificTimeRange":{"type":"array","items":{"type":"number"},"minItems":2,"maxItems":2,"description":"A specific time range [min,max] to aggregate over. If not provided, the time range will be used."}},"required":["specificTimeRange"]}}]},{"title":"Count entities","properties":{"blueprint":{"type":"string","description":"The blueprint whose entities you wish to aggregate."},"timeRange":{"type":"object","properties":{"preset":{"type":"string","enum":["today","yesterday","lastDay","lastWeek","last2Weeks","lastMonth","last3Months","last6Months","last12Months","last2Years","last3Years","specific"]},"timeZone":{"type":"string"}},"required":["preset"],"additionalProperties":false},"timeInterval":{"type":"string","enum":["hour","day","isoWeek","month","quarter"]},"query":{"$ref":"#/components/schemas/def-1","description":"A [search query](https://docs.port.io/context-lake/consuming-the-lake/search-and-query/overview) used to filter the entities before the aggregation is calculated."},"measureTimeBy":{"type":"string","description":"A property of type `datetime` by which the aggregation will be calculated."},"specificTimeRange":{"type":"array","items":{"type":"number"},"minItems":2,"maxItems":2,"description":"A specific time range [min,max] to aggregate over. If not provided, the time range will be used."},"aggregationType":{"enum":["countEntities"]},"func":{"type":"string","enum":["count","average"]},"breakdownProperty":{"type":"string","description":"A blueprint's property by which you want to break down the data."}},"required":["func"],"additionalProperties":false,"allOf":[{"if":{"type":"object","properties":{"timeRange":{"type":"object","properties":{"preset":{"enum":["last2Years","last3Years"]}}}}},"then":{"type":"object","properties":{"timeInterval":{"enum":["quarter"]}}}},{"if":{"type":"object","properties":{"timeRange":{"type":"object","properties":{"preset":{"enum":["specific"]}}}},"required":["timeRange"]},"then":{"type":"object","properties":{"specificTimeRange":{"type":"array","items":{"type":"number"},"minItems":2,"maxItems":2,"description":"A specific time range [min,max] to aggregate over. If not provided, the time range will be used."}},"required":["specificTimeRange"]}}]}]}}},"required":true},"security":[{"bearer":["read:entities"]}],"x-should-be-exposed-to-customers":true,"responses":{"200":{"description":"Retrieved successfully.","content":{"application/json":{"schema":{"description":"Retrieved successfully.","type":"object","properties":{"ok":{"enum":[true]},"result":{"type":"object","properties":{"minDate":{"type":"number"},"maxDate":{"type":"number"},"data":{"type":"array","items":{"object":{"type":"object","properties":{"date":{"type":"number"}},"additionalProperties":{"type":"number"}}}}}}},"required":["ok"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}},"413":{"description":"Request body is too large (limit is 1MiB)","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false,"description":"Request body is too large (limit is 1MiB)"}}}},"422":{"description":"The json provided does not match the route's schema","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"The json provided does not match the route's schema"}}}}}}},"/v1/entities/properties-history":{"post":{"summary":"Fetch the history of an entity's properties","tags":["Entities"],"description":"This route allows you to retrieve historical values for a selected list of an entity's properties over a given time range.<br/><br/>To learn more about entities, check out the [entity documentation](https://docs.port.io/context-lake/ingestion/overview/#entities).","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"entityIdentifier":{"type":"string","description":"The identifier of the entity you want to operate on."},"blueprintIdentifier":{"type":"string","description":"The identifier of the blueprint you want to operate on."},"propertyNames":{"type":"array","items":{"type":"string"},"description":"An array of property names to fetch historical records for."},"timeInterval":{"type":"string","enum":["hour","day","isoWeek","month","quarter"]},"timeRange":{"type":"object","properties":{"preset":{"type":"string","enum":["today","yesterday","lastDay","lastWeek","last2Weeks","lastMonth","last3Months","last6Months","last12Months","last2Years","last3Years"]},"timeZone":{"type":"string","enum":["Africa/Abidjan","Africa/Accra","Africa/Addis_Ababa","Africa/Algiers","Africa/Asmera","Africa/Bamako","Africa/Bangui","Africa/Banjul","Africa/Bissau","Africa/Blantyre","Africa/Brazzaville","Africa/Bujumbura","Africa/Cairo","Africa/Casablanca","Africa/Ceuta","Africa/Conakry","Africa/Dakar","Africa/Dar_es_Salaam","Africa/Djibouti","Africa/Douala","Africa/El_Aaiun","Africa/Freetown","Africa/Gaborone","Africa/Harare","Africa/Johannesburg","Africa/Juba","Africa/Kampala","Africa/Khartoum","Africa/Kigali","Africa/Kinshasa","Africa/Lagos","Africa/Libreville","Africa/Lome","Africa/Luanda","Africa/Lubumbashi","Africa/Lusaka","Africa/Malabo","Africa/Maputo","Africa/Maseru","Africa/Mbabane","Africa/Mogadishu","Africa/Monrovia","Africa/Nairobi","Africa/Ndjamena","Africa/Niamey","Africa/Nouakchott","Africa/Ouagadougou","Africa/Porto-Novo","Africa/Sao_Tome","Africa/Tripoli","Africa/Tunis","Africa/Windhoek","America/Adak","America/Anchorage","America/Anguilla","America/Antigua","America/Araguaina","America/Argentina/La_Rioja","America/Argentina/Rio_Gallegos","America/Argentina/Salta","America/Argentina/San_Juan","America/Argentina/San_Luis","America/Argentina/Tucuman","America/Argentina/Ushuaia","America/Aruba","America/Asuncion","America/Bahia","America/Bahia_Banderas","America/Barbados","America/Belem","America/Belize","America/Blanc-Sablon","America/Boa_Vista","America/Bogota","America/Boise","America/Buenos_Aires","America/Cambridge_Bay","America/Campo_Grande","America/Cancun","America/Caracas","America/Catamarca","America/Cayenne","America/Cayman","America/Chicago","America/Chihuahua","America/Ciudad_Juarez","America/Coral_Harbour","America/Cordoba","America/Costa_Rica","America/Coyhaique","America/Creston","America/Cuiaba","America/Curacao","America/Danmarkshavn","America/Dawson","America/Dawson_Creek","America/Denver","America/Detroit","America/Dominica","America/Edmonton","America/Eirunepe","America/El_Salvador","America/Fort_Nelson","America/Fortaleza","America/Glace_Bay","America/Godthab","America/Goose_Bay","America/Grand_Turk","America/Grenada","America/Guadeloupe","America/Guatemala","America/Guayaquil","America/Guyana","America/Halifax","America/Havana","America/Hermosillo","America/Indiana/Knox","America/Indiana/Marengo","America/Indiana/Petersburg","America/Indiana/Tell_City","America/Indiana/Vevay","America/Indiana/Vincennes","America/Indiana/Winamac","America/Indianapolis","America/Inuvik","America/Iqaluit","America/Jamaica","America/Jujuy","America/Juneau","America/Kentucky/Monticello","America/Kralendijk","America/La_Paz","America/Lima","America/Los_Angeles","America/Louisville","America/Lower_Princes","America/Maceio","America/Managua","America/Manaus","America/Marigot","America/Martinique","America/Matamoros","America/Mazatlan","America/Mendoza","America/Menominee","America/Merida","America/Metlakatla","America/Mexico_City","America/Miquelon","America/Moncton","America/Monterrey","America/Montevideo","America/Montserrat","America/Nassau","America/New_York","America/Nome","America/Noronha","America/North_Dakota/Beulah","America/North_Dakota/Center","America/North_Dakota/New_Salem","America/Ojinaga","America/Panama","America/Paramaribo","America/Phoenix","America/Port-au-Prince","America/Port_of_Spain","America/Porto_Velho","America/Puerto_Rico","America/Punta_Arenas","America/Rankin_Inlet","America/Recife","America/Regina","America/Resolute","America/Rio_Branco","America/Santarem","America/Santiago","America/Santo_Domingo","America/Sao_Paulo","America/Scoresbysund","America/Sitka","America/St_Barthelemy","America/St_Johns","America/St_Kitts","America/St_Lucia","America/St_Thomas","America/St_Vincent","America/Swift_Current","America/Tegucigalpa","America/Thule","America/Tijuana","America/Toronto","America/Tortola","America/Vancouver","America/Whitehorse","America/Winnipeg","America/Yakutat","Antarctica/Casey","Antarctica/Davis","Antarctica/DumontDUrville","Antarctica/Macquarie","Antarctica/Mawson","Antarctica/McMurdo","Antarctica/Palmer","Antarctica/Rothera","Antarctica/Syowa","Antarctica/Troll","Antarctica/Vostok","Arctic/Longyearbyen","Asia/Aden","Asia/Almaty","Asia/Amman","Asia/Anadyr","Asia/Aqtau","Asia/Aqtobe","Asia/Ashgabat","Asia/Atyrau","Asia/Baghdad","Asia/Bahrain","Asia/Baku","Asia/Bangkok","Asia/Barnaul","Asia/Beirut","Asia/Bishkek","Asia/Brunei","Asia/Calcutta","Asia/Chita","Asia/Colombo","Asia/Damascus","Asia/Dhaka","Asia/Dili","Asia/Dubai","Asia/Dushanbe","Asia/Famagusta","Asia/Gaza","Asia/Hebron","Asia/Hong_Kong","Asia/Hovd","Asia/Irkutsk","Asia/Jakarta","Asia/Jayapura","Asia/Jerusalem","Asia/Kabul","Asia/Kamchatka","Asia/Karachi","Asia/Katmandu","Asia/Khandyga","Asia/Krasnoyarsk","Asia/Kuala_Lumpur","Asia/Kuching","Asia/Kuwait","Asia/Macau","Asia/Magadan","Asia/Makassar","Asia/Manila","Asia/Muscat","Asia/Nicosia","Asia/Novokuznetsk","Asia/Novosibirsk","Asia/Omsk","Asia/Oral","Asia/Phnom_Penh","Asia/Pontianak","Asia/Pyongyang","Asia/Qatar","Asia/Qostanay","Asia/Qyzylorda","Asia/Rangoon","Asia/Riyadh","Asia/Saigon","Asia/Sakhalin","Asia/Samarkand","Asia/Seoul","Asia/Shanghai","Asia/Singapore","Asia/Srednekolymsk","Asia/Taipei","Asia/Tashkent","Asia/Tbilisi","Asia/Tehran","Asia/Thimphu","Asia/Tokyo","Asia/Tomsk","Asia/Ulaanbaatar","Asia/Urumqi","Asia/Ust-Nera","Asia/Vientiane","Asia/Vladivostok","Asia/Yakutsk","Asia/Yekaterinburg","Asia/Yerevan","Atlantic/Azores","Atlantic/Bermuda","Atlantic/Canary","Atlantic/Cape_Verde","Atlantic/Faeroe","Atlantic/Madeira","Atlantic/Reykjavik","Atlantic/South_Georgia","Atlantic/St_Helena","Atlantic/Stanley","Australia/Adelaide","Australia/Brisbane","Australia/Broken_Hill","Australia/Darwin","Australia/Eucla","Australia/Hobart","Australia/Lindeman","Australia/Lord_Howe","Australia/Melbourne","Australia/Perth","Australia/Sydney","Europe/Amsterdam","Europe/Andorra","Europe/Astrakhan","Europe/Athens","Europe/Belgrade","Europe/Berlin","Europe/Bratislava","Europe/Brussels","Europe/Bucharest","Europe/Budapest","Europe/Busingen","Europe/Chisinau","Europe/Copenhagen","Europe/Dublin","Europe/Gibraltar","Europe/Guernsey","Europe/Helsinki","Europe/Isle_of_Man","Europe/Istanbul","Europe/Jersey","Europe/Kaliningrad","Europe/Kiev","Europe/Kirov","Europe/Lisbon","Europe/Ljubljana","Europe/London","Europe/Luxembourg","Europe/Madrid","Europe/Malta","Europe/Mariehamn","Europe/Minsk","Europe/Monaco","Europe/Moscow","Europe/Oslo","Europe/Paris","Europe/Podgorica","Europe/Prague","Europe/Riga","Europe/Rome","Europe/Samara","Europe/San_Marino","Europe/Sarajevo","Europe/Saratov","Europe/Simferopol","Europe/Skopje","Europe/Sofia","Europe/Stockholm","Europe/Tallinn","Europe/Tirane","Europe/Ulyanovsk","Europe/Vaduz","Europe/Vatican","Europe/Vienna","Europe/Vilnius","Europe/Volgograd","Europe/Warsaw","Europe/Zagreb","Europe/Zurich","Indian/Antananarivo","Indian/Chagos","Indian/Christmas","Indian/Cocos","Indian/Comoro","Indian/Kerguelen","Indian/Mahe","Indian/Maldives","Indian/Mauritius","Indian/Mayotte","Indian/Reunion","Pacific/Apia","Pacific/Auckland","Pacific/Bougainville","Pacific/Chatham","Pacific/Easter","Pacific/Efate","Pacific/Enderbury","Pacific/Fakaofo","Pacific/Fiji","Pacific/Funafuti","Pacific/Galapagos","Pacific/Gambier","Pacific/Guadalcanal","Pacific/Guam","Pacific/Honolulu","Pacific/Kiritimati","Pacific/Kosrae","Pacific/Kwajalein","Pacific/Majuro","Pacific/Marquesas","Pacific/Midway","Pacific/Nauru","Pacific/Niue","Pacific/Norfolk","Pacific/Noumea","Pacific/Pago_Pago","Pacific/Palau","Pacific/Pitcairn","Pacific/Ponape","Pacific/Port_Moresby","Pacific/Rarotonga","Pacific/Saipan","Pacific/Tahiti","Pacific/Tarawa","Pacific/Tongatapu","Pacific/Truk","Pacific/Wake","Pacific/Wallis"]}},"required":["preset","timeZone"],"additionalProperties":false}},"additionalProperties":false,"required":["entityIdentifier","blueprintIdentifier","propertyNames"],"if":{"type":"object","properties":{"timeRange":{"type":"object","properties":{"preset":{"enum":["last2Years","last3Years"]}}}}},"then":{"type":"object","properties":{"timeInterval":{"enum":["quarter"]}}}}}},"required":true},"security":[{"bearer":["read:entities"]}],"x-should-be-exposed-to-customers":true,"responses":{"200":{"description":"Retrieved successfully.","content":{"application/json":{"schema":{"description":"Retrieved successfully.","properties":{"ok":{"enum":[true]},"result":{"type":"object","properties":{"minDate":{"type":"number"},"maxDate":{"type":"number"},"data":{"type":"array","items":{"type":"number"}}}}},"required":["ok"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}},"413":{"description":"Request body is too large (limit is 1MiB)","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false,"description":"Request body is too large (limit is 1MiB)"}}}},"422":{"description":"The json provided does not match the route's schema","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"The json provided does not match the route's schema"}}}}}}},"/v1/blueprints":{"get":{"summary":"Get all blueprints","tags":["Blueprints"],"description":"This route allows you to fetch all blueprints in your Port account.<br/><br/>To learn more about blueprints, check out the [documentation](https://docs.port.io/context-lake/data-model/setup-blueprint/overview).","security":[{"bearer":["read:blueprints"]}],"x-should-be-exposed-to-customers":true,"responses":{"200":{"description":"Retrieved successfully.","content":{"application/json":{"schema":{"description":"Retrieved successfully.","type":"object","properties":{"ok":{"enum":[true]},"blueprints":{"type":"array","items":{"type":"object","properties":{"identifier":{"type":"string","pattern":"^(?!\\.{1,2}$)[\\p{L}0-9@_.+:\\\\/-]+$","maxLength":100,"description":"The identifier of the blueprint."},"title":{"type":"string","maxLength":100,"minLength":1,"description":"The title of the blueprint."},"description":{"type":"string","maxLength":200,"description":"The description of the blueprint."},"icon":{"type":"string","description":"The icon of the blueprint."},"ownership":{"anyOf":[{"type":"object","title":"Inherited","description":"Ownership of the blueprint's entities will be inherited from a different related blueprint with `Direct` ownership.","properties":{"type":{"type":"string","enum":["Inherited"]},"path":{"type":"string","description":"The `path` key is a dot-separated path of relation identifiers that lead to the desired blueprint."},"title":{"type":"string","maxLength":100,"description":"The title of the ownership property. The default value is `Owning teams`."}},"additionalProperties":false,"required":["type","path"]},{"type":"object","title":"Direct","description":"Ownership of the blueprint's entities will be defined by a hidden **relation** to the `Team` blueprint.","properties":{"type":{"type":"string","enum":["Direct"]},"title":{"type":"string","maxLength":100,"description":"The title of the ownership property. The default value is `Owning teams`."},"union":{"type":"boolean","description":"When `true`, every writer owns its own slice of owning teams and the entity's owning teams are the combination of all slices. Cannot be changed once ownership is Direct."}},"additionalProperties":false,"required":["type"]}]},"schema":{"type":"object","description":"The schema of the blueprint, see `properties` and `required` below for more information.","properties":{"properties":{"type":"object","description":"The properties of the blueprint.<br/> Each property identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\\\-]+$`.","propertyNames":{"pattern":"^[A-Za-z0-9@_=\\\\-]+$","maxLength":100},"additionalProperties":{"type":"object","properties":{"title":{"type":"string","maxLength":100,"description":"The title of the property."},"description":{"type":"string","description":"The description of the property."},"icon":{"type":"string","description":"The icon of the property."},"type":{"enum":["string","number","boolean","object","array"],"description":"The [type](https://docs.port.io/context-lake/data-model/setup-blueprint/properties/overview#supported-properties) of the property."},"format":{"enum":["date-time","url","email","idn-email","ipv4","ipv6","markdown","yaml","user","blueprints","team","timer","proto","labeled-url"],"description":"The type's [format](https://docs.port.io/context-lake/data-model/setup-blueprint/properties/overview#supported-properties)."},"dateFormat":{"enum":["relative","12-hour","24-hour","iso"],"description":"The display format for date-time properties. Only applicable when format is 'date-time'. Defaults to 'relative'."},"spec":{"enum":["open-api","embedded-url","async-api"],"description":"The [spec](https://docs.port.io/context-lake/data-model/setup-blueprint/properties/overview#supported-properties) of the property."},"union":{"type":"boolean","description":"Only applicable to `array` properties with `string` or `number` items. When `true`, every writer owns its own slice of the value and the property returns the combination of all slices, with each value appearing once. Writers send `{ \"<sourceKey>\": [values] }` instead of a plain array. Cannot be changed after the property is created."},"specAuthentication":{"type":"object","description":"When using the `spec` property with `embedded-url`, the authentication spec of the property.","properties":{"clientId":{"type":"string"},"authorizationUrl":{"type":"string","format":"url"},"tokenUrl":{"type":"string","format":"url"},"authorizationScope":{"type":"array","items":{"type":"string"},"default":["openid"]}},"additionalProperties":false,"required":["clientId","authorizationUrl","tokenUrl"]}},"required":["type"]}},"required":{"type":"array","items":{"type":"string"},"description":"The required properties of the blueprint, these must be provided when creating an entity based on this blueprint. This is an array of the required properties' identifiers."}},"additionalProperties":false,"required":["properties"]},"calculationProperties":{"type":"object","description":"The [calculation properties](https://docs.port.io/context-lake/data-model/setup-blueprint/properties/calculation-property/) of the blueprint. <br/> Each calculation property identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\\\-]+$`.","default":{},"propertyNames":{"pattern":"^[A-Za-z0-9@_=\\\\-]+$","maxLength":100},"additionalProperties":{"type":"object","additionalProperties":false,"properties":{"title":{"type":"string","maxLength":100,"description":"The title of the property."},"description":{"type":"string","description":"The description of the property."},"icon":{"type":"string","description":"The icon of the property."},"calculation":{"type":"string","description":"The JQ expression that calculates the value of the property."},"type":{"enum":["string","number","boolean","object","array"],"description":"The type of the property."},"format":{"enum":["date-time","url","email","idn-email","ipv4","ipv6","markdown","yaml","user","team","proto","labeled-url"],"description":"The format of the property."},"dateFormat":{"enum":["relative","12-hour","24-hour","iso"],"description":"The display format for date-time calculation properties. Only applicable when format is 'date-time'. Defaults to 'relative'."},"spec":{"enum":["open-api","embedded-url","async-api"],"description":"The spec of the property."},"specAuthentication":{"type":"object","description":"When using the `spec` property with `embedded-url`, the authentication spec of the property.","properties":{"clientId":{"type":"string"},"authorizationUrl":{"type":"string","format":"url"},"tokenUrl":{"type":"string","format":"url"},"authorizationScope":{"type":"array","items":{"type":"string"},"default":["openid"]}},"additionalProperties":false,"required":["clientId","authorizationUrl","tokenUrl"]},"colorized":{"type":"boolean","description":"Whether the property is colorized."},"colors":{"type":"object","description":"When using the `colorized` property, the colors of the property.","additionalProperties":{"enum":["blue","turquoise","orange","purple","pink","yellow","green","red","gold","silver","paleBlue","darkGray","lightGray","bronze","lime","olive","brown"]}},"items":{"type":"object","properties":{"type":{"enum":["string","number","boolean","object","array"],"description":"The type of the item."},"format":{"description":"The format of the item.","enum":["date-time","url","email","idn-format","ipv4","ipv6","markdown","yaml","user","team","timer","proto","labeled-url"]}}}},"required":["calculation","type"]}},"mirrorProperties":{"type":"object","description":"The [mirror properties](https://docs.port.io/context-lake/data-model/setup-blueprint/properties/mirror-property/) of the blueprint. <br/> Each mirror property identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\\\-]+$`.","propertyNames":{"pattern":"^[A-Za-z0-9@_=\\\\-]+$","maxLength":100},"additionalProperties":{"type":"object","properties":{"path":{"type":"string","pattern":"^(?:[A-Za-z0-9@_=\\-$]+\\.)+?(\\w|\\$|@|-)*?[^\\.]+$","description":"The path to the property in the related blueprint. This is a string of relation identifiers separated by dots, the last identifier is the property identifier."},"title":{"type":"string","maxLength":100,"description":"The title of the property."}},"additionalProperties":false,"required":["path"]}},"aggregationProperties":{"type":"object","description":"The [aggregation properties](https://docs.port.io/context-lake/data-model/setup-blueprint/properties/aggregation-property/) of the blueprint. <br/> Each aggregation property identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\\\-]+$`.","default":{},"propertyNames":{"pattern":"^[A-Za-z0-9@_=\\\\-]+$","maxLength":100},"additionalProperties":{"type":"object","properties":{"title":{"type":"string","maxLength":100,"description":"The title of the property."},"description":{"type":"string","description":"The description of the property."},"icon":{"type":"string","description":"The icon of the property."},"type":{"enum":["number"],"default":"number","description":"The type of the property. This is the type of the aggregation result."},"target":{"type":"string","description":"The blueprint identifier to run the aggregation on."},"calculationSpec":{"type":"object","oneOf":[{"title":"Count entities","oneOf":[{"type":"object","title":"Count","properties":{"func":{"description":"The function to use for the aggregation.","enum":["count"]},"calculationBy":{"type":"string","description":"Whether to aggregate by entities or properties.","enum":["entities"]}},"required":["func","calculationBy"],"additionalProperties":false},{"type":"object","title":"Average entities over time","properties":{"func":{"description":"The function to use for the aggregation.","enum":["average"]},"measureTimeBy":{"type":"string","description":"The time property to use for the aggregation."},"averageOf":{"type":"string","enum":["hour","day","week","month","total"]},"calculationBy":{"type":"string","description":"Whether to aggregate by entities or properties.","enum":["entities"]}},"required":["func","calculationBy","averageOf"],"additionalProperties":false}]},{"title":"Aggregate property","oneOf":[{"type":"object","title":"Aggregate property values","properties":{"func":{"type":"string","enum":["sum","min","max","median"],"description":"The function to use for the aggregation."},"property":{"type":"string","description":"The property to aggregate."},"calculationBy":{"type":"string","description":"Whether to aggregate by property or entities.","enum":["property"]}},"additionalProperties":false,"required":["func","property","calculationBy"]},{"type":"object","title":"Average property over time","properties":{"func":{"description":"The function to use for the aggregation.","enum":["average"]},"measureTimeBy":{"type":"string","description":"The time property to use for the aggregation."},"averageOf":{"type":"string","enum":["hour","day","week","month","total"]},"property":{"type":"string","description":"The property to aggregate."},"calculationBy":{"type":"string","description":"Whether to aggregate by property or entities.","enum":["property"]}},"additionalProperties":false,"required":["func","property","calculationBy","averageOf"]}]}],"description":"The calculation spec of the property."},"query":{"$ref":"#/components/schemas/def-1"},"pathFilter":{"type":"array","description":"Optional filter to run the aggregation on entities that are connected through a specific path. When empty will use all the related entities from all possible paths","maxItems":1,"items":{"type":"object","properties":{"path":{"description":"The path to the property in the related blueprint. This is a string of relation identifiers separated by dots.","type":"array","items":{"type":"string"},"minItems":1},"fromBlueprint":{"type":"string"}},"required":["path"],"additionalProperties":false}}},"additionalProperties":false,"required":["title","target","calculationSpec"]}},"relations":{"type":"object","description":"The [relations](https://docs.port.io/context-lake/data-model/setup-blueprint/relate-blueprints) of the blueprint. <br/> Each relation identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\\\-]+$`.","propertyNames":{"pattern":"^[A-Za-z0-9@_=\\\\-]+$","maxLength":100},"additionalProperties":{"type":"object","properties":{"title":{"type":"string","maxLength":100},"target":{"type":"string"},"required":{"type":"boolean","default":false},"many":{"type":"boolean","default":false},"description":{"type":"string"},"type":{"type":"string"},"union":{"type":"boolean","description":"When `true`, every writer owns its own slice of the value and the relation returns the combination of all slices. Requires `many: true`. Cannot be changed after the relation is created."}},"additionalProperties":false,"required":["target","required","many"]}},"includeInGlobalSearch":{"type":["boolean","null"],"description":"Overrides the org-level includeBlueprintsInGlobalSearchByDefault setting. When set, controls whether entities of this blueprint appear in global search results. Set to null to clear the override."},"changelogDestination":{"description":"The destination of the blueprint's changelog.","oneOf":[{"type":"object","title":"Webhook","description":"The changelog will be sent to the specified webhook.","properties":{"type":{"type":"string","enum":["WEBHOOK"]},"agent":{"type":"boolean","description":"If `true`, Port's execution agent will be used to send the changelog."},"url":{"type":"string","description":"The URL of the webhook.","format":"uri"}},"required":["url","type"],"additionalProperties":false},{"type":"object","title":"Kafka","description":"The changelog will be sent to the Kafka topic connected to your Port account.","properties":{"type":{"type":"string","enum":["KAFKA"]}},"required":["type"],"additionalProperties":false}]},"updatedBy":{"type":"string"},"createdBy":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"required":["identifier","title","schema","createdBy","updatedBy","createdAt","updatedAt"]}}},"required":["blueprints","ok"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}}}},"post":{"summary":"Create a blueprint","tags":["Blueprints"],"description":"This route allows you to create a new blueprint in your data model.<br/><br/>To learn more about blueprints, check out the [documentation](https://docs.port.io/context-lake/data-model/setup-blueprint/overview).","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"identifier":{"type":"string","pattern":"^(?!\\.{1,2}$)[\\p{L}0-9@_.+:\\\\/-]+$","maxLength":100,"description":"The identifier of the blueprint."},"title":{"type":"string","maxLength":100,"minLength":1,"description":"The title of the blueprint."},"description":{"type":"string","maxLength":200,"description":"The description of the blueprint."},"icon":{"type":"string","description":"The icon of the blueprint."},"ownership":{"anyOf":[{"type":"object","title":"Inherited","description":"Ownership of the blueprint's entities will be inherited from a different related blueprint with `Direct` ownership.","properties":{"type":{"type":"string","enum":["Inherited"]},"path":{"type":"string","description":"The `path` key is a dot-separated path of relation identifiers that lead to the desired blueprint."},"title":{"type":"string","maxLength":100,"description":"The title of the ownership property. The default value is `Owning teams`."}},"additionalProperties":false,"required":["type","path"]},{"type":"object","title":"Direct","description":"Ownership of the blueprint's entities will be defined by a hidden **relation** to the `Team` blueprint.","properties":{"type":{"type":"string","enum":["Direct"]},"title":{"type":"string","maxLength":100,"description":"The title of the ownership property. The default value is `Owning teams`."},"union":{"type":"boolean","description":"When `true`, every writer owns its own slice of owning teams and the entity's owning teams are the combination of all slices. Cannot be changed once ownership is Direct."}},"additionalProperties":false,"required":["type"]}]},"schema":{"type":"object","description":"The schema of the blueprint, see `properties` and `required` below for more information.","properties":{"properties":{"type":"object","description":"The properties of the blueprint.<br/> Each property identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\\\-]+$`.","propertyNames":{"pattern":"^[A-Za-z0-9@_=\\\\-]+$","maxLength":100},"additionalProperties":{"type":"object","properties":{"title":{"type":"string","maxLength":100,"description":"The title of the property."},"description":{"type":"string","description":"The description of the property."},"icon":{"type":"string","description":"The icon of the property."},"type":{"enum":["string","number","boolean","object","array"],"description":"The [type](https://docs.port.io/context-lake/data-model/setup-blueprint/properties/overview#supported-properties) of the property."},"format":{"enum":["date-time","url","email","idn-email","ipv4","ipv6","markdown","yaml","user","blueprints","team","timer","proto","labeled-url"],"description":"The type's [format](https://docs.port.io/context-lake/data-model/setup-blueprint/properties/overview#supported-properties)."},"dateFormat":{"enum":["relative","12-hour","24-hour","iso"],"description":"The display format for date-time properties. Only applicable when format is 'date-time'. Defaults to 'relative'."},"spec":{"enum":["open-api","embedded-url","async-api"],"description":"The [spec](https://docs.port.io/context-lake/data-model/setup-blueprint/properties/overview#supported-properties) of the property."},"union":{"type":"boolean","description":"Only applicable to `array` properties with `string` or `number` items. When `true`, every writer owns its own slice of the value and the property returns the combination of all slices, with each value appearing once. Writers send `{ \"<sourceKey>\": [values] }` instead of a plain array. Cannot be changed after the property is created."},"specAuthentication":{"type":"object","description":"When using the `spec` property with `embedded-url`, the authentication spec of the property.","properties":{"clientId":{"type":"string"},"authorizationUrl":{"type":"string","format":"url"},"tokenUrl":{"type":"string","format":"url"},"authorizationScope":{"type":"array","items":{"type":"string"},"default":["openid"]}},"additionalProperties":false,"required":["clientId","authorizationUrl","tokenUrl"]}},"required":["type"]}},"required":{"type":"array","items":{"type":"string"},"description":"The required properties of the blueprint, these must be provided when creating an entity based on this blueprint. This is an array of the required properties' identifiers."}},"additionalProperties":false,"required":["properties"]},"calculationProperties":{"type":"object","description":"The [calculation properties](https://docs.port.io/context-lake/data-model/setup-blueprint/properties/calculation-property/) of the blueprint. <br/> Each calculation property identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\\\-]+$`.","default":{},"propertyNames":{"pattern":"^[A-Za-z0-9@_=\\\\-]+$","maxLength":100},"additionalProperties":{"type":"object","additionalProperties":false,"properties":{"title":{"type":"string","maxLength":100,"description":"The title of the property."},"description":{"type":"string","description":"The description of the property."},"icon":{"type":"string","description":"The icon of the property."},"calculation":{"type":"string","description":"The JQ expression that calculates the value of the property."},"type":{"enum":["string","number","boolean","object","array"],"description":"The type of the property."},"format":{"enum":["date-time","url","email","idn-email","ipv4","ipv6","markdown","yaml","user","team","proto","labeled-url"],"description":"The format of the property."},"dateFormat":{"enum":["relative","12-hour","24-hour","iso"],"description":"The display format for date-time calculation properties. Only applicable when format is 'date-time'. Defaults to 'relative'."},"spec":{"enum":["open-api","embedded-url","async-api"],"description":"The spec of the property."},"specAuthentication":{"type":"object","description":"When using the `spec` property with `embedded-url`, the authentication spec of the property.","properties":{"clientId":{"type":"string"},"authorizationUrl":{"type":"string","format":"url"},"tokenUrl":{"type":"string","format":"url"},"authorizationScope":{"type":"array","items":{"type":"string"},"default":["openid"]}},"additionalProperties":false,"required":["clientId","authorizationUrl","tokenUrl"]},"colorized":{"type":"boolean","description":"Whether the property is colorized."},"colors":{"type":"object","description":"When using the `colorized` property, the colors of the property.","additionalProperties":{"enum":["blue","turquoise","orange","purple","pink","yellow","green","red","gold","silver","paleBlue","darkGray","lightGray","bronze","lime","olive","brown"]}},"items":{"type":"object","properties":{"type":{"enum":["string","number","boolean","object","array"],"description":"The type of the item."},"format":{"description":"The format of the item.","enum":["date-time","url","email","idn-format","ipv4","ipv6","markdown","yaml","user","team","timer","proto","labeled-url"]}}}},"required":["calculation","type"]}},"mirrorProperties":{"type":"object","description":"The [mirror properties](https://docs.port.io/context-lake/data-model/setup-blueprint/properties/mirror-property/) of the blueprint. <br/> Each mirror property identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\\\-]+$`.","propertyNames":{"pattern":"^[A-Za-z0-9@_=\\\\-]+$","maxLength":100},"additionalProperties":{"type":"object","properties":{"path":{"type":"string","pattern":"^(?:[A-Za-z0-9@_=\\-$]+\\.)+?(\\w|\\$|@|-)*?[^\\.]+$","description":"The path to the property in the related blueprint. This is a string of relation identifiers separated by dots, the last identifier is the property identifier."},"title":{"type":"string","maxLength":100,"description":"The title of the property."}},"additionalProperties":false,"required":["path"]}},"aggregationProperties":{"type":"object","description":"The [aggregation properties](https://docs.port.io/context-lake/data-model/setup-blueprint/properties/aggregation-property/) of the blueprint. <br/> Each aggregation property identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\\\-]+$`.","default":{},"propertyNames":{"pattern":"^[A-Za-z0-9@_=\\\\-]+$","maxLength":100},"additionalProperties":{"type":"object","properties":{"title":{"type":"string","maxLength":100,"description":"The title of the property."},"description":{"type":"string","description":"The description of the property."},"icon":{"type":"string","description":"The icon of the property."},"type":{"enum":["number"],"default":"number","description":"The type of the property. This is the type of the aggregation result."},"target":{"type":"string","description":"The blueprint identifier to run the aggregation on."},"calculationSpec":{"type":"object","oneOf":[{"title":"Count entities","oneOf":[{"type":"object","title":"Count","properties":{"func":{"description":"The function to use for the aggregation.","enum":["count"]},"calculationBy":{"type":"string","description":"Whether to aggregate by entities or properties.","enum":["entities"]}},"required":["func","calculationBy"],"additionalProperties":false},{"type":"object","title":"Average entities over time","properties":{"func":{"description":"The function to use for the aggregation.","enum":["average"]},"measureTimeBy":{"type":"string","description":"The time property to use for the aggregation."},"averageOf":{"type":"string","enum":["hour","day","week","month","total"]},"calculationBy":{"type":"string","description":"Whether to aggregate by entities or properties.","enum":["entities"]}},"required":["func","calculationBy","averageOf"],"additionalProperties":false}]},{"title":"Aggregate property","oneOf":[{"type":"object","title":"Aggregate property values","properties":{"func":{"type":"string","enum":["sum","min","max","median"],"description":"The function to use for the aggregation."},"property":{"type":"string","description":"The property to aggregate."},"calculationBy":{"type":"string","description":"Whether to aggregate by property or entities.","enum":["property"]}},"additionalProperties":false,"required":["func","property","calculationBy"]},{"type":"object","title":"Average property over time","properties":{"func":{"description":"The function to use for the aggregation.","enum":["average"]},"measureTimeBy":{"type":"string","description":"The time property to use for the aggregation."},"averageOf":{"type":"string","enum":["hour","day","week","month","total"]},"property":{"type":"string","description":"The property to aggregate."},"calculationBy":{"type":"string","description":"Whether to aggregate by property or entities.","enum":["property"]}},"additionalProperties":false,"required":["func","property","calculationBy","averageOf"]}]}],"description":"The calculation spec of the property."},"query":{"$ref":"#/components/schemas/def-1"},"pathFilter":{"type":"array","description":"Optional filter to run the aggregation on entities that are connected through a specific path. When empty will use all the related entities from all possible paths","maxItems":1,"items":{"type":"object","properties":{"path":{"description":"The path to the property in the related blueprint. This is a string of relation identifiers separated by dots.","type":"array","items":{"type":"string"},"minItems":1},"fromBlueprint":{"type":"string"}},"required":["path"],"additionalProperties":false}}},"additionalProperties":false,"required":["title","target","calculationSpec"]}},"relations":{"type":"object","description":"The [relations](https://docs.port.io/context-lake/data-model/setup-blueprint/relate-blueprints) of the blueprint. <br/> Each relation identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\\\-]+$`.","propertyNames":{"pattern":"^[A-Za-z0-9@_=\\\\-]+$","maxLength":100},"additionalProperties":{"type":"object","properties":{"title":{"type":"string","maxLength":100},"target":{"type":"string"},"required":{"type":"boolean","default":false},"many":{"type":"boolean","default":false},"description":{"type":"string"},"type":{"type":"string"},"union":{"type":"boolean","description":"When `true`, every writer owns its own slice of the value and the relation returns the combination of all slices. Requires `many: true`. Cannot be changed after the relation is created."}},"additionalProperties":false,"required":["target","required","many"]}},"includeInGlobalSearch":{"type":["boolean","null"],"description":"Overrides the org-level includeBlueprintsInGlobalSearchByDefault setting. When set, controls whether entities of this blueprint appear in global search results. Set to null to clear the override."},"changelogDestination":{"description":"The destination of the blueprint's changelog.","oneOf":[{"type":"object","title":"Webhook","description":"The changelog will be sent to the specified webhook.","properties":{"type":{"type":"string","enum":["WEBHOOK"]},"agent":{"type":"boolean","description":"If `true`, Port's execution agent will be used to send the changelog."},"url":{"type":"string","description":"The URL of the webhook.","format":"uri"}},"required":["url","type"],"additionalProperties":false},{"type":"object","title":"Kafka","description":"The changelog will be sent to the Kafka topic connected to your Port account.","properties":{"type":{"type":"string","enum":["KAFKA"]}},"required":["type"],"additionalProperties":false}]}},"additionalProperties":true,"required":["identifier","title","schema"]}}},"required":true},"parameters":[{"schema":{"type":"boolean","default":false},"in":"query","name":"create_catalog_page","required":false,"description":"If true, a catalog page will be created for this blueprint under Interface"}],"security":[{"bearer":["create:blueprints"]}],"x-should-be-exposed-to-customers":true,"responses":{"201":{"description":"Created successfully.","content":{"application/json":{"schema":{"description":"Created successfully.","type":"object","properties":{"ok":{"enum":[true]},"blueprint":{"type":"object","properties":{"identifier":{"type":"string","pattern":"^(?!\\.{1,2}$)[\\p{L}0-9@_.+:\\\\/-]+$","maxLength":100,"description":"The identifier of the blueprint."},"title":{"type":"string","maxLength":100,"minLength":1,"description":"The title of the blueprint."},"description":{"type":"string","maxLength":200,"description":"The description of the blueprint."},"icon":{"type":"string","description":"The icon of the blueprint."},"ownership":{"anyOf":[{"type":"object","title":"Inherited","description":"Ownership of the blueprint's entities will be inherited from a different related blueprint with `Direct` ownership.","properties":{"type":{"type":"string","enum":["Inherited"]},"path":{"type":"string","description":"The `path` key is a dot-separated path of relation identifiers that lead to the desired blueprint."},"title":{"type":"string","maxLength":100,"description":"The title of the ownership property. The default value is `Owning teams`."}},"additionalProperties":false,"required":["type","path"]},{"type":"object","title":"Direct","description":"Ownership of the blueprint's entities will be defined by a hidden **relation** to the `Team` blueprint.","properties":{"type":{"type":"string","enum":["Direct"]},"title":{"type":"string","maxLength":100,"description":"The title of the ownership property. The default value is `Owning teams`."},"union":{"type":"boolean","description":"When `true`, every writer owns its own slice of owning teams and the entity's owning teams are the combination of all slices. Cannot be changed once ownership is Direct."}},"additionalProperties":false,"required":["type"]}]},"schema":{"type":"object","description":"The schema of the blueprint, see `properties` and `required` below for more information.","properties":{"properties":{"type":"object","description":"The properties of the blueprint.<br/> Each property identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\\\-]+$`.","propertyNames":{"pattern":"^[A-Za-z0-9@_=\\\\-]+$","maxLength":100},"additionalProperties":{"type":"object","properties":{"title":{"type":"string","maxLength":100,"description":"The title of the property."},"description":{"type":"string","description":"The description of the property."},"icon":{"type":"string","description":"The icon of the property."},"type":{"enum":["string","number","boolean","object","array"],"description":"The [type](https://docs.port.io/context-lake/data-model/setup-blueprint/properties/overview#supported-properties) of the property."},"format":{"enum":["date-time","url","email","idn-email","ipv4","ipv6","markdown","yaml","user","blueprints","team","timer","proto","labeled-url"],"description":"The type's [format](https://docs.port.io/context-lake/data-model/setup-blueprint/properties/overview#supported-properties)."},"dateFormat":{"enum":["relative","12-hour","24-hour","iso"],"description":"The display format for date-time properties. Only applicable when format is 'date-time'. Defaults to 'relative'."},"spec":{"enum":["open-api","embedded-url","async-api"],"description":"The [spec](https://docs.port.io/context-lake/data-model/setup-blueprint/properties/overview#supported-properties) of the property."},"union":{"type":"boolean","description":"Only applicable to `array` properties with `string` or `number` items. When `true`, every writer owns its own slice of the value and the property returns the combination of all slices, with each value appearing once. Writers send `{ \"<sourceKey>\": [values] }` instead of a plain array. Cannot be changed after the property is created."},"specAuthentication":{"type":"object","description":"When using the `spec` property with `embedded-url`, the authentication spec of the property.","properties":{"clientId":{"type":"string"},"authorizationUrl":{"type":"string","format":"url"},"tokenUrl":{"type":"string","format":"url"},"authorizationScope":{"type":"array","items":{"type":"string"},"default":["openid"]}},"additionalProperties":false,"required":["clientId","authorizationUrl","tokenUrl"]}},"required":["type"]}},"required":{"type":"array","items":{"type":"string"},"description":"The required properties of the blueprint, these must be provided when creating an entity based on this blueprint. This is an array of the required properties' identifiers."}},"additionalProperties":false,"required":["properties"]},"calculationProperties":{"type":"object","description":"The [calculation properties](https://docs.port.io/context-lake/data-model/setup-blueprint/properties/calculation-property/) of the blueprint. <br/> Each calculation property identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\\\-]+$`.","default":{},"propertyNames":{"pattern":"^[A-Za-z0-9@_=\\\\-]+$","maxLength":100},"additionalProperties":{"type":"object","additionalProperties":false,"properties":{"title":{"type":"string","maxLength":100,"description":"The title of the property."},"description":{"type":"string","description":"The description of the property."},"icon":{"type":"string","description":"The icon of the property."},"calculation":{"type":"string","description":"The JQ expression that calculates the value of the property."},"type":{"enum":["string","number","boolean","object","array"],"description":"The type of the property."},"format":{"enum":["date-time","url","email","idn-email","ipv4","ipv6","markdown","yaml","user","team","proto","labeled-url"],"description":"The format of the property."},"dateFormat":{"enum":["relative","12-hour","24-hour","iso"],"description":"The display format for date-time calculation properties. Only applicable when format is 'date-time'. Defaults to 'relative'."},"spec":{"enum":["open-api","embedded-url","async-api"],"description":"The spec of the property."},"specAuthentication":{"type":"object","description":"When using the `spec` property with `embedded-url`, the authentication spec of the property.","properties":{"clientId":{"type":"string"},"authorizationUrl":{"type":"string","format":"url"},"tokenUrl":{"type":"string","format":"url"},"authorizationScope":{"type":"array","items":{"type":"string"},"default":["openid"]}},"additionalProperties":false,"required":["clientId","authorizationUrl","tokenUrl"]},"colorized":{"type":"boolean","description":"Whether the property is colorized."},"colors":{"type":"object","description":"When using the `colorized` property, the colors of the property.","additionalProperties":{"enum":["blue","turquoise","orange","purple","pink","yellow","green","red","gold","silver","paleBlue","darkGray","lightGray","bronze","lime","olive","brown"]}},"items":{"type":"object","properties":{"type":{"enum":["string","number","boolean","object","array"],"description":"The type of the item."},"format":{"description":"The format of the item.","enum":["date-time","url","email","idn-format","ipv4","ipv6","markdown","yaml","user","team","timer","proto","labeled-url"]}}}},"required":["calculation","type"]}},"mirrorProperties":{"type":"object","description":"The [mirror properties](https://docs.port.io/context-lake/data-model/setup-blueprint/properties/mirror-property/) of the blueprint. <br/> Each mirror property identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\\\-]+$`.","propertyNames":{"pattern":"^[A-Za-z0-9@_=\\\\-]+$","maxLength":100},"additionalProperties":{"type":"object","properties":{"path":{"type":"string","pattern":"^(?:[A-Za-z0-9@_=\\-$]+\\.)+?(\\w|\\$|@|-)*?[^\\.]+$","description":"The path to the property in the related blueprint. This is a string of relation identifiers separated by dots, the last identifier is the property identifier."},"title":{"type":"string","maxLength":100,"description":"The title of the property."}},"additionalProperties":false,"required":["path"]}},"aggregationProperties":{"type":"object","description":"The [aggregation properties](https://docs.port.io/context-lake/data-model/setup-blueprint/properties/aggregation-property/) of the blueprint. <br/> Each aggregation property identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\\\-]+$`.","default":{},"propertyNames":{"pattern":"^[A-Za-z0-9@_=\\\\-]+$","maxLength":100},"additionalProperties":{"type":"object","properties":{"title":{"type":"string","maxLength":100,"description":"The title of the property."},"description":{"type":"string","description":"The description of the property."},"icon":{"type":"string","description":"The icon of the property."},"type":{"enum":["number"],"default":"number","description":"The type of the property. This is the type of the aggregation result."},"target":{"type":"string","description":"The blueprint identifier to run the aggregation on."},"calculationSpec":{"type":"object","oneOf":[{"title":"Count entities","oneOf":[{"type":"object","title":"Count","properties":{"func":{"description":"The function to use for the aggregation.","enum":["count"]},"calculationBy":{"type":"string","description":"Whether to aggregate by entities or properties.","enum":["entities"]}},"required":["func","calculationBy"],"additionalProperties":false},{"type":"object","title":"Average entities over time","properties":{"func":{"description":"The function to use for the aggregation.","enum":["average"]},"measureTimeBy":{"type":"string","description":"The time property to use for the aggregation."},"averageOf":{"type":"string","enum":["hour","day","week","month","total"]},"calculationBy":{"type":"string","description":"Whether to aggregate by entities or properties.","enum":["entities"]}},"required":["func","calculationBy","averageOf"],"additionalProperties":false}]},{"title":"Aggregate property","oneOf":[{"type":"object","title":"Aggregate property values","properties":{"func":{"type":"string","enum":["sum","min","max","median"],"description":"The function to use for the aggregation."},"property":{"type":"string","description":"The property to aggregate."},"calculationBy":{"type":"string","description":"Whether to aggregate by property or entities.","enum":["property"]}},"additionalProperties":false,"required":["func","property","calculationBy"]},{"type":"object","title":"Average property over time","properties":{"func":{"description":"The function to use for the aggregation.","enum":["average"]},"measureTimeBy":{"type":"string","description":"The time property to use for the aggregation."},"averageOf":{"type":"string","enum":["hour","day","week","month","total"]},"property":{"type":"string","description":"The property to aggregate."},"calculationBy":{"type":"string","description":"Whether to aggregate by property or entities.","enum":["property"]}},"additionalProperties":false,"required":["func","property","calculationBy","averageOf"]}]}],"description":"The calculation spec of the property."},"query":{"$ref":"#/components/schemas/def-1"},"pathFilter":{"type":"array","description":"Optional filter to run the aggregation on entities that are connected through a specific path. When empty will use all the related entities from all possible paths","maxItems":1,"items":{"type":"object","properties":{"path":{"description":"The path to the property in the related blueprint. This is a string of relation identifiers separated by dots.","type":"array","items":{"type":"string"},"minItems":1},"fromBlueprint":{"type":"string"}},"required":["path"],"additionalProperties":false}}},"additionalProperties":false,"required":["title","target","calculationSpec"]}},"relations":{"type":"object","description":"The [relations](https://docs.port.io/context-lake/data-model/setup-blueprint/relate-blueprints) of the blueprint. <br/> Each relation identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\\\-]+$`.","propertyNames":{"pattern":"^[A-Za-z0-9@_=\\\\-]+$","maxLength":100},"additionalProperties":{"type":"object","properties":{"title":{"type":"string","maxLength":100},"target":{"type":"string"},"required":{"type":"boolean","default":false},"many":{"type":"boolean","default":false},"description":{"type":"string"},"type":{"type":"string"},"union":{"type":"boolean","description":"When `true`, every writer owns its own slice of the value and the relation returns the combination of all slices. Requires `many: true`. Cannot be changed after the relation is created."}},"additionalProperties":false,"required":["target","required","many"]}},"includeInGlobalSearch":{"type":["boolean","null"],"description":"Overrides the org-level includeBlueprintsInGlobalSearchByDefault setting. When set, controls whether entities of this blueprint appear in global search results. Set to null to clear the override."},"changelogDestination":{"description":"The destination of the blueprint's changelog.","oneOf":[{"type":"object","title":"Webhook","description":"The changelog will be sent to the specified webhook.","properties":{"type":{"type":"string","enum":["WEBHOOK"]},"agent":{"type":"boolean","description":"If `true`, Port's execution agent will be used to send the changelog."},"url":{"type":"string","description":"The URL of the webhook.","format":"uri"}},"required":["url","type"],"additionalProperties":false},{"type":"object","title":"Kafka","description":"The changelog will be sent to the Kafka topic connected to your Port account.","properties":{"type":{"type":"string","enum":["KAFKA"]}},"required":["type"],"additionalProperties":false}]},"updatedBy":{"type":"string"},"createdBy":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"required":["identifier","title","schema","createdBy","updatedBy","createdAt","updatedAt"]}},"required":["blueprint","ok"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}},"413":{"description":"Request body is too large (limit is 1MiB)","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false,"description":"Request body is too large (limit is 1MiB)"}}}},"422":{"description":"The json provided does not match the route's schema","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"The json provided does not match the route's schema"}}}}}}},"/v1/blueprints/{identifier}":{"get":{"summary":"Get a blueprint","tags":["Blueprints"],"description":"This route allows you to fetch a specific blueprint in your Port account.<br/><br/>To learn more about blueprints, check out the [documentation](https://docs.port.io/context-lake/data-model/setup-blueprint/overview).","parameters":[{"schema":{"type":"string"},"in":"path","name":"identifier","required":true,"description":"The unique identifier of the resource you want to operate on."}],"security":[{"bearer":["read:blueprints"]}],"x-should-be-exposed-to-customers":true,"responses":{"200":{"description":"Retrieved successfully.","content":{"application/json":{"schema":{"description":"Retrieved successfully.","type":"object","properties":{"ok":{"enum":[true]},"blueprint":{"type":"object","properties":{"identifier":{"type":"string","pattern":"^(?!\\.{1,2}$)[\\p{L}0-9@_.+:\\\\/-]+$","maxLength":100,"description":"The identifier of the blueprint."},"title":{"type":"string","maxLength":100,"minLength":1,"description":"The title of the blueprint."},"description":{"type":"string","maxLength":200,"description":"The description of the blueprint."},"icon":{"type":"string","description":"The icon of the blueprint."},"ownership":{"anyOf":[{"type":"object","title":"Inherited","description":"Ownership of the blueprint's entities will be inherited from a different related blueprint with `Direct` ownership.","properties":{"type":{"type":"string","enum":["Inherited"]},"path":{"type":"string","description":"The `path` key is a dot-separated path of relation identifiers that lead to the desired blueprint."},"title":{"type":"string","maxLength":100,"description":"The title of the ownership property. The default value is `Owning teams`."}},"additionalProperties":false,"required":["type","path"]},{"type":"object","title":"Direct","description":"Ownership of the blueprint's entities will be defined by a hidden **relation** to the `Team` blueprint.","properties":{"type":{"type":"string","enum":["Direct"]},"title":{"type":"string","maxLength":100,"description":"The title of the ownership property. The default value is `Owning teams`."},"union":{"type":"boolean","description":"When `true`, every writer owns its own slice of owning teams and the entity's owning teams are the combination of all slices. Cannot be changed once ownership is Direct."}},"additionalProperties":false,"required":["type"]}]},"schema":{"type":"object","description":"The schema of the blueprint, see `properties` and `required` below for more information.","properties":{"properties":{"type":"object","description":"The properties of the blueprint.<br/> Each property identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\\\-]+$`.","propertyNames":{"pattern":"^[A-Za-z0-9@_=\\\\-]+$","maxLength":100},"additionalProperties":{"type":"object","properties":{"title":{"type":"string","maxLength":100,"description":"The title of the property."},"description":{"type":"string","description":"The description of the property."},"icon":{"type":"string","description":"The icon of the property."},"type":{"enum":["string","number","boolean","object","array"],"description":"The [type](https://docs.port.io/context-lake/data-model/setup-blueprint/properties/overview#supported-properties) of the property."},"format":{"enum":["date-time","url","email","idn-email","ipv4","ipv6","markdown","yaml","user","blueprints","team","timer","proto","labeled-url"],"description":"The type's [format](https://docs.port.io/context-lake/data-model/setup-blueprint/properties/overview#supported-properties)."},"dateFormat":{"enum":["relative","12-hour","24-hour","iso"],"description":"The display format for date-time properties. Only applicable when format is 'date-time'. Defaults to 'relative'."},"spec":{"enum":["open-api","embedded-url","async-api"],"description":"The [spec](https://docs.port.io/context-lake/data-model/setup-blueprint/properties/overview#supported-properties) of the property."},"union":{"type":"boolean","description":"Only applicable to `array` properties with `string` or `number` items. When `true`, every writer owns its own slice of the value and the property returns the combination of all slices, with each value appearing once. Writers send `{ \"<sourceKey>\": [values] }` instead of a plain array. Cannot be changed after the property is created."},"specAuthentication":{"type":"object","description":"When using the `spec` property with `embedded-url`, the authentication spec of the property.","properties":{"clientId":{"type":"string"},"authorizationUrl":{"type":"string","format":"url"},"tokenUrl":{"type":"string","format":"url"},"authorizationScope":{"type":"array","items":{"type":"string"},"default":["openid"]}},"additionalProperties":false,"required":["clientId","authorizationUrl","tokenUrl"]}},"required":["type"]}},"required":{"type":"array","items":{"type":"string"},"description":"The required properties of the blueprint, these must be provided when creating an entity based on this blueprint. This is an array of the required properties' identifiers."}},"additionalProperties":false,"required":["properties"]},"calculationProperties":{"type":"object","description":"The [calculation properties](https://docs.port.io/context-lake/data-model/setup-blueprint/properties/calculation-property/) of the blueprint. <br/> Each calculation property identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\\\-]+$`.","default":{},"propertyNames":{"pattern":"^[A-Za-z0-9@_=\\\\-]+$","maxLength":100},"additionalProperties":{"type":"object","additionalProperties":false,"properties":{"title":{"type":"string","maxLength":100,"description":"The title of the property."},"description":{"type":"string","description":"The description of the property."},"icon":{"type":"string","description":"The icon of the property."},"calculation":{"type":"string","description":"The JQ expression that calculates the value of the property."},"type":{"enum":["string","number","boolean","object","array"],"description":"The type of the property."},"format":{"enum":["date-time","url","email","idn-email","ipv4","ipv6","markdown","yaml","user","team","proto","labeled-url"],"description":"The format of the property."},"dateFormat":{"enum":["relative","12-hour","24-hour","iso"],"description":"The display format for date-time calculation properties. Only applicable when format is 'date-time'. Defaults to 'relative'."},"spec":{"enum":["open-api","embedded-url","async-api"],"description":"The spec of the property."},"specAuthentication":{"type":"object","description":"When using the `spec` property with `embedded-url`, the authentication spec of the property.","properties":{"clientId":{"type":"string"},"authorizationUrl":{"type":"string","format":"url"},"tokenUrl":{"type":"string","format":"url"},"authorizationScope":{"type":"array","items":{"type":"string"},"default":["openid"]}},"additionalProperties":false,"required":["clientId","authorizationUrl","tokenUrl"]},"colorized":{"type":"boolean","description":"Whether the property is colorized."},"colors":{"type":"object","description":"When using the `colorized` property, the colors of the property.","additionalProperties":{"enum":["blue","turquoise","orange","purple","pink","yellow","green","red","gold","silver","paleBlue","darkGray","lightGray","bronze","lime","olive","brown"]}},"items":{"type":"object","properties":{"type":{"enum":["string","number","boolean","object","array"],"description":"The type of the item."},"format":{"description":"The format of the item.","enum":["date-time","url","email","idn-format","ipv4","ipv6","markdown","yaml","user","team","timer","proto","labeled-url"]}}}},"required":["calculation","type"]}},"mirrorProperties":{"type":"object","description":"The [mirror properties](https://docs.port.io/context-lake/data-model/setup-blueprint/properties/mirror-property/) of the blueprint. <br/> Each mirror property identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\\\-]+$`.","propertyNames":{"pattern":"^[A-Za-z0-9@_=\\\\-]+$","maxLength":100},"additionalProperties":{"type":"object","properties":{"path":{"type":"string","pattern":"^(?:[A-Za-z0-9@_=\\-$]+\\.)+?(\\w|\\$|@|-)*?[^\\.]+$","description":"The path to the property in the related blueprint. This is a string of relation identifiers separated by dots, the last identifier is the property identifier."},"title":{"type":"string","maxLength":100,"description":"The title of the property."}},"additionalProperties":false,"required":["path"]}},"aggregationProperties":{"type":"object","description":"The [aggregation properties](https://docs.port.io/context-lake/data-model/setup-blueprint/properties/aggregation-property/) of the blueprint. <br/> Each aggregation property identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\\\-]+$`.","default":{},"propertyNames":{"pattern":"^[A-Za-z0-9@_=\\\\-]+$","maxLength":100},"additionalProperties":{"type":"object","properties":{"title":{"type":"string","maxLength":100,"description":"The title of the property."},"description":{"type":"string","description":"The description of the property."},"icon":{"type":"string","description":"The icon of the property."},"type":{"enum":["number"],"default":"number","description":"The type of the property. This is the type of the aggregation result."},"target":{"type":"string","description":"The blueprint identifier to run the aggregation on."},"calculationSpec":{"type":"object","oneOf":[{"title":"Count entities","oneOf":[{"type":"object","title":"Count","properties":{"func":{"description":"The function to use for the aggregation.","enum":["count"]},"calculationBy":{"type":"string","description":"Whether to aggregate by entities or properties.","enum":["entities"]}},"required":["func","calculationBy"],"additionalProperties":false},{"type":"object","title":"Average entities over time","properties":{"func":{"description":"The function to use for the aggregation.","enum":["average"]},"measureTimeBy":{"type":"string","description":"The time property to use for the aggregation."},"averageOf":{"type":"string","enum":["hour","day","week","month","total"]},"calculationBy":{"type":"string","description":"Whether to aggregate by entities or properties.","enum":["entities"]}},"required":["func","calculationBy","averageOf"],"additionalProperties":false}]},{"title":"Aggregate property","oneOf":[{"type":"object","title":"Aggregate property values","properties":{"func":{"type":"string","enum":["sum","min","max","median"],"description":"The function to use for the aggregation."},"property":{"type":"string","description":"The property to aggregate."},"calculationBy":{"type":"string","description":"Whether to aggregate by property or entities.","enum":["property"]}},"additionalProperties":false,"required":["func","property","calculationBy"]},{"type":"object","title":"Average property over time","properties":{"func":{"description":"The function to use for the aggregation.","enum":["average"]},"measureTimeBy":{"type":"string","description":"The time property to use for the aggregation."},"averageOf":{"type":"string","enum":["hour","day","week","month","total"]},"property":{"type":"string","description":"The property to aggregate."},"calculationBy":{"type":"string","description":"Whether to aggregate by property or entities.","enum":["property"]}},"additionalProperties":false,"required":["func","property","calculationBy","averageOf"]}]}],"description":"The calculation spec of the property."},"query":{"$ref":"#/components/schemas/def-1"},"pathFilter":{"type":"array","description":"Optional filter to run the aggregation on entities that are connected through a specific path. When empty will use all the related entities from all possible paths","maxItems":1,"items":{"type":"object","properties":{"path":{"description":"The path to the property in the related blueprint. This is a string of relation identifiers separated by dots.","type":"array","items":{"type":"string"},"minItems":1},"fromBlueprint":{"type":"string"}},"required":["path"],"additionalProperties":false}}},"additionalProperties":false,"required":["title","target","calculationSpec"]}},"relations":{"type":"object","description":"The [relations](https://docs.port.io/context-lake/data-model/setup-blueprint/relate-blueprints) of the blueprint. <br/> Each relation identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\\\-]+$`.","propertyNames":{"pattern":"^[A-Za-z0-9@_=\\\\-]+$","maxLength":100},"additionalProperties":{"type":"object","properties":{"title":{"type":"string","maxLength":100},"target":{"type":"string"},"required":{"type":"boolean","default":false},"many":{"type":"boolean","default":false},"description":{"type":"string"},"type":{"type":"string"},"union":{"type":"boolean","description":"When `true`, every writer owns its own slice of the value and the relation returns the combination of all slices. Requires `many: true`. Cannot be changed after the relation is created."}},"additionalProperties":false,"required":["target","required","many"]}},"includeInGlobalSearch":{"type":["boolean","null"],"description":"Overrides the org-level includeBlueprintsInGlobalSearchByDefault setting. When set, controls whether entities of this blueprint appear in global search results. Set to null to clear the override."},"changelogDestination":{"description":"The destination of the blueprint's changelog.","oneOf":[{"type":"object","title":"Webhook","description":"The changelog will be sent to the specified webhook.","properties":{"type":{"type":"string","enum":["WEBHOOK"]},"agent":{"type":"boolean","description":"If `true`, Port's execution agent will be used to send the changelog."},"url":{"type":"string","description":"The URL of the webhook.","format":"uri"}},"required":["url","type"],"additionalProperties":false},{"type":"object","title":"Kafka","description":"The changelog will be sent to the Kafka topic connected to your Port account.","properties":{"type":{"type":"string","enum":["KAFKA"]}},"required":["type"],"additionalProperties":false}]},"updatedBy":{"type":"string"},"createdBy":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"required":["identifier","title","schema","createdBy","updatedBy","createdAt","updatedAt"]}},"required":["blueprint","ok"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}}}},"put":{"summary":"Change a blueprint","tags":["Blueprints"],"description":"This route allows you to change a specific blueprint in your Port account.<br/><br/>To learn more about blueprints, check out the [documentation](https://docs.port.io/context-lake/data-model/setup-blueprint/overview).<br/><br/>**Modifying system blueprints** <br/>System blueprints (such as `_team`, `_user`, etc.) are managed by Port and their schemas may change over time.<br/>If you use this endpoint, always [fetch the system blueprint structure](https://docs.port.io/api-reference/get-a-system-blueprint-structure/) first and apply your changes on top of it. Sending a stale or incomplete schema will result in a `422` error.<br/><br/>For additive changes, you can use the [Update a blueprint](https://docs.port.io/api-reference/update-a-blueprint/) endpoint.","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"identifier":{"type":"string","pattern":"^(?!\\.{1,2}$)[\\p{L}0-9@_.+:\\\\/-]+$","maxLength":100,"description":"The identifier of the blueprint."},"title":{"type":"string","maxLength":100,"minLength":1,"description":"The title of the blueprint."},"description":{"type":"string","maxLength":200,"description":"The description of the blueprint."},"icon":{"type":"string","description":"The icon of the blueprint."},"ownership":{"anyOf":[{"type":"object","title":"Inherited","description":"Ownership of the blueprint's entities will be inherited from a different related blueprint with `Direct` ownership.","properties":{"type":{"type":"string","enum":["Inherited"]},"path":{"type":"string","description":"The `path` key is a dot-separated path of relation identifiers that lead to the desired blueprint."},"title":{"type":"string","maxLength":100,"description":"The title of the ownership property. The default value is `Owning teams`."}},"additionalProperties":false,"required":["type","path"]},{"type":"object","title":"Direct","description":"Ownership of the blueprint's entities will be defined by a hidden **relation** to the `Team` blueprint.","properties":{"type":{"type":"string","enum":["Direct"]},"title":{"type":"string","maxLength":100,"description":"The title of the ownership property. The default value is `Owning teams`."},"union":{"type":"boolean","description":"When `true`, every writer owns its own slice of owning teams and the entity's owning teams are the combination of all slices. Cannot be changed once ownership is Direct."}},"additionalProperties":false,"required":["type"]}]},"schema":{"type":"object","description":"The schema of the blueprint, see `properties` and `required` below for more information.","properties":{"properties":{"type":"object","description":"The properties of the blueprint.<br/> Each property identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\\\-]+$`.","propertyNames":{"pattern":"^[A-Za-z0-9@_=\\\\-]+$","maxLength":100},"additionalProperties":{"type":"object","properties":{"title":{"type":"string","maxLength":100,"description":"The title of the property."},"description":{"type":"string","description":"The description of the property."},"icon":{"type":"string","description":"The icon of the property."},"type":{"enum":["string","number","boolean","object","array"],"description":"The [type](https://docs.port.io/context-lake/data-model/setup-blueprint/properties/overview#supported-properties) of the property."},"format":{"enum":["date-time","url","email","idn-email","ipv4","ipv6","markdown","yaml","user","blueprints","team","timer","proto","labeled-url"],"description":"The type's [format](https://docs.port.io/context-lake/data-model/setup-blueprint/properties/overview#supported-properties)."},"dateFormat":{"enum":["relative","12-hour","24-hour","iso"],"description":"The display format for date-time properties. Only applicable when format is 'date-time'. Defaults to 'relative'."},"spec":{"enum":["open-api","embedded-url","async-api"],"description":"The [spec](https://docs.port.io/context-lake/data-model/setup-blueprint/properties/overview#supported-properties) of the property."},"union":{"type":"boolean","description":"Only applicable to `array` properties with `string` or `number` items. When `true`, every writer owns its own slice of the value and the property returns the combination of all slices, with each value appearing once. Writers send `{ \"<sourceKey>\": [values] }` instead of a plain array. Cannot be changed after the property is created."},"specAuthentication":{"type":"object","description":"When using the `spec` property with `embedded-url`, the authentication spec of the property.","properties":{"clientId":{"type":"string"},"authorizationUrl":{"type":"string","format":"url"},"tokenUrl":{"type":"string","format":"url"},"authorizationScope":{"type":"array","items":{"type":"string"},"default":["openid"]}},"additionalProperties":false,"required":["clientId","authorizationUrl","tokenUrl"]}},"required":["type"]}},"required":{"type":"array","items":{"type":"string"},"description":"The required properties of the blueprint, these must be provided when creating an entity based on this blueprint. This is an array of the required properties' identifiers."}},"additionalProperties":false,"required":["properties"]},"calculationProperties":{"type":"object","description":"The [calculation properties](https://docs.port.io/context-lake/data-model/setup-blueprint/properties/calculation-property/) of the blueprint. <br/> Each calculation property identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\\\-]+$`.","default":{},"propertyNames":{"pattern":"^[A-Za-z0-9@_=\\\\-]+$","maxLength":100},"additionalProperties":{"type":"object","additionalProperties":false,"properties":{"title":{"type":"string","maxLength":100,"description":"The title of the property."},"description":{"type":"string","description":"The description of the property."},"icon":{"type":"string","description":"The icon of the property."},"calculation":{"type":"string","description":"The JQ expression that calculates the value of the property."},"type":{"enum":["string","number","boolean","object","array"],"description":"The type of the property."},"format":{"enum":["date-time","url","email","idn-email","ipv4","ipv6","markdown","yaml","user","team","proto","labeled-url"],"description":"The format of the property."},"dateFormat":{"enum":["relative","12-hour","24-hour","iso"],"description":"The display format for date-time calculation properties. Only applicable when format is 'date-time'. Defaults to 'relative'."},"spec":{"enum":["open-api","embedded-url","async-api"],"description":"The spec of the property."},"specAuthentication":{"type":"object","description":"When using the `spec` property with `embedded-url`, the authentication spec of the property.","properties":{"clientId":{"type":"string"},"authorizationUrl":{"type":"string","format":"url"},"tokenUrl":{"type":"string","format":"url"},"authorizationScope":{"type":"array","items":{"type":"string"},"default":["openid"]}},"additionalProperties":false,"required":["clientId","authorizationUrl","tokenUrl"]},"colorized":{"type":"boolean","description":"Whether the property is colorized."},"colors":{"type":"object","description":"When using the `colorized` property, the colors of the property.","additionalProperties":{"enum":["blue","turquoise","orange","purple","pink","yellow","green","red","gold","silver","paleBlue","darkGray","lightGray","bronze","lime","olive","brown"]}},"items":{"type":"object","properties":{"type":{"enum":["string","number","boolean","object","array"],"description":"The type of the item."},"format":{"description":"The format of the item.","enum":["date-time","url","email","idn-format","ipv4","ipv6","markdown","yaml","user","team","timer","proto","labeled-url"]}}}},"required":["calculation","type"]}},"mirrorProperties":{"type":"object","description":"The [mirror properties](https://docs.port.io/context-lake/data-model/setup-blueprint/properties/mirror-property/) of the blueprint. <br/> Each mirror property identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\\\-]+$`.","propertyNames":{"pattern":"^[A-Za-z0-9@_=\\\\-]+$","maxLength":100},"additionalProperties":{"type":"object","properties":{"path":{"type":"string","pattern":"^(?:[A-Za-z0-9@_=\\-$]+\\.)+?(\\w|\\$|@|-)*?[^\\.]+$","description":"The path to the property in the related blueprint. This is a string of relation identifiers separated by dots, the last identifier is the property identifier."},"title":{"type":"string","maxLength":100,"description":"The title of the property."}},"additionalProperties":false,"required":["path"]}},"aggregationProperties":{"type":"object","description":"The [aggregation properties](https://docs.port.io/context-lake/data-model/setup-blueprint/properties/aggregation-property/) of the blueprint. <br/> Each aggregation property identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\\\-]+$`.","default":{},"propertyNames":{"pattern":"^[A-Za-z0-9@_=\\\\-]+$","maxLength":100},"additionalProperties":{"type":"object","properties":{"title":{"type":"string","maxLength":100,"description":"The title of the property."},"description":{"type":"string","description":"The description of the property."},"icon":{"type":"string","description":"The icon of the property."},"type":{"enum":["number"],"default":"number","description":"The type of the property. This is the type of the aggregation result."},"target":{"type":"string","description":"The blueprint identifier to run the aggregation on."},"calculationSpec":{"type":"object","oneOf":[{"title":"Count entities","oneOf":[{"type":"object","title":"Count","properties":{"func":{"description":"The function to use for the aggregation.","enum":["count"]},"calculationBy":{"type":"string","description":"Whether to aggregate by entities or properties.","enum":["entities"]}},"required":["func","calculationBy"],"additionalProperties":false},{"type":"object","title":"Average entities over time","properties":{"func":{"description":"The function to use for the aggregation.","enum":["average"]},"measureTimeBy":{"type":"string","description":"The time property to use for the aggregation."},"averageOf":{"type":"string","enum":["hour","day","week","month","total"]},"calculationBy":{"type":"string","description":"Whether to aggregate by entities or properties.","enum":["entities"]}},"required":["func","calculationBy","averageOf"],"additionalProperties":false}]},{"title":"Aggregate property","oneOf":[{"type":"object","title":"Aggregate property values","properties":{"func":{"type":"string","enum":["sum","min","max","median"],"description":"The function to use for the aggregation."},"property":{"type":"string","description":"The property to aggregate."},"calculationBy":{"type":"string","description":"Whether to aggregate by property or entities.","enum":["property"]}},"additionalProperties":false,"required":["func","property","calculationBy"]},{"type":"object","title":"Average property over time","properties":{"func":{"description":"The function to use for the aggregation.","enum":["average"]},"measureTimeBy":{"type":"string","description":"The time property to use for the aggregation."},"averageOf":{"type":"string","enum":["hour","day","week","month","total"]},"property":{"type":"string","description":"The property to aggregate."},"calculationBy":{"type":"string","description":"Whether to aggregate by property or entities.","enum":["property"]}},"additionalProperties":false,"required":["func","property","calculationBy","averageOf"]}]}],"description":"The calculation spec of the property."},"query":{"$ref":"#/components/schemas/def-1"},"pathFilter":{"type":"array","description":"Optional filter to run the aggregation on entities that are connected through a specific path. When empty will use all the related entities from all possible paths","maxItems":1,"items":{"type":"object","properties":{"path":{"description":"The path to the property in the related blueprint. This is a string of relation identifiers separated by dots.","type":"array","items":{"type":"string"},"minItems":1},"fromBlueprint":{"type":"string"}},"required":["path"],"additionalProperties":false}}},"additionalProperties":false,"required":["title","target","calculationSpec"]}},"relations":{"type":"object","description":"The [relations](https://docs.port.io/context-lake/data-model/setup-blueprint/relate-blueprints) of the blueprint. <br/> Each relation identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\\\-]+$`.","propertyNames":{"pattern":"^[A-Za-z0-9@_=\\\\-]+$","maxLength":100},"additionalProperties":{"type":"object","properties":{"title":{"type":"string","maxLength":100},"target":{"type":"string"},"required":{"type":"boolean","default":false},"many":{"type":"boolean","default":false},"description":{"type":"string"},"type":{"type":"string"},"union":{"type":"boolean","description":"When `true`, every writer owns its own slice of the value and the relation returns the combination of all slices. Requires `many: true`. Cannot be changed after the relation is created."}},"additionalProperties":false,"required":["target","required","many"]}},"includeInGlobalSearch":{"type":["boolean","null"],"description":"Overrides the org-level includeBlueprintsInGlobalSearchByDefault setting. When set, controls whether entities of this blueprint appear in global search results. Set to null to clear the override."},"changelogDestination":{"description":"The destination of the blueprint's changelog.","oneOf":[{"type":"object","title":"Webhook","description":"The changelog will be sent to the specified webhook.","properties":{"type":{"type":"string","enum":["WEBHOOK"]},"agent":{"type":"boolean","description":"If `true`, Port's execution agent will be used to send the changelog."},"url":{"type":"string","description":"The URL of the webhook.","format":"uri"}},"required":["url","type"],"additionalProperties":false},{"type":"object","title":"Kafka","description":"The changelog will be sent to the Kafka topic connected to your Port account.","properties":{"type":{"type":"string","enum":["KAFKA"]}},"required":["type"],"additionalProperties":false}]}},"additionalProperties":true,"required":["title","schema"]}}},"required":true},"parameters":[{"schema":{"type":"string"},"in":"path","name":"identifier","required":true,"description":"The unique identifier of the resource you want to operate on."}],"security":[{"bearer":[]}],"x-should-be-exposed-to-customers":true,"responses":{"200":{"description":"Updated successfully.","content":{"application/json":{"schema":{"description":"Updated successfully.","type":"object","properties":{"ok":{"enum":[true]},"blueprint":{"type":"object","properties":{"identifier":{"type":"string","pattern":"^(?!\\.{1,2}$)[\\p{L}0-9@_.+:\\\\/-]+$","maxLength":100,"description":"The identifier of the blueprint."},"title":{"type":"string","maxLength":100,"minLength":1,"description":"The title of the blueprint."},"description":{"type":"string","maxLength":200,"description":"The description of the blueprint."},"icon":{"type":"string","description":"The icon of the blueprint."},"ownership":{"anyOf":[{"type":"object","title":"Inherited","description":"Ownership of the blueprint's entities will be inherited from a different related blueprint with `Direct` ownership.","properties":{"type":{"type":"string","enum":["Inherited"]},"path":{"type":"string","description":"The `path` key is a dot-separated path of relation identifiers that lead to the desired blueprint."},"title":{"type":"string","maxLength":100,"description":"The title of the ownership property. The default value is `Owning teams`."}},"additionalProperties":false,"required":["type","path"]},{"type":"object","title":"Direct","description":"Ownership of the blueprint's entities will be defined by a hidden **relation** to the `Team` blueprint.","properties":{"type":{"type":"string","enum":["Direct"]},"title":{"type":"string","maxLength":100,"description":"The title of the ownership property. The default value is `Owning teams`."},"union":{"type":"boolean","description":"When `true`, every writer owns its own slice of owning teams and the entity's owning teams are the combination of all slices. Cannot be changed once ownership is Direct."}},"additionalProperties":false,"required":["type"]}]},"schema":{"type":"object","description":"The schema of the blueprint, see `properties` and `required` below for more information.","properties":{"properties":{"type":"object","description":"The properties of the blueprint.<br/> Each property identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\\\-]+$`.","propertyNames":{"pattern":"^[A-Za-z0-9@_=\\\\-]+$","maxLength":100},"additionalProperties":{"type":"object","properties":{"title":{"type":"string","maxLength":100,"description":"The title of the property."},"description":{"type":"string","description":"The description of the property."},"icon":{"type":"string","description":"The icon of the property."},"type":{"enum":["string","number","boolean","object","array"],"description":"The [type](https://docs.port.io/context-lake/data-model/setup-blueprint/properties/overview#supported-properties) of the property."},"format":{"enum":["date-time","url","email","idn-email","ipv4","ipv6","markdown","yaml","user","blueprints","team","timer","proto","labeled-url"],"description":"The type's [format](https://docs.port.io/context-lake/data-model/setup-blueprint/properties/overview#supported-properties)."},"dateFormat":{"enum":["relative","12-hour","24-hour","iso"],"description":"The display format for date-time properties. Only applicable when format is 'date-time'. Defaults to 'relative'."},"spec":{"enum":["open-api","embedded-url","async-api"],"description":"The [spec](https://docs.port.io/context-lake/data-model/setup-blueprint/properties/overview#supported-properties) of the property."},"union":{"type":"boolean","description":"Only applicable to `array` properties with `string` or `number` items. When `true`, every writer owns its own slice of the value and the property returns the combination of all slices, with each value appearing once. Writers send `{ \"<sourceKey>\": [values] }` instead of a plain array. Cannot be changed after the property is created."},"specAuthentication":{"type":"object","description":"When using the `spec` property with `embedded-url`, the authentication spec of the property.","properties":{"clientId":{"type":"string"},"authorizationUrl":{"type":"string","format":"url"},"tokenUrl":{"type":"string","format":"url"},"authorizationScope":{"type":"array","items":{"type":"string"},"default":["openid"]}},"additionalProperties":false,"required":["clientId","authorizationUrl","tokenUrl"]}},"required":["type"]}},"required":{"type":"array","items":{"type":"string"},"description":"The required properties of the blueprint, these must be provided when creating an entity based on this blueprint. This is an array of the required properties' identifiers."}},"additionalProperties":false,"required":["properties"]},"calculationProperties":{"type":"object","description":"The [calculation properties](https://docs.port.io/context-lake/data-model/setup-blueprint/properties/calculation-property/) of the blueprint. <br/> Each calculation property identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\\\-]+$`.","default":{},"propertyNames":{"pattern":"^[A-Za-z0-9@_=\\\\-]+$","maxLength":100},"additionalProperties":{"type":"object","additionalProperties":false,"properties":{"title":{"type":"string","maxLength":100,"description":"The title of the property."},"description":{"type":"string","description":"The description of the property."},"icon":{"type":"string","description":"The icon of the property."},"calculation":{"type":"string","description":"The JQ expression that calculates the value of the property."},"type":{"enum":["string","number","boolean","object","array"],"description":"The type of the property."},"format":{"enum":["date-time","url","email","idn-email","ipv4","ipv6","markdown","yaml","user","team","proto","labeled-url"],"description":"The format of the property."},"dateFormat":{"enum":["relative","12-hour","24-hour","iso"],"description":"The display format for date-time calculation properties. Only applicable when format is 'date-time'. Defaults to 'relative'."},"spec":{"enum":["open-api","embedded-url","async-api"],"description":"The spec of the property."},"specAuthentication":{"type":"object","description":"When using the `spec` property with `embedded-url`, the authentication spec of the property.","properties":{"clientId":{"type":"string"},"authorizationUrl":{"type":"string","format":"url"},"tokenUrl":{"type":"string","format":"url"},"authorizationScope":{"type":"array","items":{"type":"string"},"default":["openid"]}},"additionalProperties":false,"required":["clientId","authorizationUrl","tokenUrl"]},"colorized":{"type":"boolean","description":"Whether the property is colorized."},"colors":{"type":"object","description":"When using the `colorized` property, the colors of the property.","additionalProperties":{"enum":["blue","turquoise","orange","purple","pink","yellow","green","red","gold","silver","paleBlue","darkGray","lightGray","bronze","lime","olive","brown"]}},"items":{"type":"object","properties":{"type":{"enum":["string","number","boolean","object","array"],"description":"The type of the item."},"format":{"description":"The format of the item.","enum":["date-time","url","email","idn-format","ipv4","ipv6","markdown","yaml","user","team","timer","proto","labeled-url"]}}}},"required":["calculation","type"]}},"mirrorProperties":{"type":"object","description":"The [mirror properties](https://docs.port.io/context-lake/data-model/setup-blueprint/properties/mirror-property/) of the blueprint. <br/> Each mirror property identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\\\-]+$`.","propertyNames":{"pattern":"^[A-Za-z0-9@_=\\\\-]+$","maxLength":100},"additionalProperties":{"type":"object","properties":{"path":{"type":"string","pattern":"^(?:[A-Za-z0-9@_=\\-$]+\\.)+?(\\w|\\$|@|-)*?[^\\.]+$","description":"The path to the property in the related blueprint. This is a string of relation identifiers separated by dots, the last identifier is the property identifier."},"title":{"type":"string","maxLength":100,"description":"The title of the property."}},"additionalProperties":false,"required":["path"]}},"aggregationProperties":{"type":"object","description":"The [aggregation properties](https://docs.port.io/context-lake/data-model/setup-blueprint/properties/aggregation-property/) of the blueprint. <br/> Each aggregation property identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\\\-]+$`.","default":{},"propertyNames":{"pattern":"^[A-Za-z0-9@_=\\\\-]+$","maxLength":100},"additionalProperties":{"type":"object","properties":{"title":{"type":"string","maxLength":100,"description":"The title of the property."},"description":{"type":"string","description":"The description of the property."},"icon":{"type":"string","description":"The icon of the property."},"type":{"enum":["number"],"default":"number","description":"The type of the property. This is the type of the aggregation result."},"target":{"type":"string","description":"The blueprint identifier to run the aggregation on."},"calculationSpec":{"type":"object","oneOf":[{"title":"Count entities","oneOf":[{"type":"object","title":"Count","properties":{"func":{"description":"The function to use for the aggregation.","enum":["count"]},"calculationBy":{"type":"string","description":"Whether to aggregate by entities or properties.","enum":["entities"]}},"required":["func","calculationBy"],"additionalProperties":false},{"type":"object","title":"Average entities over time","properties":{"func":{"description":"The function to use for the aggregation.","enum":["average"]},"measureTimeBy":{"type":"string","description":"The time property to use for the aggregation."},"averageOf":{"type":"string","enum":["hour","day","week","month","total"]},"calculationBy":{"type":"string","description":"Whether to aggregate by entities or properties.","enum":["entities"]}},"required":["func","calculationBy","averageOf"],"additionalProperties":false}]},{"title":"Aggregate property","oneOf":[{"type":"object","title":"Aggregate property values","properties":{"func":{"type":"string","enum":["sum","min","max","median"],"description":"The function to use for the aggregation."},"property":{"type":"string","description":"The property to aggregate."},"calculationBy":{"type":"string","description":"Whether to aggregate by property or entities.","enum":["property"]}},"additionalProperties":false,"required":["func","property","calculationBy"]},{"type":"object","title":"Average property over time","properties":{"func":{"description":"The function to use for the aggregation.","enum":["average"]},"measureTimeBy":{"type":"string","description":"The time property to use for the aggregation."},"averageOf":{"type":"string","enum":["hour","day","week","month","total"]},"property":{"type":"string","description":"The property to aggregate."},"calculationBy":{"type":"string","description":"Whether to aggregate by property or entities.","enum":["property"]}},"additionalProperties":false,"required":["func","property","calculationBy","averageOf"]}]}],"description":"The calculation spec of the property."},"query":{"$ref":"#/components/schemas/def-1"},"pathFilter":{"type":"array","description":"Optional filter to run the aggregation on entities that are connected through a specific path. When empty will use all the related entities from all possible paths","maxItems":1,"items":{"type":"object","properties":{"path":{"description":"The path to the property in the related blueprint. This is a string of relation identifiers separated by dots.","type":"array","items":{"type":"string"},"minItems":1},"fromBlueprint":{"type":"string"}},"required":["path"],"additionalProperties":false}}},"additionalProperties":false,"required":["title","target","calculationSpec"]}},"relations":{"type":"object","description":"The [relations](https://docs.port.io/context-lake/data-model/setup-blueprint/relate-blueprints) of the blueprint. <br/> Each relation identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\\\-]+$`.","propertyNames":{"pattern":"^[A-Za-z0-9@_=\\\\-]+$","maxLength":100},"additionalProperties":{"type":"object","properties":{"title":{"type":"string","maxLength":100},"target":{"type":"string"},"required":{"type":"boolean","default":false},"many":{"type":"boolean","default":false},"description":{"type":"string"},"type":{"type":"string"},"union":{"type":"boolean","description":"When `true`, every writer owns its own slice of the value and the relation returns the combination of all slices. Requires `many: true`. Cannot be changed after the relation is created."}},"additionalProperties":false,"required":["target","required","many"]}},"includeInGlobalSearch":{"type":["boolean","null"],"description":"Overrides the org-level includeBlueprintsInGlobalSearchByDefault setting. When set, controls whether entities of this blueprint appear in global search results. Set to null to clear the override."},"changelogDestination":{"description":"The destination of the blueprint's changelog.","oneOf":[{"type":"object","title":"Webhook","description":"The changelog will be sent to the specified webhook.","properties":{"type":{"type":"string","enum":["WEBHOOK"]},"agent":{"type":"boolean","description":"If `true`, Port's execution agent will be used to send the changelog."},"url":{"type":"string","description":"The URL of the webhook.","format":"uri"}},"required":["url","type"],"additionalProperties":false},{"type":"object","title":"Kafka","description":"The changelog will be sent to the Kafka topic connected to your Port account.","properties":{"type":{"type":"string","enum":["KAFKA"]}},"required":["type"],"additionalProperties":false}]},"updatedBy":{"type":"string"},"createdBy":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"required":["identifier","title","schema","createdBy","updatedBy","createdAt","updatedAt"]}},"required":["blueprint","ok"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}},"413":{"description":"Request body is too large (limit is 1MiB)","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false,"description":"Request body is too large (limit is 1MiB)"}}}},"422":{"description":"The json provided does not match the route's schema","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"The json provided does not match the route's schema"}}}}}},"patch":{"summary":"Update a blueprint","tags":["Blueprints"],"description":"This route allows you to update a specific blueprint in your Port account. Send only the fields you want to add or change — the server merges your body on top of the current blueprint, leaving all other fields untouched.<br/><br/>**For system blueprints**, `PATCH` lets you extend custom fields or add new ones on top of Port's structure, but it cannot modify Port-managed fields. If you want to manage a full local copy and reconcile it back to Port, use `GET /blueprints/system/:identifier/structure` together with `PUT` instead.<br/><br/>To learn more about blueprints, check out the [documentation](https://docs.port.io/context-lake/data-model/setup-blueprint/overview).","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"identifier":{"type":"string","pattern":"^(?!\\.{1,2}$)[\\p{L}0-9@_.+:\\\\/-]+$","maxLength":100,"description":"The identifier of the blueprint."},"title":{"type":"string","maxLength":100,"minLength":1,"description":"The title of the blueprint."},"description":{"type":"string","maxLength":200,"description":"The description of the blueprint."},"icon":{"type":"string","description":"The icon of the blueprint."},"ownership":{"anyOf":[{"type":"object","title":"Inherited","description":"Ownership of the blueprint's entities will be inherited from a different related blueprint with `Direct` ownership.","properties":{"type":{"type":"string","enum":["Inherited"]},"path":{"type":"string","description":"The `path` key is a dot-separated path of relation identifiers that lead to the desired blueprint."},"title":{"type":"string","maxLength":100,"description":"The title of the ownership property. The default value is `Owning teams`."}},"additionalProperties":false,"required":["type","path"]},{"type":"object","title":"Direct","description":"Ownership of the blueprint's entities will be defined by a hidden **relation** to the `Team` blueprint.","properties":{"type":{"type":"string","enum":["Direct"]},"title":{"type":"string","maxLength":100,"description":"The title of the ownership property. The default value is `Owning teams`."},"union":{"type":"boolean","description":"When `true`, every writer owns its own slice of owning teams and the entity's owning teams are the combination of all slices. Cannot be changed once ownership is Direct."}},"additionalProperties":false,"required":["type"]}]},"schema":{"type":"object","properties":{"properties":{"type":"object","propertyNames":{"pattern":"^[A-Za-z0-9@_=\\\\-]+$","maxLength":100},"additionalProperties":{"type":"object","properties":{"title":{"type":"string","maxLength":100,"description":"The title of the property."},"description":{"type":"string","description":"The description of the property."},"icon":{"type":"string","description":"The icon of the property."},"type":{"enum":["string","number","boolean","object","array"],"description":"The [type](https://docs.port.io/context-lake/data-model/setup-blueprint/properties/overview#supported-properties) of the property."},"format":{"enum":["date-time","url","email","idn-email","ipv4","ipv6","markdown","yaml","user","blueprints","team","timer","proto","labeled-url"],"description":"The type's [format](https://docs.port.io/context-lake/data-model/setup-blueprint/properties/overview#supported-properties)."},"dateFormat":{"enum":["relative","12-hour","24-hour","iso"],"description":"The display format for date-time properties. Only applicable when format is 'date-time'. Defaults to 'relative'."},"spec":{"enum":["open-api","embedded-url","async-api"],"description":"The [spec](https://docs.port.io/context-lake/data-model/setup-blueprint/properties/overview#supported-properties) of the property."},"union":{"type":"boolean","description":"Only applicable to `array` properties with `string` or `number` items. When `true`, every writer owns its own slice of the value and the property returns the combination of all slices, with each value appearing once. Writers send `{ \"<sourceKey>\": [values] }` instead of a plain array. Cannot be changed after the property is created."},"specAuthentication":{"type":"object","description":"When using the `spec` property with `embedded-url`, the authentication spec of the property.","properties":{"clientId":{"type":"string"},"authorizationUrl":{"type":"string","format":"url"},"tokenUrl":{"type":"string","format":"url"},"authorizationScope":{"type":"array","items":{"type":"string"},"default":["openid"]}},"additionalProperties":false,"required":["clientId","authorizationUrl","tokenUrl"]}}}},"required":{"type":"array","items":{"type":"string"},"description":"The required properties of the blueprint, these must be provided when creating an entity based on this blueprint. This is an array of the required properties' identifiers."}},"additionalProperties":false,"required":["properties"]},"calculationProperties":{"type":"object","description":"The [calculation properties](https://docs.port.io/context-lake/data-model/setup-blueprint/properties/calculation-property/) of the blueprint. <br/> Each calculation property identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\\\-]+$`.","default":{},"propertyNames":{"pattern":"^[A-Za-z0-9@_=\\\\-]+$","maxLength":100},"additionalProperties":{"type":"object","additionalProperties":false,"properties":{"title":{"type":"string","maxLength":100,"description":"The title of the property."},"description":{"type":"string","description":"The description of the property."},"icon":{"type":"string","description":"The icon of the property."},"calculation":{"type":"string","description":"The JQ expression that calculates the value of the property."},"type":{"enum":["string","number","boolean","object","array"],"description":"The type of the property."},"format":{"enum":["date-time","url","email","idn-email","ipv4","ipv6","markdown","yaml","user","team","proto","labeled-url"],"description":"The format of the property."},"dateFormat":{"enum":["relative","12-hour","24-hour","iso"],"description":"The display format for date-time calculation properties. Only applicable when format is 'date-time'. Defaults to 'relative'."},"spec":{"enum":["open-api","embedded-url","async-api"],"description":"The spec of the property."},"specAuthentication":{"type":"object","description":"When using the `spec` property with `embedded-url`, the authentication spec of the property.","properties":{"clientId":{"type":"string"},"authorizationUrl":{"type":"string","format":"url"},"tokenUrl":{"type":"string","format":"url"},"authorizationScope":{"type":"array","items":{"type":"string"},"default":["openid"]}},"additionalProperties":false,"required":["clientId","authorizationUrl","tokenUrl"]},"colorized":{"type":"boolean","description":"Whether the property is colorized."},"colors":{"type":"object","description":"When using the `colorized` property, the colors of the property.","additionalProperties":{"enum":["blue","turquoise","orange","purple","pink","yellow","green","red","gold","silver","paleBlue","darkGray","lightGray","bronze","lime","olive","brown"]}},"items":{"type":"object","properties":{"type":{"enum":["string","number","boolean","object","array"],"description":"The type of the item."},"format":{"description":"The format of the item.","enum":["date-time","url","email","idn-format","ipv4","ipv6","markdown","yaml","user","team","timer","proto","labeled-url"]}}}},"required":["calculation","type"]}},"mirrorProperties":{"type":"object","description":"The [mirror properties](https://docs.port.io/context-lake/data-model/setup-blueprint/properties/mirror-property/) of the blueprint. <br/> Each mirror property identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\\\-]+$`.","propertyNames":{"pattern":"^[A-Za-z0-9@_=\\\\-]+$","maxLength":100},"additionalProperties":{"type":"object","properties":{"path":{"type":"string","pattern":"^(?:[A-Za-z0-9@_=\\-$]+\\.)+?(\\w|\\$|@|-)*?[^\\.]+$","description":"The path to the property in the related blueprint. This is a string of relation identifiers separated by dots, the last identifier is the property identifier."},"title":{"type":"string","maxLength":100,"description":"The title of the property."}},"additionalProperties":false,"required":["path"]}},"aggregationProperties":{"type":"object","description":"The [aggregation properties](https://docs.port.io/context-lake/data-model/setup-blueprint/properties/aggregation-property/) of the blueprint. <br/> Each aggregation property identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\\\-]+$`.","default":{},"propertyNames":{"pattern":"^[A-Za-z0-9@_=\\\\-]+$","maxLength":100},"additionalProperties":{"type":"object","properties":{"title":{"type":"string","maxLength":100,"description":"The title of the property."},"description":{"type":"string","description":"The description of the property."},"icon":{"type":"string","description":"The icon of the property."},"type":{"enum":["number"],"default":"number","description":"The type of the property. This is the type of the aggregation result."},"target":{"type":"string","description":"The blueprint identifier to run the aggregation on."},"calculationSpec":{"type":"object","oneOf":[{"title":"Count entities","oneOf":[{"type":"object","title":"Count","properties":{"func":{"description":"The function to use for the aggregation.","enum":["count"]},"calculationBy":{"type":"string","description":"Whether to aggregate by entities or properties.","enum":["entities"]}},"required":["func","calculationBy"],"additionalProperties":false},{"type":"object","title":"Average entities over time","properties":{"func":{"description":"The function to use for the aggregation.","enum":["average"]},"measureTimeBy":{"type":"string","description":"The time property to use for the aggregation."},"averageOf":{"type":"string","enum":["hour","day","week","month","total"]},"calculationBy":{"type":"string","description":"Whether to aggregate by entities or properties.","enum":["entities"]}},"required":["func","calculationBy","averageOf"],"additionalProperties":false}]},{"title":"Aggregate property","oneOf":[{"type":"object","title":"Aggregate property values","properties":{"func":{"type":"string","enum":["sum","min","max","median"],"description":"The function to use for the aggregation."},"property":{"type":"string","description":"The property to aggregate."},"calculationBy":{"type":"string","description":"Whether to aggregate by property or entities.","enum":["property"]}},"additionalProperties":false,"required":["func","property","calculationBy"]},{"type":"object","title":"Average property over time","properties":{"func":{"description":"The function to use for the aggregation.","enum":["average"]},"measureTimeBy":{"type":"string","description":"The time property to use for the aggregation."},"averageOf":{"type":"string","enum":["hour","day","week","month","total"]},"property":{"type":"string","description":"The property to aggregate."},"calculationBy":{"type":"string","description":"Whether to aggregate by property or entities.","enum":["property"]}},"additionalProperties":false,"required":["func","property","calculationBy","averageOf"]}]}],"description":"The calculation spec of the property."},"query":{"$ref":"#/components/schemas/def-1"},"pathFilter":{"type":"array","description":"Optional filter to run the aggregation on entities that are connected through a specific path. When empty will use all the related entities from all possible paths","maxItems":1,"items":{"type":"object","properties":{"path":{"description":"The path to the property in the related blueprint. This is a string of relation identifiers separated by dots.","type":"array","items":{"type":"string"},"minItems":1},"fromBlueprint":{"type":"string"}},"required":["path"],"additionalProperties":false}}},"additionalProperties":false,"required":["title","target","calculationSpec"]}},"relations":{"type":"object","description":"The [relations](https://docs.port.io/context-lake/data-model/setup-blueprint/relate-blueprints) of the blueprint. <br/> Each relation identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\\\-]+$`.","propertyNames":{"pattern":"^[A-Za-z0-9@_=\\\\-]+$","maxLength":100},"additionalProperties":{"type":"object","properties":{"title":{"type":"string","maxLength":100},"target":{"type":"string"},"required":{"type":"boolean","default":false},"many":{"type":"boolean","default":false},"description":{"type":"string"},"type":{"type":"string"},"union":{"type":"boolean","description":"When `true`, every writer owns its own slice of the value and the relation returns the combination of all slices. Requires `many: true`. Cannot be changed after the relation is created."}},"additionalProperties":false,"required":["target","required","many"]}},"includeInGlobalSearch":{"type":["boolean","null"],"description":"Overrides the org-level includeBlueprintsInGlobalSearchByDefault setting. When set, controls whether entities of this blueprint appear in global search results. Set to null to clear the override."},"changelogDestination":{"description":"The destination of the blueprint's changelog.","oneOf":[{"type":"object","title":"Webhook","description":"The changelog will be sent to the specified webhook.","properties":{"type":{"type":"string","enum":["WEBHOOK"]},"agent":{"type":"boolean","description":"If `true`, Port's execution agent will be used to send the changelog."},"url":{"type":"string","description":"The URL of the webhook.","format":"uri"}},"required":["url","type"],"additionalProperties":false},{"type":"object","title":"Kafka","description":"The changelog will be sent to the Kafka topic connected to your Port account.","properties":{"type":{"type":"string","enum":["KAFKA"]}},"required":["type"],"additionalProperties":false}]}},"additionalProperties":true}}}},"parameters":[{"schema":{"type":"string"},"in":"path","name":"identifier","required":true,"description":"The unique identifier of the resource you want to operate on."}],"security":[{"bearer":[]}],"x-should-be-exposed-to-customers":true,"responses":{"200":{"description":"Updated successfully.","content":{"application/json":{"schema":{"description":"Updated successfully.","type":"object","properties":{"ok":{"enum":[true]},"blueprint":{"type":"object","properties":{"identifier":{"type":"string","pattern":"^(?!\\.{1,2}$)[\\p{L}0-9@_.+:\\\\/-]+$","maxLength":100,"description":"The identifier of the blueprint."},"title":{"type":"string","maxLength":100,"minLength":1,"description":"The title of the blueprint."},"description":{"type":"string","maxLength":200,"description":"The description of the blueprint."},"icon":{"type":"string","description":"The icon of the blueprint."},"ownership":{"anyOf":[{"type":"object","title":"Inherited","description":"Ownership of the blueprint's entities will be inherited from a different related blueprint with `Direct` ownership.","properties":{"type":{"type":"string","enum":["Inherited"]},"path":{"type":"string","description":"The `path` key is a dot-separated path of relation identifiers that lead to the desired blueprint."},"title":{"type":"string","maxLength":100,"description":"The title of the ownership property. The default value is `Owning teams`."}},"additionalProperties":false,"required":["type","path"]},{"type":"object","title":"Direct","description":"Ownership of the blueprint's entities will be defined by a hidden **relation** to the `Team` blueprint.","properties":{"type":{"type":"string","enum":["Direct"]},"title":{"type":"string","maxLength":100,"description":"The title of the ownership property. The default value is `Owning teams`."},"union":{"type":"boolean","description":"When `true`, every writer owns its own slice of owning teams and the entity's owning teams are the combination of all slices. Cannot be changed once ownership is Direct."}},"additionalProperties":false,"required":["type"]}]},"schema":{"type":"object","description":"The schema of the blueprint, see `properties` and `required` below for more information.","properties":{"properties":{"type":"object","description":"The properties of the blueprint.<br/> Each property identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\\\-]+$`.","propertyNames":{"pattern":"^[A-Za-z0-9@_=\\\\-]+$","maxLength":100},"additionalProperties":{"type":"object","properties":{"title":{"type":"string","maxLength":100,"description":"The title of the property."},"description":{"type":"string","description":"The description of the property."},"icon":{"type":"string","description":"The icon of the property."},"type":{"enum":["string","number","boolean","object","array"],"description":"The [type](https://docs.port.io/context-lake/data-model/setup-blueprint/properties/overview#supported-properties) of the property."},"format":{"enum":["date-time","url","email","idn-email","ipv4","ipv6","markdown","yaml","user","blueprints","team","timer","proto","labeled-url"],"description":"The type's [format](https://docs.port.io/context-lake/data-model/setup-blueprint/properties/overview#supported-properties)."},"dateFormat":{"enum":["relative","12-hour","24-hour","iso"],"description":"The display format for date-time properties. Only applicable when format is 'date-time'. Defaults to 'relative'."},"spec":{"enum":["open-api","embedded-url","async-api"],"description":"The [spec](https://docs.port.io/context-lake/data-model/setup-blueprint/properties/overview#supported-properties) of the property."},"union":{"type":"boolean","description":"Only applicable to `array` properties with `string` or `number` items. When `true`, every writer owns its own slice of the value and the property returns the combination of all slices, with each value appearing once. Writers send `{ \"<sourceKey>\": [values] }` instead of a plain array. Cannot be changed after the property is created."},"specAuthentication":{"type":"object","description":"When using the `spec` property with `embedded-url`, the authentication spec of the property.","properties":{"clientId":{"type":"string"},"authorizationUrl":{"type":"string","format":"url"},"tokenUrl":{"type":"string","format":"url"},"authorizationScope":{"type":"array","items":{"type":"string"},"default":["openid"]}},"additionalProperties":false,"required":["clientId","authorizationUrl","tokenUrl"]}},"required":["type"]}},"required":{"type":"array","items":{"type":"string"},"description":"The required properties of the blueprint, these must be provided when creating an entity based on this blueprint. This is an array of the required properties' identifiers."}},"additionalProperties":false,"required":["properties"]},"calculationProperties":{"type":"object","description":"The [calculation properties](https://docs.port.io/context-lake/data-model/setup-blueprint/properties/calculation-property/) of the blueprint. <br/> Each calculation property identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\\\-]+$`.","default":{},"propertyNames":{"pattern":"^[A-Za-z0-9@_=\\\\-]+$","maxLength":100},"additionalProperties":{"type":"object","additionalProperties":false,"properties":{"title":{"type":"string","maxLength":100,"description":"The title of the property."},"description":{"type":"string","description":"The description of the property."},"icon":{"type":"string","description":"The icon of the property."},"calculation":{"type":"string","description":"The JQ expression that calculates the value of the property."},"type":{"enum":["string","number","boolean","object","array"],"description":"The type of the property."},"format":{"enum":["date-time","url","email","idn-email","ipv4","ipv6","markdown","yaml","user","team","proto","labeled-url"],"description":"The format of the property."},"dateFormat":{"enum":["relative","12-hour","24-hour","iso"],"description":"The display format for date-time calculation properties. Only applicable when format is 'date-time'. Defaults to 'relative'."},"spec":{"enum":["open-api","embedded-url","async-api"],"description":"The spec of the property."},"specAuthentication":{"type":"object","description":"When using the `spec` property with `embedded-url`, the authentication spec of the property.","properties":{"clientId":{"type":"string"},"authorizationUrl":{"type":"string","format":"url"},"tokenUrl":{"type":"string","format":"url"},"authorizationScope":{"type":"array","items":{"type":"string"},"default":["openid"]}},"additionalProperties":false,"required":["clientId","authorizationUrl","tokenUrl"]},"colorized":{"type":"boolean","description":"Whether the property is colorized."},"colors":{"type":"object","description":"When using the `colorized` property, the colors of the property.","additionalProperties":{"enum":["blue","turquoise","orange","purple","pink","yellow","green","red","gold","silver","paleBlue","darkGray","lightGray","bronze","lime","olive","brown"]}},"items":{"type":"object","properties":{"type":{"enum":["string","number","boolean","object","array"],"description":"The type of the item."},"format":{"description":"The format of the item.","enum":["date-time","url","email","idn-format","ipv4","ipv6","markdown","yaml","user","team","timer","proto","labeled-url"]}}}},"required":["calculation","type"]}},"mirrorProperties":{"type":"object","description":"The [mirror properties](https://docs.port.io/context-lake/data-model/setup-blueprint/properties/mirror-property/) of the blueprint. <br/> Each mirror property identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\\\-]+$`.","propertyNames":{"pattern":"^[A-Za-z0-9@_=\\\\-]+$","maxLength":100},"additionalProperties":{"type":"object","properties":{"path":{"type":"string","pattern":"^(?:[A-Za-z0-9@_=\\-$]+\\.)+?(\\w|\\$|@|-)*?[^\\.]+$","description":"The path to the property in the related blueprint. This is a string of relation identifiers separated by dots, the last identifier is the property identifier."},"title":{"type":"string","maxLength":100,"description":"The title of the property."}},"additionalProperties":false,"required":["path"]}},"aggregationProperties":{"type":"object","description":"The [aggregation properties](https://docs.port.io/context-lake/data-model/setup-blueprint/properties/aggregation-property/) of the blueprint. <br/> Each aggregation property identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\\\-]+$`.","default":{},"propertyNames":{"pattern":"^[A-Za-z0-9@_=\\\\-]+$","maxLength":100},"additionalProperties":{"type":"object","properties":{"title":{"type":"string","maxLength":100,"description":"The title of the property."},"description":{"type":"string","description":"The description of the property."},"icon":{"type":"string","description":"The icon of the property."},"type":{"enum":["number"],"default":"number","description":"The type of the property. This is the type of the aggregation result."},"target":{"type":"string","description":"The blueprint identifier to run the aggregation on."},"calculationSpec":{"type":"object","oneOf":[{"title":"Count entities","oneOf":[{"type":"object","title":"Count","properties":{"func":{"description":"The function to use for the aggregation.","enum":["count"]},"calculationBy":{"type":"string","description":"Whether to aggregate by entities or properties.","enum":["entities"]}},"required":["func","calculationBy"],"additionalProperties":false},{"type":"object","title":"Average entities over time","properties":{"func":{"description":"The function to use for the aggregation.","enum":["average"]},"measureTimeBy":{"type":"string","description":"The time property to use for the aggregation."},"averageOf":{"type":"string","enum":["hour","day","week","month","total"]},"calculationBy":{"type":"string","description":"Whether to aggregate by entities or properties.","enum":["entities"]}},"required":["func","calculationBy","averageOf"],"additionalProperties":false}]},{"title":"Aggregate property","oneOf":[{"type":"object","title":"Aggregate property values","properties":{"func":{"type":"string","enum":["sum","min","max","median"],"description":"The function to use for the aggregation."},"property":{"type":"string","description":"The property to aggregate."},"calculationBy":{"type":"string","description":"Whether to aggregate by property or entities.","enum":["property"]}},"additionalProperties":false,"required":["func","property","calculationBy"]},{"type":"object","title":"Average property over time","properties":{"func":{"description":"The function to use for the aggregation.","enum":["average"]},"measureTimeBy":{"type":"string","description":"The time property to use for the aggregation."},"averageOf":{"type":"string","enum":["hour","day","week","month","total"]},"property":{"type":"string","description":"The property to aggregate."},"calculationBy":{"type":"string","description":"Whether to aggregate by property or entities.","enum":["property"]}},"additionalProperties":false,"required":["func","property","calculationBy","averageOf"]}]}],"description":"The calculation spec of the property."},"query":{"$ref":"#/components/schemas/def-1"},"pathFilter":{"type":"array","description":"Optional filter to run the aggregation on entities that are connected through a specific path. When empty will use all the related entities from all possible paths","maxItems":1,"items":{"type":"object","properties":{"path":{"description":"The path to the property in the related blueprint. This is a string of relation identifiers separated by dots.","type":"array","items":{"type":"string"},"minItems":1},"fromBlueprint":{"type":"string"}},"required":["path"],"additionalProperties":false}}},"additionalProperties":false,"required":["title","target","calculationSpec"]}},"relations":{"type":"object","description":"The [relations](https://docs.port.io/context-lake/data-model/setup-blueprint/relate-blueprints) of the blueprint. <br/> Each relation identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\\\-]+$`.","propertyNames":{"pattern":"^[A-Za-z0-9@_=\\\\-]+$","maxLength":100},"additionalProperties":{"type":"object","properties":{"title":{"type":"string","maxLength":100},"target":{"type":"string"},"required":{"type":"boolean","default":false},"many":{"type":"boolean","default":false},"description":{"type":"string"},"type":{"type":"string"},"union":{"type":"boolean","description":"When `true`, every writer owns its own slice of the value and the relation returns the combination of all slices. Requires `many: true`. Cannot be changed after the relation is created."}},"additionalProperties":false,"required":["target","required","many"]}},"includeInGlobalSearch":{"type":["boolean","null"],"description":"Overrides the org-level includeBlueprintsInGlobalSearchByDefault setting. When set, controls whether entities of this blueprint appear in global search results. Set to null to clear the override."},"changelogDestination":{"description":"The destination of the blueprint's changelog.","oneOf":[{"type":"object","title":"Webhook","description":"The changelog will be sent to the specified webhook.","properties":{"type":{"type":"string","enum":["WEBHOOK"]},"agent":{"type":"boolean","description":"If `true`, Port's execution agent will be used to send the changelog."},"url":{"type":"string","description":"The URL of the webhook.","format":"uri"}},"required":["url","type"],"additionalProperties":false},{"type":"object","title":"Kafka","description":"The changelog will be sent to the Kafka topic connected to your Port account.","properties":{"type":{"type":"string","enum":["KAFKA"]}},"required":["type"],"additionalProperties":false}]},"updatedBy":{"type":"string"},"createdBy":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"required":["identifier","title","schema","createdBy","updatedBy","createdAt","updatedAt"]}},"required":["blueprint","ok"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}},"413":{"description":"Request body is too large (limit is 1MiB)","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false,"description":"Request body is too large (limit is 1MiB)"}}}},"422":{"description":"The json provided does not match the route's schema","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"The json provided does not match the route's schema"}}}}}},"delete":{"summary":"Delete a blueprint","tags":["Blueprints"],"description":"This route allows you to delete a specific blueprint in your Port account.<br/><br/>To learn more about blueprints, check out the [documentation](https://docs.port.io/context-lake/data-model/setup-blueprint/overview).<br/><br/> **Note:** Before deleting a blueprint, make sure all associated entities have been deleted. Entity deletion may take a few seconds to complete, so plan accordingly when using the [**Delete an entity**](https://docs.port.io/api-reference/delete-an-entity) endpoint before this endpoint in scripts or automations.","parameters":[{"schema":{"type":"boolean"},"in":"query","name":"delete_actions","required":false,"description":"If `true`, all self-service actions associated with this blueprint will be deleted as well."},{"schema":{"type":"string"},"in":"path","name":"identifier","required":true,"description":"The unique identifier of the resource you want to operate on."}],"security":[{"bearer":[]}],"x-should-be-exposed-to-customers":true,"responses":{"200":{"description":"Deleted successfully.","content":{"application/json":{"schema":{"description":"Deleted successfully.","properties":{"ok":{"enum":[true]}},"required":["ok"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}},"413":{"description":"Request body is too large (limit is 1MiB)","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false,"description":"Request body is too large (limit is 1MiB)"}}}},"422":{"description":"The json provided does not match the route's schema","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"The json provided does not match the route's schema"}}}}}}},"/v1/blueprints/{blueprint_identifier}/properties/{property_identifier}/rename":{"patch":{"summary":"Rename a property in a blueprint","tags":["Blueprints"],"description":"This route allows you to change the identifier of a property in a specific blueprint in your Port account.<br/><br/>To learn more about blueprints, check out the [documentation](https://docs.port.io/context-lake/data-model/setup-blueprint/overview).","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"newPropertyName":{"type":"string","pattern":"^[A-Za-z0-9@_=\\\\-]+$","maxLength":100,"description":"The new identifier of the property."}},"additionalProperties":false}}}},"parameters":[{"schema":{"type":"string"},"in":"path","name":"blueprint_identifier","required":true,"description":"The identifier of the blueprint you want to change."},{"schema":{"type":"string"},"in":"path","name":"property_identifier","required":true,"description":"The identifier of the property you want to rename."}],"security":[{"bearer":[]}],"x-should-be-exposed-to-customers":true,"responses":{"200":{"description":"Updated successfully.","content":{"application/json":{"schema":{"description":"Updated successfully.","type":"object","properties":{"ok":{"enum":[true]},"blueprint":{"type":"object","properties":{"identifier":{"type":"string","pattern":"^(?!\\.{1,2}$)[\\p{L}0-9@_.+:\\\\/-]+$","maxLength":100,"description":"The identifier of the blueprint."},"title":{"type":"string","maxLength":100,"minLength":1,"description":"The title of the blueprint."},"description":{"type":"string","maxLength":200,"description":"The description of the blueprint."},"icon":{"type":"string","description":"The icon of the blueprint."},"ownership":{"anyOf":[{"type":"object","title":"Inherited","description":"Ownership of the blueprint's entities will be inherited from a different related blueprint with `Direct` ownership.","properties":{"type":{"type":"string","enum":["Inherited"]},"path":{"type":"string","description":"The `path` key is a dot-separated path of relation identifiers that lead to the desired blueprint."},"title":{"type":"string","maxLength":100,"description":"The title of the ownership property. The default value is `Owning teams`."}},"additionalProperties":false,"required":["type","path"]},{"type":"object","title":"Direct","description":"Ownership of the blueprint's entities will be defined by a hidden **relation** to the `Team` blueprint.","properties":{"type":{"type":"string","enum":["Direct"]},"title":{"type":"string","maxLength":100,"description":"The title of the ownership property. The default value is `Owning teams`."},"union":{"type":"boolean","description":"When `true`, every writer owns its own slice of owning teams and the entity's owning teams are the combination of all slices. Cannot be changed once ownership is Direct."}},"additionalProperties":false,"required":["type"]}]},"schema":{"type":"object","description":"The schema of the blueprint, see `properties` and `required` below for more information.","properties":{"properties":{"type":"object","description":"The properties of the blueprint.<br/> Each property identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\\\-]+$`.","propertyNames":{"pattern":"^[A-Za-z0-9@_=\\\\-]+$","maxLength":100},"additionalProperties":{"type":"object","properties":{"title":{"type":"string","maxLength":100,"description":"The title of the property."},"description":{"type":"string","description":"The description of the property."},"icon":{"type":"string","description":"The icon of the property."},"type":{"enum":["string","number","boolean","object","array"],"description":"The [type](https://docs.port.io/context-lake/data-model/setup-blueprint/properties/overview#supported-properties) of the property."},"format":{"enum":["date-time","url","email","idn-email","ipv4","ipv6","markdown","yaml","user","blueprints","team","timer","proto","labeled-url"],"description":"The type's [format](https://docs.port.io/context-lake/data-model/setup-blueprint/properties/overview#supported-properties)."},"dateFormat":{"enum":["relative","12-hour","24-hour","iso"],"description":"The display format for date-time properties. Only applicable when format is 'date-time'. Defaults to 'relative'."},"spec":{"enum":["open-api","embedded-url","async-api"],"description":"The [spec](https://docs.port.io/context-lake/data-model/setup-blueprint/properties/overview#supported-properties) of the property."},"union":{"type":"boolean","description":"Only applicable to `array` properties with `string` or `number` items. When `true`, every writer owns its own slice of the value and the property returns the combination of all slices, with each value appearing once. Writers send `{ \"<sourceKey>\": [values] }` instead of a plain array. Cannot be changed after the property is created."},"specAuthentication":{"type":"object","description":"When using the `spec` property with `embedded-url`, the authentication spec of the property.","properties":{"clientId":{"type":"string"},"authorizationUrl":{"type":"string","format":"url"},"tokenUrl":{"type":"string","format":"url"},"authorizationScope":{"type":"array","items":{"type":"string"},"default":["openid"]}},"additionalProperties":false,"required":["clientId","authorizationUrl","tokenUrl"]}},"required":["type"]}},"required":{"type":"array","items":{"type":"string"},"description":"The required properties of the blueprint, these must be provided when creating an entity based on this blueprint. This is an array of the required properties' identifiers."}},"additionalProperties":false,"required":["properties"]},"calculationProperties":{"type":"object","description":"The [calculation properties](https://docs.port.io/context-lake/data-model/setup-blueprint/properties/calculation-property/) of the blueprint. <br/> Each calculation property identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\\\-]+$`.","default":{},"propertyNames":{"pattern":"^[A-Za-z0-9@_=\\\\-]+$","maxLength":100},"additionalProperties":{"type":"object","additionalProperties":false,"properties":{"title":{"type":"string","maxLength":100,"description":"The title of the property."},"description":{"type":"string","description":"The description of the property."},"icon":{"type":"string","description":"The icon of the property."},"calculation":{"type":"string","description":"The JQ expression that calculates the value of the property."},"type":{"enum":["string","number","boolean","object","array"],"description":"The type of the property."},"format":{"enum":["date-time","url","email","idn-email","ipv4","ipv6","markdown","yaml","user","team","proto","labeled-url"],"description":"The format of the property."},"dateFormat":{"enum":["relative","12-hour","24-hour","iso"],"description":"The display format for date-time calculation properties. Only applicable when format is 'date-time'. Defaults to 'relative'."},"spec":{"enum":["open-api","embedded-url","async-api"],"description":"The spec of the property."},"specAuthentication":{"type":"object","description":"When using the `spec` property with `embedded-url`, the authentication spec of the property.","properties":{"clientId":{"type":"string"},"authorizationUrl":{"type":"string","format":"url"},"tokenUrl":{"type":"string","format":"url"},"authorizationScope":{"type":"array","items":{"type":"string"},"default":["openid"]}},"additionalProperties":false,"required":["clientId","authorizationUrl","tokenUrl"]},"colorized":{"type":"boolean","description":"Whether the property is colorized."},"colors":{"type":"object","description":"When using the `colorized` property, the colors of the property.","additionalProperties":{"enum":["blue","turquoise","orange","purple","pink","yellow","green","red","gold","silver","paleBlue","darkGray","lightGray","bronze","lime","olive","brown"]}},"items":{"type":"object","properties":{"type":{"enum":["string","number","boolean","object","array"],"description":"The type of the item."},"format":{"description":"The format of the item.","enum":["date-time","url","email","idn-format","ipv4","ipv6","markdown","yaml","user","team","timer","proto","labeled-url"]}}}},"required":["calculation","type"]}},"mirrorProperties":{"type":"object","description":"The [mirror properties](https://docs.port.io/context-lake/data-model/setup-blueprint/properties/mirror-property/) of the blueprint. <br/> Each mirror property identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\\\-]+$`.","propertyNames":{"pattern":"^[A-Za-z0-9@_=\\\\-]+$","maxLength":100},"additionalProperties":{"type":"object","properties":{"path":{"type":"string","pattern":"^(?:[A-Za-z0-9@_=\\-$]+\\.)+?(\\w|\\$|@|-)*?[^\\.]+$","description":"The path to the property in the related blueprint. This is a string of relation identifiers separated by dots, the last identifier is the property identifier."},"title":{"type":"string","maxLength":100,"description":"The title of the property."}},"additionalProperties":false,"required":["path"]}},"aggregationProperties":{"type":"object","description":"The [aggregation properties](https://docs.port.io/context-lake/data-model/setup-blueprint/properties/aggregation-property/) of the blueprint. <br/> Each aggregation property identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\\\-]+$`.","default":{},"propertyNames":{"pattern":"^[A-Za-z0-9@_=\\\\-]+$","maxLength":100},"additionalProperties":{"type":"object","properties":{"title":{"type":"string","maxLength":100,"description":"The title of the property."},"description":{"type":"string","description":"The description of the property."},"icon":{"type":"string","description":"The icon of the property."},"type":{"enum":["number"],"default":"number","description":"The type of the property. This is the type of the aggregation result."},"target":{"type":"string","description":"The blueprint identifier to run the aggregation on."},"calculationSpec":{"type":"object","oneOf":[{"title":"Count entities","oneOf":[{"type":"object","title":"Count","properties":{"func":{"description":"The function to use for the aggregation.","enum":["count"]},"calculationBy":{"type":"string","description":"Whether to aggregate by entities or properties.","enum":["entities"]}},"required":["func","calculationBy"],"additionalProperties":false},{"type":"object","title":"Average entities over time","properties":{"func":{"description":"The function to use for the aggregation.","enum":["average"]},"measureTimeBy":{"type":"string","description":"The time property to use for the aggregation."},"averageOf":{"type":"string","enum":["hour","day","week","month","total"]},"calculationBy":{"type":"string","description":"Whether to aggregate by entities or properties.","enum":["entities"]}},"required":["func","calculationBy","averageOf"],"additionalProperties":false}]},{"title":"Aggregate property","oneOf":[{"type":"object","title":"Aggregate property values","properties":{"func":{"type":"string","enum":["sum","min","max","median"],"description":"The function to use for the aggregation."},"property":{"type":"string","description":"The property to aggregate."},"calculationBy":{"type":"string","description":"Whether to aggregate by property or entities.","enum":["property"]}},"additionalProperties":false,"required":["func","property","calculationBy"]},{"type":"object","title":"Average property over time","properties":{"func":{"description":"The function to use for the aggregation.","enum":["average"]},"measureTimeBy":{"type":"string","description":"The time property to use for the aggregation."},"averageOf":{"type":"string","enum":["hour","day","week","month","total"]},"property":{"type":"string","description":"The property to aggregate."},"calculationBy":{"type":"string","description":"Whether to aggregate by property or entities.","enum":["property"]}},"additionalProperties":false,"required":["func","property","calculationBy","averageOf"]}]}],"description":"The calculation spec of the property."},"query":{"$ref":"#/components/schemas/def-1"},"pathFilter":{"type":"array","description":"Optional filter to run the aggregation on entities that are connected through a specific path. When empty will use all the related entities from all possible paths","maxItems":1,"items":{"type":"object","properties":{"path":{"description":"The path to the property in the related blueprint. This is a string of relation identifiers separated by dots.","type":"array","items":{"type":"string"},"minItems":1},"fromBlueprint":{"type":"string"}},"required":["path"],"additionalProperties":false}}},"additionalProperties":false,"required":["title","target","calculationSpec"]}},"relations":{"type":"object","description":"The [relations](https://docs.port.io/context-lake/data-model/setup-blueprint/relate-blueprints) of the blueprint. <br/> Each relation identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\\\-]+$`.","propertyNames":{"pattern":"^[A-Za-z0-9@_=\\\\-]+$","maxLength":100},"additionalProperties":{"type":"object","properties":{"title":{"type":"string","maxLength":100},"target":{"type":"string"},"required":{"type":"boolean","default":false},"many":{"type":"boolean","default":false},"description":{"type":"string"},"type":{"type":"string"},"union":{"type":"boolean","description":"When `true`, every writer owns its own slice of the value and the relation returns the combination of all slices. Requires `many: true`. Cannot be changed after the relation is created."}},"additionalProperties":false,"required":["target","required","many"]}},"includeInGlobalSearch":{"type":["boolean","null"],"description":"Overrides the org-level includeBlueprintsInGlobalSearchByDefault setting. When set, controls whether entities of this blueprint appear in global search results. Set to null to clear the override."},"changelogDestination":{"description":"The destination of the blueprint's changelog.","oneOf":[{"type":"object","title":"Webhook","description":"The changelog will be sent to the specified webhook.","properties":{"type":{"type":"string","enum":["WEBHOOK"]},"agent":{"type":"boolean","description":"If `true`, Port's execution agent will be used to send the changelog."},"url":{"type":"string","description":"The URL of the webhook.","format":"uri"}},"required":["url","type"],"additionalProperties":false},{"type":"object","title":"Kafka","description":"The changelog will be sent to the Kafka topic connected to your Port account.","properties":{"type":{"type":"string","enum":["KAFKA"]}},"required":["type"],"additionalProperties":false}]},"updatedBy":{"type":"string"},"createdBy":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"required":["identifier","title","schema","createdBy","updatedBy","createdAt","updatedAt"]}},"required":["blueprint","ok"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}},"413":{"description":"Request body is too large (limit is 1MiB)","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false,"description":"Request body is too large (limit is 1MiB)"}}}},"422":{"description":"The json provided does not match the route's schema","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"The json provided does not match the route's schema"}}}}}}},"/v1/blueprints/{blueprint_identifier}/mirror/{property_identifier}/rename":{"patch":{"summary":"Rename a blueprint's mirror property","tags":["Blueprints"],"description":"This route allows you to change the identifier of a mirror property in a specific blueprint in your Port account.<br/><br/>To learn more about blueprints, check out the [documentation](https://docs.port.io/context-lake/data-model/setup-blueprint/overview).","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"newMirrorName":{"type":"string","pattern":"^[A-Za-z0-9@_=\\\\-]+$","maxLength":100,"description":"The new identifier of the mirror property."}},"additionalProperties":false}}}},"parameters":[{"schema":{"type":"string"},"in":"path","name":"blueprint_identifier","required":true,"description":"The identifier of the blueprint you want to change."},{"schema":{"type":"string"},"in":"path","name":"property_identifier","required":true,"description":"The identifier of the property you want to rename."}],"security":[{"bearer":[]}],"x-should-be-exposed-to-customers":true,"responses":{"200":{"description":"Updated successfully.","content":{"application/json":{"schema":{"description":"Updated successfully.","type":"object","properties":{"ok":{"enum":[true]},"blueprint":{"type":"object","properties":{"identifier":{"type":"string","pattern":"^(?!\\.{1,2}$)[\\p{L}0-9@_.+:\\\\/-]+$","maxLength":100,"description":"The identifier of the blueprint."},"title":{"type":"string","maxLength":100,"minLength":1,"description":"The title of the blueprint."},"description":{"type":"string","maxLength":200,"description":"The description of the blueprint."},"icon":{"type":"string","description":"The icon of the blueprint."},"ownership":{"anyOf":[{"type":"object","title":"Inherited","description":"Ownership of the blueprint's entities will be inherited from a different related blueprint with `Direct` ownership.","properties":{"type":{"type":"string","enum":["Inherited"]},"path":{"type":"string","description":"The `path` key is a dot-separated path of relation identifiers that lead to the desired blueprint."},"title":{"type":"string","maxLength":100,"description":"The title of the ownership property. The default value is `Owning teams`."}},"additionalProperties":false,"required":["type","path"]},{"type":"object","title":"Direct","description":"Ownership of the blueprint's entities will be defined by a hidden **relation** to the `Team` blueprint.","properties":{"type":{"type":"string","enum":["Direct"]},"title":{"type":"string","maxLength":100,"description":"The title of the ownership property. The default value is `Owning teams`."},"union":{"type":"boolean","description":"When `true`, every writer owns its own slice of owning teams and the entity's owning teams are the combination of all slices. Cannot be changed once ownership is Direct."}},"additionalProperties":false,"required":["type"]}]},"schema":{"type":"object","description":"The schema of the blueprint, see `properties` and `required` below for more information.","properties":{"properties":{"type":"object","description":"The properties of the blueprint.<br/> Each property identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\\\-]+$`.","propertyNames":{"pattern":"^[A-Za-z0-9@_=\\\\-]+$","maxLength":100},"additionalProperties":{"type":"object","properties":{"title":{"type":"string","maxLength":100,"description":"The title of the property."},"description":{"type":"string","description":"The description of the property."},"icon":{"type":"string","description":"The icon of the property."},"type":{"enum":["string","number","boolean","object","array"],"description":"The [type](https://docs.port.io/context-lake/data-model/setup-blueprint/properties/overview#supported-properties) of the property."},"format":{"enum":["date-time","url","email","idn-email","ipv4","ipv6","markdown","yaml","user","blueprints","team","timer","proto","labeled-url"],"description":"The type's [format](https://docs.port.io/context-lake/data-model/setup-blueprint/properties/overview#supported-properties)."},"dateFormat":{"enum":["relative","12-hour","24-hour","iso"],"description":"The display format for date-time properties. Only applicable when format is 'date-time'. Defaults to 'relative'."},"spec":{"enum":["open-api","embedded-url","async-api"],"description":"The [spec](https://docs.port.io/context-lake/data-model/setup-blueprint/properties/overview#supported-properties) of the property."},"union":{"type":"boolean","description":"Only applicable to `array` properties with `string` or `number` items. When `true`, every writer owns its own slice of the value and the property returns the combination of all slices, with each value appearing once. Writers send `{ \"<sourceKey>\": [values] }` instead of a plain array. Cannot be changed after the property is created."},"specAuthentication":{"type":"object","description":"When using the `spec` property with `embedded-url`, the authentication spec of the property.","properties":{"clientId":{"type":"string"},"authorizationUrl":{"type":"string","format":"url"},"tokenUrl":{"type":"string","format":"url"},"authorizationScope":{"type":"array","items":{"type":"string"},"default":["openid"]}},"additionalProperties":false,"required":["clientId","authorizationUrl","tokenUrl"]}},"required":["type"]}},"required":{"type":"array","items":{"type":"string"},"description":"The required properties of the blueprint, these must be provided when creating an entity based on this blueprint. This is an array of the required properties' identifiers."}},"additionalProperties":false,"required":["properties"]},"calculationProperties":{"type":"object","description":"The [calculation properties](https://docs.port.io/context-lake/data-model/setup-blueprint/properties/calculation-property/) of the blueprint. <br/> Each calculation property identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\\\-]+$`.","default":{},"propertyNames":{"pattern":"^[A-Za-z0-9@_=\\\\-]+$","maxLength":100},"additionalProperties":{"type":"object","additionalProperties":false,"properties":{"title":{"type":"string","maxLength":100,"description":"The title of the property."},"description":{"type":"string","description":"The description of the property."},"icon":{"type":"string","description":"The icon of the property."},"calculation":{"type":"string","description":"The JQ expression that calculates the value of the property."},"type":{"enum":["string","number","boolean","object","array"],"description":"The type of the property."},"format":{"enum":["date-time","url","email","idn-email","ipv4","ipv6","markdown","yaml","user","team","proto","labeled-url"],"description":"The format of the property."},"dateFormat":{"enum":["relative","12-hour","24-hour","iso"],"description":"The display format for date-time calculation properties. Only applicable when format is 'date-time'. Defaults to 'relative'."},"spec":{"enum":["open-api","embedded-url","async-api"],"description":"The spec of the property."},"specAuthentication":{"type":"object","description":"When using the `spec` property with `embedded-url`, the authentication spec of the property.","properties":{"clientId":{"type":"string"},"authorizationUrl":{"type":"string","format":"url"},"tokenUrl":{"type":"string","format":"url"},"authorizationScope":{"type":"array","items":{"type":"string"},"default":["openid"]}},"additionalProperties":false,"required":["clientId","authorizationUrl","tokenUrl"]},"colorized":{"type":"boolean","description":"Whether the property is colorized."},"colors":{"type":"object","description":"When using the `colorized` property, the colors of the property.","additionalProperties":{"enum":["blue","turquoise","orange","purple","pink","yellow","green","red","gold","silver","paleBlue","darkGray","lightGray","bronze","lime","olive","brown"]}},"items":{"type":"object","properties":{"type":{"enum":["string","number","boolean","object","array"],"description":"The type of the item."},"format":{"description":"The format of the item.","enum":["date-time","url","email","idn-format","ipv4","ipv6","markdown","yaml","user","team","timer","proto","labeled-url"]}}}},"required":["calculation","type"]}},"mirrorProperties":{"type":"object","description":"The [mirror properties](https://docs.port.io/context-lake/data-model/setup-blueprint/properties/mirror-property/) of the blueprint. <br/> Each mirror property identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\\\-]+$`.","propertyNames":{"pattern":"^[A-Za-z0-9@_=\\\\-]+$","maxLength":100},"additionalProperties":{"type":"object","properties":{"path":{"type":"string","pattern":"^(?:[A-Za-z0-9@_=\\-$]+\\.)+?(\\w|\\$|@|-)*?[^\\.]+$","description":"The path to the property in the related blueprint. This is a string of relation identifiers separated by dots, the last identifier is the property identifier."},"title":{"type":"string","maxLength":100,"description":"The title of the property."}},"additionalProperties":false,"required":["path"]}},"aggregationProperties":{"type":"object","description":"The [aggregation properties](https://docs.port.io/context-lake/data-model/setup-blueprint/properties/aggregation-property/) of the blueprint. <br/> Each aggregation property identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\\\-]+$`.","default":{},"propertyNames":{"pattern":"^[A-Za-z0-9@_=\\\\-]+$","maxLength":100},"additionalProperties":{"type":"object","properties":{"title":{"type":"string","maxLength":100,"description":"The title of the property."},"description":{"type":"string","description":"The description of the property."},"icon":{"type":"string","description":"The icon of the property."},"type":{"enum":["number"],"default":"number","description":"The type of the property. This is the type of the aggregation result."},"target":{"type":"string","description":"The blueprint identifier to run the aggregation on."},"calculationSpec":{"type":"object","oneOf":[{"title":"Count entities","oneOf":[{"type":"object","title":"Count","properties":{"func":{"description":"The function to use for the aggregation.","enum":["count"]},"calculationBy":{"type":"string","description":"Whether to aggregate by entities or properties.","enum":["entities"]}},"required":["func","calculationBy"],"additionalProperties":false},{"type":"object","title":"Average entities over time","properties":{"func":{"description":"The function to use for the aggregation.","enum":["average"]},"measureTimeBy":{"type":"string","description":"The time property to use for the aggregation."},"averageOf":{"type":"string","enum":["hour","day","week","month","total"]},"calculationBy":{"type":"string","description":"Whether to aggregate by entities or properties.","enum":["entities"]}},"required":["func","calculationBy","averageOf"],"additionalProperties":false}]},{"title":"Aggregate property","oneOf":[{"type":"object","title":"Aggregate property values","properties":{"func":{"type":"string","enum":["sum","min","max","median"],"description":"The function to use for the aggregation."},"property":{"type":"string","description":"The property to aggregate."},"calculationBy":{"type":"string","description":"Whether to aggregate by property or entities.","enum":["property"]}},"additionalProperties":false,"required":["func","property","calculationBy"]},{"type":"object","title":"Average property over time","properties":{"func":{"description":"The function to use for the aggregation.","enum":["average"]},"measureTimeBy":{"type":"string","description":"The time property to use for the aggregation."},"averageOf":{"type":"string","enum":["hour","day","week","month","total"]},"property":{"type":"string","description":"The property to aggregate."},"calculationBy":{"type":"string","description":"Whether to aggregate by property or entities.","enum":["property"]}},"additionalProperties":false,"required":["func","property","calculationBy","averageOf"]}]}],"description":"The calculation spec of the property."},"query":{"$ref":"#/components/schemas/def-1"},"pathFilter":{"type":"array","description":"Optional filter to run the aggregation on entities that are connected through a specific path. When empty will use all the related entities from all possible paths","maxItems":1,"items":{"type":"object","properties":{"path":{"description":"The path to the property in the related blueprint. This is a string of relation identifiers separated by dots.","type":"array","items":{"type":"string"},"minItems":1},"fromBlueprint":{"type":"string"}},"required":["path"],"additionalProperties":false}}},"additionalProperties":false,"required":["title","target","calculationSpec"]}},"relations":{"type":"object","description":"The [relations](https://docs.port.io/context-lake/data-model/setup-blueprint/relate-blueprints) of the blueprint. <br/> Each relation identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\\\-]+$`.","propertyNames":{"pattern":"^[A-Za-z0-9@_=\\\\-]+$","maxLength":100},"additionalProperties":{"type":"object","properties":{"title":{"type":"string","maxLength":100},"target":{"type":"string"},"required":{"type":"boolean","default":false},"many":{"type":"boolean","default":false},"description":{"type":"string"},"type":{"type":"string"},"union":{"type":"boolean","description":"When `true`, every writer owns its own slice of the value and the relation returns the combination of all slices. Requires `many: true`. Cannot be changed after the relation is created."}},"additionalProperties":false,"required":["target","required","many"]}},"includeInGlobalSearch":{"type":["boolean","null"],"description":"Overrides the org-level includeBlueprintsInGlobalSearchByDefault setting. When set, controls whether entities of this blueprint appear in global search results. Set to null to clear the override."},"changelogDestination":{"description":"The destination of the blueprint's changelog.","oneOf":[{"type":"object","title":"Webhook","description":"The changelog will be sent to the specified webhook.","properties":{"type":{"type":"string","enum":["WEBHOOK"]},"agent":{"type":"boolean","description":"If `true`, Port's execution agent will be used to send the changelog."},"url":{"type":"string","description":"The URL of the webhook.","format":"uri"}},"required":["url","type"],"additionalProperties":false},{"type":"object","title":"Kafka","description":"The changelog will be sent to the Kafka topic connected to your Port account.","properties":{"type":{"type":"string","enum":["KAFKA"]}},"required":["type"],"additionalProperties":false}]},"updatedBy":{"type":"string"},"createdBy":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"required":["identifier","title","schema","createdBy","updatedBy","createdAt","updatedAt"]}},"required":["blueprint","ok"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}},"413":{"description":"Request body is too large (limit is 1MiB)","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false,"description":"Request body is too large (limit is 1MiB)"}}}},"422":{"description":"The json provided does not match the route's schema","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"The json provided does not match the route's schema"}}}}}}},"/v1/blueprints/{blueprint_identifier}/relations/{relation_identifier}/rename":{"patch":{"summary":"Rename a blueprint's relation","tags":["Blueprints"],"description":"This route allows you to change the identifier of a relation in a specific blueprint in your Port account.<br/><br/>To learn more about blueprints, check out the [documentation](https://docs.port.io/context-lake/data-model/setup-blueprint/overview).","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"newRelationIdentifier":{"type":"string","pattern":"^[A-Za-z0-9@_=\\\\-]+$","maxLength":100,"description":"The new identifier of the relation."}},"additionalProperties":false}}}},"parameters":[{"schema":{"type":"string","minLength":1},"in":"path","name":"blueprint_identifier","required":true,"description":"The identifier of the blueprint you want to change."},{"schema":{"type":"string","minLength":1},"in":"path","name":"relation_identifier","required":true,"description":"The identifier of the relation you want to rename."}],"security":[{"bearer":[]}],"x-should-be-exposed-to-customers":true,"responses":{"200":{"description":"Updated successfully.","content":{"application/json":{"schema":{"description":"Updated successfully.","type":"object","properties":{"ok":{"enum":[true]},"blueprint":{"type":"object","properties":{"identifier":{"type":"string","pattern":"^(?!\\.{1,2}$)[\\p{L}0-9@_.+:\\\\/-]+$","maxLength":100,"description":"The identifier of the blueprint."},"title":{"type":"string","maxLength":100,"minLength":1,"description":"The title of the blueprint."},"description":{"type":"string","maxLength":200,"description":"The description of the blueprint."},"icon":{"type":"string","description":"The icon of the blueprint."},"ownership":{"anyOf":[{"type":"object","title":"Inherited","description":"Ownership of the blueprint's entities will be inherited from a different related blueprint with `Direct` ownership.","properties":{"type":{"type":"string","enum":["Inherited"]},"path":{"type":"string","description":"The `path` key is a dot-separated path of relation identifiers that lead to the desired blueprint."},"title":{"type":"string","maxLength":100,"description":"The title of the ownership property. The default value is `Owning teams`."}},"additionalProperties":false,"required":["type","path"]},{"type":"object","title":"Direct","description":"Ownership of the blueprint's entities will be defined by a hidden **relation** to the `Team` blueprint.","properties":{"type":{"type":"string","enum":["Direct"]},"title":{"type":"string","maxLength":100,"description":"The title of the ownership property. The default value is `Owning teams`."},"union":{"type":"boolean","description":"When `true`, every writer owns its own slice of owning teams and the entity's owning teams are the combination of all slices. Cannot be changed once ownership is Direct."}},"additionalProperties":false,"required":["type"]}]},"schema":{"type":"object","description":"The schema of the blueprint, see `properties` and `required` below for more information.","properties":{"properties":{"type":"object","description":"The properties of the blueprint.<br/> Each property identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\\\-]+$`.","propertyNames":{"pattern":"^[A-Za-z0-9@_=\\\\-]+$","maxLength":100},"additionalProperties":{"type":"object","properties":{"title":{"type":"string","maxLength":100,"description":"The title of the property."},"description":{"type":"string","description":"The description of the property."},"icon":{"type":"string","description":"The icon of the property."},"type":{"enum":["string","number","boolean","object","array"],"description":"The [type](https://docs.port.io/context-lake/data-model/setup-blueprint/properties/overview#supported-properties) of the property."},"format":{"enum":["date-time","url","email","idn-email","ipv4","ipv6","markdown","yaml","user","blueprints","team","timer","proto","labeled-url"],"description":"The type's [format](https://docs.port.io/context-lake/data-model/setup-blueprint/properties/overview#supported-properties)."},"dateFormat":{"enum":["relative","12-hour","24-hour","iso"],"description":"The display format for date-time properties. Only applicable when format is 'date-time'. Defaults to 'relative'."},"spec":{"enum":["open-api","embedded-url","async-api"],"description":"The [spec](https://docs.port.io/context-lake/data-model/setup-blueprint/properties/overview#supported-properties) of the property."},"union":{"type":"boolean","description":"Only applicable to `array` properties with `string` or `number` items. When `true`, every writer owns its own slice of the value and the property returns the combination of all slices, with each value appearing once. Writers send `{ \"<sourceKey>\": [values] }` instead of a plain array. Cannot be changed after the property is created."},"specAuthentication":{"type":"object","description":"When using the `spec` property with `embedded-url`, the authentication spec of the property.","properties":{"clientId":{"type":"string"},"authorizationUrl":{"type":"string","format":"url"},"tokenUrl":{"type":"string","format":"url"},"authorizationScope":{"type":"array","items":{"type":"string"},"default":["openid"]}},"additionalProperties":false,"required":["clientId","authorizationUrl","tokenUrl"]}},"required":["type"]}},"required":{"type":"array","items":{"type":"string"},"description":"The required properties of the blueprint, these must be provided when creating an entity based on this blueprint. This is an array of the required properties' identifiers."}},"additionalProperties":false,"required":["properties"]},"calculationProperties":{"type":"object","description":"The [calculation properties](https://docs.port.io/context-lake/data-model/setup-blueprint/properties/calculation-property/) of the blueprint. <br/> Each calculation property identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\\\-]+$`.","default":{},"propertyNames":{"pattern":"^[A-Za-z0-9@_=\\\\-]+$","maxLength":100},"additionalProperties":{"type":"object","additionalProperties":false,"properties":{"title":{"type":"string","maxLength":100,"description":"The title of the property."},"description":{"type":"string","description":"The description of the property."},"icon":{"type":"string","description":"The icon of the property."},"calculation":{"type":"string","description":"The JQ expression that calculates the value of the property."},"type":{"enum":["string","number","boolean","object","array"],"description":"The type of the property."},"format":{"enum":["date-time","url","email","idn-email","ipv4","ipv6","markdown","yaml","user","team","proto","labeled-url"],"description":"The format of the property."},"dateFormat":{"enum":["relative","12-hour","24-hour","iso"],"description":"The display format for date-time calculation properties. Only applicable when format is 'date-time'. Defaults to 'relative'."},"spec":{"enum":["open-api","embedded-url","async-api"],"description":"The spec of the property."},"specAuthentication":{"type":"object","description":"When using the `spec` property with `embedded-url`, the authentication spec of the property.","properties":{"clientId":{"type":"string"},"authorizationUrl":{"type":"string","format":"url"},"tokenUrl":{"type":"string","format":"url"},"authorizationScope":{"type":"array","items":{"type":"string"},"default":["openid"]}},"additionalProperties":false,"required":["clientId","authorizationUrl","tokenUrl"]},"colorized":{"type":"boolean","description":"Whether the property is colorized."},"colors":{"type":"object","description":"When using the `colorized` property, the colors of the property.","additionalProperties":{"enum":["blue","turquoise","orange","purple","pink","yellow","green","red","gold","silver","paleBlue","darkGray","lightGray","bronze","lime","olive","brown"]}},"items":{"type":"object","properties":{"type":{"enum":["string","number","boolean","object","array"],"description":"The type of the item."},"format":{"description":"The format of the item.","enum":["date-time","url","email","idn-format","ipv4","ipv6","markdown","yaml","user","team","timer","proto","labeled-url"]}}}},"required":["calculation","type"]}},"mirrorProperties":{"type":"object","description":"The [mirror properties](https://docs.port.io/context-lake/data-model/setup-blueprint/properties/mirror-property/) of the blueprint. <br/> Each mirror property identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\\\-]+$`.","propertyNames":{"pattern":"^[A-Za-z0-9@_=\\\\-]+$","maxLength":100},"additionalProperties":{"type":"object","properties":{"path":{"type":"string","pattern":"^(?:[A-Za-z0-9@_=\\-$]+\\.)+?(\\w|\\$|@|-)*?[^\\.]+$","description":"The path to the property in the related blueprint. This is a string of relation identifiers separated by dots, the last identifier is the property identifier."},"title":{"type":"string","maxLength":100,"description":"The title of the property."}},"additionalProperties":false,"required":["path"]}},"aggregationProperties":{"type":"object","description":"The [aggregation properties](https://docs.port.io/context-lake/data-model/setup-blueprint/properties/aggregation-property/) of the blueprint. <br/> Each aggregation property identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\\\-]+$`.","default":{},"propertyNames":{"pattern":"^[A-Za-z0-9@_=\\\\-]+$","maxLength":100},"additionalProperties":{"type":"object","properties":{"title":{"type":"string","maxLength":100,"description":"The title of the property."},"description":{"type":"string","description":"The description of the property."},"icon":{"type":"string","description":"The icon of the property."},"type":{"enum":["number"],"default":"number","description":"The type of the property. This is the type of the aggregation result."},"target":{"type":"string","description":"The blueprint identifier to run the aggregation on."},"calculationSpec":{"type":"object","oneOf":[{"title":"Count entities","oneOf":[{"type":"object","title":"Count","properties":{"func":{"description":"The function to use for the aggregation.","enum":["count"]},"calculationBy":{"type":"string","description":"Whether to aggregate by entities or properties.","enum":["entities"]}},"required":["func","calculationBy"],"additionalProperties":false},{"type":"object","title":"Average entities over time","properties":{"func":{"description":"The function to use for the aggregation.","enum":["average"]},"measureTimeBy":{"type":"string","description":"The time property to use for the aggregation."},"averageOf":{"type":"string","enum":["hour","day","week","month","total"]},"calculationBy":{"type":"string","description":"Whether to aggregate by entities or properties.","enum":["entities"]}},"required":["func","calculationBy","averageOf"],"additionalProperties":false}]},{"title":"Aggregate property","oneOf":[{"type":"object","title":"Aggregate property values","properties":{"func":{"type":"string","enum":["sum","min","max","median"],"description":"The function to use for the aggregation."},"property":{"type":"string","description":"The property to aggregate."},"calculationBy":{"type":"string","description":"Whether to aggregate by property or entities.","enum":["property"]}},"additionalProperties":false,"required":["func","property","calculationBy"]},{"type":"object","title":"Average property over time","properties":{"func":{"description":"The function to use for the aggregation.","enum":["average"]},"measureTimeBy":{"type":"string","description":"The time property to use for the aggregation."},"averageOf":{"type":"string","enum":["hour","day","week","month","total"]},"property":{"type":"string","description":"The property to aggregate."},"calculationBy":{"type":"string","description":"Whether to aggregate by property or entities.","enum":["property"]}},"additionalProperties":false,"required":["func","property","calculationBy","averageOf"]}]}],"description":"The calculation spec of the property."},"query":{"$ref":"#/components/schemas/def-1"},"pathFilter":{"type":"array","description":"Optional filter to run the aggregation on entities that are connected through a specific path. When empty will use all the related entities from all possible paths","maxItems":1,"items":{"type":"object","properties":{"path":{"description":"The path to the property in the related blueprint. This is a string of relation identifiers separated by dots.","type":"array","items":{"type":"string"},"minItems":1},"fromBlueprint":{"type":"string"}},"required":["path"],"additionalProperties":false}}},"additionalProperties":false,"required":["title","target","calculationSpec"]}},"relations":{"type":"object","description":"The [relations](https://docs.port.io/context-lake/data-model/setup-blueprint/relate-blueprints) of the blueprint. <br/> Each relation identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\\\-]+$`.","propertyNames":{"pattern":"^[A-Za-z0-9@_=\\\\-]+$","maxLength":100},"additionalProperties":{"type":"object","properties":{"title":{"type":"string","maxLength":100},"target":{"type":"string"},"required":{"type":"boolean","default":false},"many":{"type":"boolean","default":false},"description":{"type":"string"},"type":{"type":"string"},"union":{"type":"boolean","description":"When `true`, every writer owns its own slice of the value and the relation returns the combination of all slices. Requires `many: true`. Cannot be changed after the relation is created."}},"additionalProperties":false,"required":["target","required","many"]}},"includeInGlobalSearch":{"type":["boolean","null"],"description":"Overrides the org-level includeBlueprintsInGlobalSearchByDefault setting. When set, controls whether entities of this blueprint appear in global search results. Set to null to clear the override."},"changelogDestination":{"description":"The destination of the blueprint's changelog.","oneOf":[{"type":"object","title":"Webhook","description":"The changelog will be sent to the specified webhook.","properties":{"type":{"type":"string","enum":["WEBHOOK"]},"agent":{"type":"boolean","description":"If `true`, Port's execution agent will be used to send the changelog."},"url":{"type":"string","description":"The URL of the webhook.","format":"uri"}},"required":["url","type"],"additionalProperties":false},{"type":"object","title":"Kafka","description":"The changelog will be sent to the Kafka topic connected to your Port account.","properties":{"type":{"type":"string","enum":["KAFKA"]}},"required":["type"],"additionalProperties":false}]},"updatedBy":{"type":"string"},"createdBy":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"required":["identifier","title","schema","createdBy","updatedBy","createdAt","updatedAt"]}},"required":["blueprint","ok"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}},"413":{"description":"Request body is too large (limit is 1MiB)","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false,"description":"Request body is too large (limit is 1MiB)"}}}},"422":{"description":"The json provided does not match the route's schema","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"The json provided does not match the route's schema"}}}}}}},"/v1/blueprints/system/{identifier}/structure":{"get":{"summary":"Get a system blueprint structure","tags":["Blueprints"],"description":"Returns the Port-owned base structure of a system blueprint, meaning the fields managed by Port that users cannot modify or delete. Useful for inspecting protected fields, or as the first step when updating a system blueprint via PUT.<br/><br/>**Updating with PUT (full replace)**<br/><br/>The PUT body must contain all Port-managed fields, otherwise the request fails with `protected_blueprint_violation`. The flow:<br/><br/>1. Fetch the structure with this endpoint.<br/>2. Merge your extensions on top.<br/>3. Send the result to [Change a blueprint](https://docs.port.io/api-reference/change-a-blueprint/).<br/><br/>Common in client-side flows like Terraform.<br/><br/>**Updating with PATCH (partial)**<br/><br/>For additive changes, send your delta to [Update a blueprint](https://docs.port.io/api-reference/update-a-blueprint/). The server merges it onto the current blueprint, so this endpoint is not required first.<br/><br/>To learn more about system blueprints, check out the [documentation](https://docs.port.io/context-lake/data-model/setup-blueprint/overview).","parameters":[{"schema":{"type":"string"},"in":"path","name":"identifier","required":true,"description":"The unique identifier of the resource you want to operate on."}],"security":[{"bearer":["read:blueprints"]}],"x-should-be-exposed-to-customers":true,"responses":{"200":{"description":"Retrieved successfully.","content":{"application/json":{"schema":{"description":"Retrieved successfully.","type":"object","properties":{"ok":{"enum":[true]},"blueprint":{"type":"object","properties":{"identifier":{"type":"string","pattern":"^(?!\\.{1,2}$)[\\p{L}0-9@_.+:\\\\/-]+$","maxLength":100,"description":"The identifier of the blueprint."},"title":{"type":"string","maxLength":100,"minLength":1,"description":"The title of the blueprint."},"description":{"type":"string","maxLength":200,"description":"The description of the blueprint."},"icon":{"type":"string","description":"The icon of the blueprint."},"ownership":{"anyOf":[{"type":"object","title":"Inherited","description":"Ownership of the blueprint's entities will be inherited from a different related blueprint with `Direct` ownership.","properties":{"type":{"type":"string","enum":["Inherited"]},"path":{"type":"string","description":"The `path` key is a dot-separated path of relation identifiers that lead to the desired blueprint."},"title":{"type":"string","maxLength":100,"description":"The title of the ownership property. The default value is `Owning teams`."}},"additionalProperties":false,"required":["type","path"]},{"type":"object","title":"Direct","description":"Ownership of the blueprint's entities will be defined by a hidden **relation** to the `Team` blueprint.","properties":{"type":{"type":"string","enum":["Direct"]},"title":{"type":"string","maxLength":100,"description":"The title of the ownership property. The default value is `Owning teams`."},"union":{"type":"boolean","description":"When `true`, every writer owns its own slice of owning teams and the entity's owning teams are the combination of all slices. Cannot be changed once ownership is Direct."}},"additionalProperties":false,"required":["type"]}]},"schema":{"type":"object","description":"The schema of the blueprint, see `properties` and `required` below for more information.","properties":{"properties":{"type":"object","description":"The properties of the blueprint.<br/> Each property identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\\\-]+$`.","propertyNames":{"pattern":"^[A-Za-z0-9@_=\\\\-]+$","maxLength":100},"additionalProperties":{"type":"object","properties":{"title":{"type":"string","maxLength":100,"description":"The title of the property."},"description":{"type":"string","description":"The description of the property."},"icon":{"type":"string","description":"The icon of the property."},"type":{"enum":["string","number","boolean","object","array"],"description":"The [type](https://docs.port.io/context-lake/data-model/setup-blueprint/properties/overview#supported-properties) of the property."},"format":{"enum":["date-time","url","email","idn-email","ipv4","ipv6","markdown","yaml","user","blueprints","team","timer","proto","labeled-url"],"description":"The type's [format](https://docs.port.io/context-lake/data-model/setup-blueprint/properties/overview#supported-properties)."},"dateFormat":{"enum":["relative","12-hour","24-hour","iso"],"description":"The display format for date-time properties. Only applicable when format is 'date-time'. Defaults to 'relative'."},"spec":{"enum":["open-api","embedded-url","async-api"],"description":"The [spec](https://docs.port.io/context-lake/data-model/setup-blueprint/properties/overview#supported-properties) of the property."},"union":{"type":"boolean","description":"Only applicable to `array` properties with `string` or `number` items. When `true`, every writer owns its own slice of the value and the property returns the combination of all slices, with each value appearing once. Writers send `{ \"<sourceKey>\": [values] }` instead of a plain array. Cannot be changed after the property is created."},"specAuthentication":{"type":"object","description":"When using the `spec` property with `embedded-url`, the authentication spec of the property.","properties":{"clientId":{"type":"string"},"authorizationUrl":{"type":"string","format":"url"},"tokenUrl":{"type":"string","format":"url"},"authorizationScope":{"type":"array","items":{"type":"string"},"default":["openid"]}},"additionalProperties":false,"required":["clientId","authorizationUrl","tokenUrl"]}},"required":["type"]}},"required":{"type":"array","items":{"type":"string"},"description":"The required properties of the blueprint, these must be provided when creating an entity based on this blueprint. This is an array of the required properties' identifiers."}},"additionalProperties":false,"required":["properties"]},"calculationProperties":{"type":"object","description":"The [calculation properties](https://docs.port.io/context-lake/data-model/setup-blueprint/properties/calculation-property/) of the blueprint. <br/> Each calculation property identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\\\-]+$`.","default":{},"propertyNames":{"pattern":"^[A-Za-z0-9@_=\\\\-]+$","maxLength":100},"additionalProperties":{"type":"object","additionalProperties":false,"properties":{"title":{"type":"string","maxLength":100,"description":"The title of the property."},"description":{"type":"string","description":"The description of the property."},"icon":{"type":"string","description":"The icon of the property."},"calculation":{"type":"string","description":"The JQ expression that calculates the value of the property."},"type":{"enum":["string","number","boolean","object","array"],"description":"The type of the property."},"format":{"enum":["date-time","url","email","idn-email","ipv4","ipv6","markdown","yaml","user","team","proto","labeled-url"],"description":"The format of the property."},"dateFormat":{"enum":["relative","12-hour","24-hour","iso"],"description":"The display format for date-time calculation properties. Only applicable when format is 'date-time'. Defaults to 'relative'."},"spec":{"enum":["open-api","embedded-url","async-api"],"description":"The spec of the property."},"specAuthentication":{"type":"object","description":"When using the `spec` property with `embedded-url`, the authentication spec of the property.","properties":{"clientId":{"type":"string"},"authorizationUrl":{"type":"string","format":"url"},"tokenUrl":{"type":"string","format":"url"},"authorizationScope":{"type":"array","items":{"type":"string"},"default":["openid"]}},"additionalProperties":false,"required":["clientId","authorizationUrl","tokenUrl"]},"colorized":{"type":"boolean","description":"Whether the property is colorized."},"colors":{"type":"object","description":"When using the `colorized` property, the colors of the property.","additionalProperties":{"enum":["blue","turquoise","orange","purple","pink","yellow","green","red","gold","silver","paleBlue","darkGray","lightGray","bronze","lime","olive","brown"]}},"items":{"type":"object","properties":{"type":{"enum":["string","number","boolean","object","array"],"description":"The type of the item."},"format":{"description":"The format of the item.","enum":["date-time","url","email","idn-format","ipv4","ipv6","markdown","yaml","user","team","timer","proto","labeled-url"]}}}},"required":["calculation","type"]}},"mirrorProperties":{"type":"object","description":"The [mirror properties](https://docs.port.io/context-lake/data-model/setup-blueprint/properties/mirror-property/) of the blueprint. <br/> Each mirror property identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\\\-]+$`.","propertyNames":{"pattern":"^[A-Za-z0-9@_=\\\\-]+$","maxLength":100},"additionalProperties":{"type":"object","properties":{"path":{"type":"string","pattern":"^(?:[A-Za-z0-9@_=\\-$]+\\.)+?(\\w|\\$|@|-)*?[^\\.]+$","description":"The path to the property in the related blueprint. This is a string of relation identifiers separated by dots, the last identifier is the property identifier."},"title":{"type":"string","maxLength":100,"description":"The title of the property."}},"additionalProperties":false,"required":["path"]}},"aggregationProperties":{"type":"object","description":"The [aggregation properties](https://docs.port.io/context-lake/data-model/setup-blueprint/properties/aggregation-property/) of the blueprint. <br/> Each aggregation property identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\\\-]+$`.","default":{},"propertyNames":{"pattern":"^[A-Za-z0-9@_=\\\\-]+$","maxLength":100},"additionalProperties":{"type":"object","properties":{"title":{"type":"string","maxLength":100,"description":"The title of the property."},"description":{"type":"string","description":"The description of the property."},"icon":{"type":"string","description":"The icon of the property."},"type":{"enum":["number"],"default":"number","description":"The type of the property. This is the type of the aggregation result."},"target":{"type":"string","description":"The blueprint identifier to run the aggregation on."},"calculationSpec":{"type":"object","oneOf":[{"title":"Count entities","oneOf":[{"type":"object","title":"Count","properties":{"func":{"description":"The function to use for the aggregation.","enum":["count"]},"calculationBy":{"type":"string","description":"Whether to aggregate by entities or properties.","enum":["entities"]}},"required":["func","calculationBy"],"additionalProperties":false},{"type":"object","title":"Average entities over time","properties":{"func":{"description":"The function to use for the aggregation.","enum":["average"]},"measureTimeBy":{"type":"string","description":"The time property to use for the aggregation."},"averageOf":{"type":"string","enum":["hour","day","week","month","total"]},"calculationBy":{"type":"string","description":"Whether to aggregate by entities or properties.","enum":["entities"]}},"required":["func","calculationBy","averageOf"],"additionalProperties":false}]},{"title":"Aggregate property","oneOf":[{"type":"object","title":"Aggregate property values","properties":{"func":{"type":"string","enum":["sum","min","max","median"],"description":"The function to use for the aggregation."},"property":{"type":"string","description":"The property to aggregate."},"calculationBy":{"type":"string","description":"Whether to aggregate by property or entities.","enum":["property"]}},"additionalProperties":false,"required":["func","property","calculationBy"]},{"type":"object","title":"Average property over time","properties":{"func":{"description":"The function to use for the aggregation.","enum":["average"]},"measureTimeBy":{"type":"string","description":"The time property to use for the aggregation."},"averageOf":{"type":"string","enum":["hour","day","week","month","total"]},"property":{"type":"string","description":"The property to aggregate."},"calculationBy":{"type":"string","description":"Whether to aggregate by property or entities.","enum":["property"]}},"additionalProperties":false,"required":["func","property","calculationBy","averageOf"]}]}],"description":"The calculation spec of the property."},"query":{"$ref":"#/components/schemas/def-1"},"pathFilter":{"type":"array","description":"Optional filter to run the aggregation on entities that are connected through a specific path. When empty will use all the related entities from all possible paths","maxItems":1,"items":{"type":"object","properties":{"path":{"description":"The path to the property in the related blueprint. This is a string of relation identifiers separated by dots.","type":"array","items":{"type":"string"},"minItems":1},"fromBlueprint":{"type":"string"}},"required":["path"],"additionalProperties":false}}},"additionalProperties":false,"required":["title","target","calculationSpec"]}},"relations":{"type":"object","description":"The [relations](https://docs.port.io/context-lake/data-model/setup-blueprint/relate-blueprints) of the blueprint. <br/> Each relation identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\\\-]+$`.","propertyNames":{"pattern":"^[A-Za-z0-9@_=\\\\-]+$","maxLength":100},"additionalProperties":{"type":"object","properties":{"title":{"type":"string","maxLength":100},"target":{"type":"string"},"required":{"type":"boolean","default":false},"many":{"type":"boolean","default":false},"description":{"type":"string"},"type":{"type":"string"},"union":{"type":"boolean","description":"When `true`, every writer owns its own slice of the value and the relation returns the combination of all slices. Requires `many: true`. Cannot be changed after the relation is created."}},"additionalProperties":false,"required":["target","required","many"]}},"includeInGlobalSearch":{"type":["boolean","null"],"description":"Overrides the org-level includeBlueprintsInGlobalSearchByDefault setting. When set, controls whether entities of this blueprint appear in global search results. Set to null to clear the override."},"changelogDestination":{"description":"The destination of the blueprint's changelog.","oneOf":[{"type":"object","title":"Webhook","description":"The changelog will be sent to the specified webhook.","properties":{"type":{"type":"string","enum":["WEBHOOK"]},"agent":{"type":"boolean","description":"If `true`, Port's execution agent will be used to send the changelog."},"url":{"type":"string","description":"The URL of the webhook.","format":"uri"}},"required":["url","type"],"additionalProperties":false},{"type":"object","title":"Kafka","description":"The changelog will be sent to the Kafka topic connected to your Port account.","properties":{"type":{"type":"string","enum":["KAFKA"]}},"required":["type"],"additionalProperties":false}]}},"required":["identifier","title","schema"]}},"required":["blueprint","ok"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}}}}},"/v1/actions":{"post":{"summary":"Create an action/automation","tags":["Actions"],"description":"This route allows you to create a new self-service action or automation in your Port account.<br/><br/>To learn more about actions and automations, check out the [documentation](https://docs.port.io/workflows/actions-and-automations/overview/).","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"identifier":{"type":"string","pattern":"^(?!\\.{1,2}$)[\\p{L}0-9@_.+:=-]+$","description":"The identifier of the action."},"title":{"type":"string","description":"The title of the action."},"icon":{"type":"string","description":"The icon of the action."},"description":{"type":"string","description":"The description of the action."},"trigger":{"oneOf":[{"type":"object","description":"The trigger definition of the action.","properties":{"operation":{"type":"string","enum":["DAY-2","DELETE"],"description":"The [operation type](https://docs.port.io/workflows/actions-and-automations/create-self-service-experiences/setup-ui-for-action/#basic-details) of the action."},"type":{"type":"string","enum":["self-service"]},"blueprintIdentifier":{"type":"string","description":"The identifier of the blueprint that the action is associated with.<br/>Note that this is optional, as actions do not have to be tied directly to a blueprint."},"userInputs":{"oneOf":[{"type":"object","title":"Default order","description":"Use this option when you don't want to define a custom order/steps for the user inputs.","properties":{"properties":{"type":"object","propertyNames":{"pattern":"^[A-Za-z0-9@_=\\\\-]+$"},"additionalProperties":{"type":"object","properties":{"type":{"enum":["string","number","boolean","object","array"],"title":"Type","description":"The type of the input."},"jqQuery":{"type":"null"},"format":{"enum":["date-time","url","email","ipv4","ipv6","yaml","entity","user","team","proto","markdown","multi-line","labeled-url"],"title":"Format","description":"The format of the input."},"blueprint":{"type":"string","title":"Blueprint","description":"When using the `entity` format, this is the identifier of the blueprint whose entities will be selectable via this input."},"dependsOn":{"type":"array","items":{"type":"string"},"title":"Depends On","description":"The identifiers of the inputs that this input depends on. This input will be disabled until they have been given a value."},"visible":{"oneOf":[{"$ref":"#/components/schemas/def-0","description":"A [jq query](https://stedolan.github.io/jq/manual/) that resolves to `true` or `false`, determining the visibility of the input.","title":"jqQuery"},{"type":"boolean","description":"A boolean value determining the visibility of the input.","title":"boolean"}],"title":"Visible","description":"The visibility of the input. Resolves to a boolean value (`true` = visible)."},"icon":{"type":"string","title":"Icon","description":"The icon of the input."},"dataset":{"$ref":"#/components/schemas/def-2","title":"Dataset","description":"The dataset to use for entity selection inputs."},"sort":{"type":"object","title":"Sort","description":"Relevant only for `Entity selection` inputs (`type` = `string` and `format` = `entity`).<br/>This input allows you to sort the entities in the dropdown by a specific property.","properties":{"property":{"type":"string","title":"Property","description":"The property by which to sort the entities."},"order":{"type":"string","enum":["ASC","DESC"],"title":"Order","description":"The order in which to sort the entities."}},"required":["property","order"]}},"required":["type"]}},"titles":{"type":"object","propertyNames":{"pattern":"^[A-Za-z0-9@_=\\\\-]+$"},"additionalProperties":{"type":"object","properties":{"title":{"type":"string","maxLength":140,"minLength":1},"description":{"type":"string","maxLength":1000},"visible":{"anyOf":[{"type":"boolean"},{"$ref":"#/components/schemas/def-0"}]}}}},"required":{"oneOf":[{"$ref":"#/components/schemas/def-0","description":"A jq query that runs on the action's inputs and resolves to a boolean value (`true` = required).","title":"jqQuery"},{"type":"array","description":"The identifiers of the required inputs.","items":{"type":"string"},"title":"array"}]}},"required":["properties"],"additionalProperties":false},{"type":"object","title":"Custom order","description":"Use this option when you want to define a custom order for the user inputs.","properties":{"properties":{"type":"object","propertyNames":{"pattern":"^[A-Za-z0-9@_=\\\\-]+$"},"additionalProperties":{"type":"object","properties":{"type":{"enum":["string","number","boolean","object","array"],"title":"Type","description":"The type of the input."},"jqQuery":{"type":"null"},"format":{"enum":["date-time","url","email","ipv4","ipv6","yaml","entity","user","team","proto","markdown","multi-line","labeled-url"],"title":"Format","description":"The format of the input."},"blueprint":{"type":"string","title":"Blueprint","description":"When using the `entity` format, this is the identifier of the blueprint whose entities will be selectable via this input."},"dependsOn":{"type":"array","items":{"type":"string"},"title":"Depends On","description":"The identifiers of the inputs that this input depends on. This input will be disabled until they have been given a value."},"visible":{"oneOf":[{"$ref":"#/components/schemas/def-0","description":"A [jq query](https://stedolan.github.io/jq/manual/) that resolves to `true` or `false`, determining the visibility of the input.","title":"jqQuery"},{"type":"boolean","description":"A boolean value determining the visibility of the input.","title":"boolean"}],"title":"Visible","description":"The visibility of the input. Resolves to a boolean value (`true` = visible)."},"icon":{"type":"string","title":"Icon","description":"The icon of the input."},"dataset":{"$ref":"#/components/schemas/def-2","title":"Dataset","description":"The dataset to use for entity selection inputs."},"sort":{"type":"object","title":"Sort","description":"Relevant only for `Entity selection` inputs (`type` = `string` and `format` = `entity`).<br/>This input allows you to sort the entities in the dropdown by a specific property.","properties":{"property":{"type":"string","title":"Property","description":"The property by which to sort the entities."},"order":{"type":"string","enum":["ASC","DESC"],"title":"Order","description":"The order in which to sort the entities."}},"required":["property","order"]}},"required":["type"]}},"required":{"oneOf":[{"$ref":"#/components/schemas/def-0","description":"A jq query that runs on the action's inputs and resolves to a boolean value (`true` = required).","title":"jqQuery"},{"type":"array","description":"The identifiers of the required inputs.","items":{"type":"string"},"title":"array"}]},"titles":{"type":"object","propertyNames":{"pattern":"^[A-Za-z0-9@_=\\\\-]+$"},"additionalProperties":{"type":"object","properties":{"title":{"type":"string","maxLength":140,"minLength":1},"description":{"type":"string","maxLength":1000},"visible":{"anyOf":[{"type":"boolean"},{"$ref":"#/components/schemas/def-0"}]}}}},"order":{"type":"array","items":{"type":"string"}}},"required":["properties","order"],"additionalProperties":false},{"type":"object","title":"Custom steps","description":"Use this option when you want to define custom steps for the user inputs.","properties":{"properties":{"type":"object","propertyNames":{"pattern":"^[A-Za-z0-9@_=\\\\-]+$"},"additionalProperties":{"type":"object","properties":{"type":{"enum":["string","number","boolean","object","array"],"title":"Type","description":"The type of the input."},"jqQuery":{"type":"null"},"format":{"enum":["date-time","url","email","ipv4","ipv6","yaml","entity","user","team","proto","markdown","multi-line","labeled-url"],"title":"Format","description":"The format of the input."},"blueprint":{"type":"string","title":"Blueprint","description":"When using the `entity` format, this is the identifier of the blueprint whose entities will be selectable via this input."},"dependsOn":{"type":"array","items":{"type":"string"},"title":"Depends On","description":"The identifiers of the inputs that this input depends on. This input will be disabled until they have been given a value."},"visible":{"oneOf":[{"$ref":"#/components/schemas/def-0","description":"A [jq query](https://stedolan.github.io/jq/manual/) that resolves to `true` or `false`, determining the visibility of the input.","title":"jqQuery"},{"type":"boolean","description":"A boolean value determining the visibility of the input.","title":"boolean"}],"title":"Visible","description":"The visibility of the input. Resolves to a boolean value (`true` = visible)."},"icon":{"type":"string","title":"Icon","description":"The icon of the input."},"dataset":{"$ref":"#/components/schemas/def-2","title":"Dataset","description":"The dataset to use for entity selection inputs."},"sort":{"type":"object","title":"Sort","description":"Relevant only for `Entity selection` inputs (`type` = `string` and `format` = `entity`).<br/>This input allows you to sort the entities in the dropdown by a specific property.","properties":{"property":{"type":"string","title":"Property","description":"The property by which to sort the entities."},"order":{"type":"string","enum":["ASC","DESC"],"title":"Order","description":"The order in which to sort the entities."}},"required":["property","order"]}},"required":["type"]}},"required":{"oneOf":[{"$ref":"#/components/schemas/def-0","description":"A jq query that runs on the action's inputs and resolves to a boolean value (`true` = required).","title":"jqQuery"},{"type":"array","description":"The identifiers of the required inputs.","items":{"type":"string"},"title":"array"}]},"titles":{"type":"object","propertyNames":{"pattern":"^[A-Za-z0-9@_=\\\\-]+$"},"additionalProperties":{"type":"object","properties":{"title":{"type":"string","maxLength":140,"minLength":1},"description":{"type":"string","maxLength":1000},"visible":{"anyOf":[{"type":"boolean"},{"$ref":"#/components/schemas/def-0"}]}}}},"steps":{"type":"array","description":"The steps of the user inputs. Each step is an object containing its title and the order of its properties.","items":{"type":"object","properties":{"title":{"type":"string","description":"The title of the step."},"order":{"type":"array","description":"The order of the properties in the step - an array of property identifiers.","items":{"type":"string"}},"visible":{"oneOf":[{"$ref":"#/components/schemas/def-0","description":"A [jq query](https://stedolan.github.io/jq/manual/) that resolves to `true` or `false`, determining the visibility of the step.","title":"jqQuery"},{"type":"boolean","description":"A boolean value determining the visibility of the step.","title":"boolean"}],"title":"Visible","description":"The visibility of the step. Resolves to a boolean value (`true` = visible)."}},"required":["title"],"additionalProperties":false}}},"required":["properties","steps"],"additionalProperties":false}],"description":"The [user inputs](https://docs.port.io/workflows/actions-and-automations/create-self-service-experiences/setup-ui-for-action/user-inputs/) of the action."},"actionCardButtonText":{"type":"string","maxLength":15,"minLength":1,"pattern":"^[^\\s].*[^\\s]$"},"executeActionButtonText":{"type":"string","maxLength":15,"minLength":1,"pattern":"^[^\\s].*[^\\s]$"},"condition":{"type":"object","description":"Filters used to include/exclude specific entities from the action.","additionalProperties":false,"properties":{"type":{"type":"string","enum":["SEARCH"]},"rules":{"type":"array","items":{"anyOf":[{"type":"object","title":"Date Rule","properties":{"property":{"title":"Contexted property","oneOf":[{"type":"string"},{"type":"object","title":"User-context field","properties":{"property":{"type":"string"},"context":{"type":"string","enum":["user","userTeams"]}},"required":["property","context"]}]},"operator":{"enum":["between","notBetween","="]},"value":{"type":"object","oneOf":[{"type":"object","title":"Date Range","properties":{"from":{"type":"string","format":"date-time"},"to":{"type":"string","format":"date-time"}},"required":["from","to"]},{"type":"object","title":"Date Preset","properties":{"preset":{"type":"string","enum":["today","tomorrow","yesterday","lastDay","lastWeek","last2Weeks","lastMonth","last3Months","last6Months","last12Months","last2Years","last3Years","nextDay","nextWeek","next2Weeks","nextMonth","next3Months","next6Months","next12Months"]}},"required":["preset"]},{"type":"object","title":"User-context field","properties":{"property":{"type":"string"},"context":{"type":"string","enum":["user","userTeams"]}},"required":["property","context"]}]}},"required":["property","operator","value"],"additionalProperties":false},{"type":"object","title":"Empty Rule","oneOf":[{"type":"object","title":"Empty Rule","properties":{"operator":{"enum":["isEmpty","isNotEmpty"]},"property":{"type":"string"}},"required":["operator","property"],"additionalProperties":false}]},{"type":"object","title":"Number Rule","properties":{"property":{"title":"Contexted property","oneOf":[{"type":"string"},{"type":"object","title":"User-context field","properties":{"property":{"type":"string"},"context":{"type":"string","enum":["user","userTeams"]}},"required":["property","context"]}]},"operator":{"enum":[">",">=","<","<="]},"value":{"anyOf":[{"type":"number","title":"number"},{"type":"string","format":"date-time","title":"date-time"},{"type":"object","title":"User-context field","properties":{"property":{"type":"string"},"context":{"type":"string","enum":["user","userTeams"]}},"required":["property","context"]}]}},"required":["property","operator","value"],"additionalProperties":false},{"type":"object","title":"Expired Rule","oneOf":[{"type":"object","title":"Expired Rule","properties":{"operator":{"enum":["isExpired","isNotExpired"]},"property":{"type":"string"}},"required":["operator","property"],"additionalProperties":false}]},{"type":"object","title":"String Rule","oneOf":[{"type":"object","title":"String Rule","properties":{"property":{"title":"Contexted property","oneOf":[{"type":"string"},{"type":"object","title":"User-context field","properties":{"property":{"type":"string"},"context":{"type":"string","enum":["user","userTeams"]}},"required":["property","context"]}]},"operator":{"enum":["=","!=","containsAny","contains","doesNotContains","beginsWith","doesNotBeginsWith","endsWith","doesNotEndsWith","in","notIn"]},"value":{"anyOf":[{"type":"null","title":"null"},{"type":"string","title":"string"},{"type":"number","title":"number"},{"type":"boolean","title":"boolean"},{"type":"string","format":"date-time","title":"date-time"},{"type":"array","items":{"type":"string"},"title":"array"},{"type":"array","items":{"type":"number"},"title":"array"},{"type":"array","items":{"type":"boolean"},"title":"array"},{"type":"array","items":{"type":"string","format":"date-time"},"title":"array"},{"type":"object","title":"User-context field","properties":{"property":{"type":"string"},"context":{"type":"string","enum":["user","userTeams"]}},"required":["property","context"]}]}},"additionalProperties":false,"required":["property","operator","value"]}]},{"type":"object","title":"Relation Rule","properties":{"operator":{"enum":["relatedTo"]},"blueprint":{"type":"string"},"value":{"anyOf":[{"type":"string","title":"string"},{"type":"array","items":{"type":"string"},"title":"array"}]},"direction":{"enum":["upstream","downstream"]},"required":{"type":"boolean"}},"additionalProperties":false,"required":["operator","value","blueprint"]},{"type":"object","title":"Property schema rule","properties":{"propertySchema":{"type":"object","properties":{"type":{"type":"string"},"format":{"type":"string"},"items":{"type":"object","properties":{"type":{"type":"string"},"format":{"type":"string"}},"required":["type"]}},"required":["type"],"additionalProperties":false},"operator":{"enum":["=","!=","contains"]},"value":{"anyOf":[{"type":"null","title":"null"},{"type":"string","title":"string"},{"type":"number","title":"number"},{"type":"boolean","title":"boolean"}]}},"required":["operator","propertySchema"],"additionalProperties":false},{"type":"object","title":"matchAny Rule","anyOf":[{"type":"object","title":"Property matchAny rule","properties":{"property":{"oneOf":[{"type":"object","title":"Path filter property","properties":{"path":{"type":"array","minItems":1,"items":{"anyOf":[{"type":"string","title":"Relation identifier"},{"type":"object","title":"Relation with max hops","properties":{"relation":{"type":"string"},"maxHops":{"type":"number","minimum":1,"maximum":15}}}]}},"fromBlueprint":{"type":"string"}},"required":["path"],"additionalProperties":false},{"title":"Contexted property","oneOf":[{"type":"string"},{"type":"object","title":"User-context field","properties":{"property":{"type":"string"},"context":{"type":"string","enum":["user","userTeams"]}},"required":["property","context"]}]}]},"operator":{"type":"string","enum":["matchAny"]},"value":{"anyOf":[{"type":"array","items":{"type":"string"}},{"title":"Contexted property","oneOf":[{"type":"string"},{"type":"object","title":"User-context field","properties":{"property":{"type":"string"},"context":{"type":"string","enum":["user","userTeams"]}},"required":["property","context"]}]}]}},"required":["property","operator","value"],"additionalProperties":false}]},{"allOf":[{"$ref":"#/components/schemas/def-1"},{"title":"Nested query"}]}]}},"combinator":{"type":"string","enum":["and","or"]}},"required":["type","rules","combinator"]}},"dependencies":{"condition":["blueprintIdentifier"]},"required":["type","userInputs","operation"],"additionalProperties":false,"title":"Self-service (DAY-2/DELETE)"},{"type":"object","description":"The trigger definition of the action.","properties":{"operation":{"type":"string","enum":["CREATE"],"description":"The [operation type](https://docs.port.io/workflows/actions-and-automations/create-self-service-experiences/setup-ui-for-action/#basic-details) of the action."},"type":{"type":"string","enum":["self-service"]},"blueprintIdentifier":{"type":"string","description":"The identifier of the blueprint that the action is associated with.<br/>Note that this is optional, as actions do not have to be tied directly to a blueprint."},"userInputs":{"oneOf":[{"type":"object","title":"Default order","description":"Use this option when you don't want to define a custom order/steps for the user inputs.","properties":{"properties":{"type":"object","propertyNames":{"pattern":"^[A-Za-z0-9@_=\\\\-]+$"},"additionalProperties":{"type":"object","properties":{"type":{"enum":["string","number","boolean","object","array"],"title":"Type","description":"The type of the input."},"jqQuery":{"type":"null"},"format":{"enum":["date-time","url","email","ipv4","ipv6","yaml","entity","user","team","proto","markdown","multi-line","labeled-url"],"title":"Format","description":"The format of the input."},"blueprint":{"type":"string","title":"Blueprint","description":"When using the `entity` format, this is the identifier of the blueprint whose entities will be selectable via this input."},"dependsOn":{"type":"array","items":{"type":"string"},"title":"Depends On","description":"The identifiers of the inputs that this input depends on. This input will be disabled until they have been given a value."},"visible":{"oneOf":[{"$ref":"#/components/schemas/def-0","description":"A [jq query](https://stedolan.github.io/jq/manual/) that resolves to `true` or `false`, determining the visibility of the input.","title":"jqQuery"},{"type":"boolean","description":"A boolean value determining the visibility of the input.","title":"boolean"}],"title":"Visible","description":"The visibility of the input. Resolves to a boolean value (`true` = visible)."},"icon":{"type":"string","title":"Icon","description":"The icon of the input."},"dataset":{"$ref":"#/components/schemas/def-2","title":"Dataset","description":"The dataset to use for entity selection inputs."},"sort":{"type":"object","title":"Sort","description":"Relevant only for `Entity selection` inputs (`type` = `string` and `format` = `entity`).<br/>This input allows you to sort the entities in the dropdown by a specific property.","properties":{"property":{"type":"string","title":"Property","description":"The property by which to sort the entities."},"order":{"type":"string","enum":["ASC","DESC"],"title":"Order","description":"The order in which to sort the entities."}},"required":["property","order"]}},"required":["type"]}},"titles":{"type":"object","propertyNames":{"pattern":"^[A-Za-z0-9@_=\\\\-]+$"},"additionalProperties":{"type":"object","properties":{"title":{"type":"string","maxLength":140,"minLength":1},"description":{"type":"string","maxLength":1000},"visible":{"anyOf":[{"type":"boolean"},{"$ref":"#/components/schemas/def-0"}]}}}},"required":{"oneOf":[{"$ref":"#/components/schemas/def-0","description":"A jq query that runs on the action's inputs and resolves to a boolean value (`true` = required).","title":"jqQuery"},{"type":"array","description":"The identifiers of the required inputs.","items":{"type":"string"},"title":"array"}]}},"required":["properties"],"additionalProperties":false},{"type":"object","title":"Custom order","description":"Use this option when you want to define a custom order for the user inputs.","properties":{"properties":{"type":"object","propertyNames":{"pattern":"^[A-Za-z0-9@_=\\\\-]+$"},"additionalProperties":{"type":"object","properties":{"type":{"enum":["string","number","boolean","object","array"],"title":"Type","description":"The type of the input."},"jqQuery":{"type":"null"},"format":{"enum":["date-time","url","email","ipv4","ipv6","yaml","entity","user","team","proto","markdown","multi-line","labeled-url"],"title":"Format","description":"The format of the input."},"blueprint":{"type":"string","title":"Blueprint","description":"When using the `entity` format, this is the identifier of the blueprint whose entities will be selectable via this input."},"dependsOn":{"type":"array","items":{"type":"string"},"title":"Depends On","description":"The identifiers of the inputs that this input depends on. This input will be disabled until they have been given a value."},"visible":{"oneOf":[{"$ref":"#/components/schemas/def-0","description":"A [jq query](https://stedolan.github.io/jq/manual/) that resolves to `true` or `false`, determining the visibility of the input.","title":"jqQuery"},{"type":"boolean","description":"A boolean value determining the visibility of the input.","title":"boolean"}],"title":"Visible","description":"The visibility of the input. Resolves to a boolean value (`true` = visible)."},"icon":{"type":"string","title":"Icon","description":"The icon of the input."},"dataset":{"$ref":"#/components/schemas/def-2","title":"Dataset","description":"The dataset to use for entity selection inputs."},"sort":{"type":"object","title":"Sort","description":"Relevant only for `Entity selection` inputs (`type` = `string` and `format` = `entity`).<br/>This input allows you to sort the entities in the dropdown by a specific property.","properties":{"property":{"type":"string","title":"Property","description":"The property by which to sort the entities."},"order":{"type":"string","enum":["ASC","DESC"],"title":"Order","description":"The order in which to sort the entities."}},"required":["property","order"]}},"required":["type"]}},"required":{"oneOf":[{"$ref":"#/components/schemas/def-0","description":"A jq query that runs on the action's inputs and resolves to a boolean value (`true` = required).","title":"jqQuery"},{"type":"array","description":"The identifiers of the required inputs.","items":{"type":"string"},"title":"array"}]},"titles":{"type":"object","propertyNames":{"pattern":"^[A-Za-z0-9@_=\\\\-]+$"},"additionalProperties":{"type":"object","properties":{"title":{"type":"string","maxLength":140,"minLength":1},"description":{"type":"string","maxLength":1000},"visible":{"anyOf":[{"type":"boolean"},{"$ref":"#/components/schemas/def-0"}]}}}},"order":{"type":"array","items":{"type":"string"}}},"required":["properties","order"],"additionalProperties":false},{"type":"object","title":"Custom steps","description":"Use this option when you want to define custom steps for the user inputs.","properties":{"properties":{"type":"object","propertyNames":{"pattern":"^[A-Za-z0-9@_=\\\\-]+$"},"additionalProperties":{"type":"object","properties":{"type":{"enum":["string","number","boolean","object","array"],"title":"Type","description":"The type of the input."},"jqQuery":{"type":"null"},"format":{"enum":["date-time","url","email","ipv4","ipv6","yaml","entity","user","team","proto","markdown","multi-line","labeled-url"],"title":"Format","description":"The format of the input."},"blueprint":{"type":"string","title":"Blueprint","description":"When using the `entity` format, this is the identifier of the blueprint whose entities will be selectable via this input."},"dependsOn":{"type":"array","items":{"type":"string"},"title":"Depends On","description":"The identifiers of the inputs that this input depends on. This input will be disabled until they have been given a value."},"visible":{"oneOf":[{"$ref":"#/components/schemas/def-0","description":"A [jq query](https://stedolan.github.io/jq/manual/) that resolves to `true` or `false`, determining the visibility of the input.","title":"jqQuery"},{"type":"boolean","description":"A boolean value determining the visibility of the input.","title":"boolean"}],"title":"Visible","description":"The visibility of the input. Resolves to a boolean value (`true` = visible)."},"icon":{"type":"string","title":"Icon","description":"The icon of the input."},"dataset":{"$ref":"#/components/schemas/def-2","title":"Dataset","description":"The dataset to use for entity selection inputs."},"sort":{"type":"object","title":"Sort","description":"Relevant only for `Entity selection` inputs (`type` = `string` and `format` = `entity`).<br/>This input allows you to sort the entities in the dropdown by a specific property.","properties":{"property":{"type":"string","title":"Property","description":"The property by which to sort the entities."},"order":{"type":"string","enum":["ASC","DESC"],"title":"Order","description":"The order in which to sort the entities."}},"required":["property","order"]}},"required":["type"]}},"required":{"oneOf":[{"$ref":"#/components/schemas/def-0","description":"A jq query that runs on the action's inputs and resolves to a boolean value (`true` = required).","title":"jqQuery"},{"type":"array","description":"The identifiers of the required inputs.","items":{"type":"string"},"title":"array"}]},"titles":{"type":"object","propertyNames":{"pattern":"^[A-Za-z0-9@_=\\\\-]+$"},"additionalProperties":{"type":"object","properties":{"title":{"type":"string","maxLength":140,"minLength":1},"description":{"type":"string","maxLength":1000},"visible":{"anyOf":[{"type":"boolean"},{"$ref":"#/components/schemas/def-0"}]}}}},"steps":{"type":"array","description":"The steps of the user inputs. Each step is an object containing its title and the order of its properties.","items":{"type":"object","properties":{"title":{"type":"string","description":"The title of the step."},"order":{"type":"array","description":"The order of the properties in the step - an array of property identifiers.","items":{"type":"string"}},"visible":{"oneOf":[{"$ref":"#/components/schemas/def-0","description":"A [jq query](https://stedolan.github.io/jq/manual/) that resolves to `true` or `false`, determining the visibility of the step.","title":"jqQuery"},{"type":"boolean","description":"A boolean value determining the visibility of the step.","title":"boolean"}],"title":"Visible","description":"The visibility of the step. Resolves to a boolean value (`true` = visible)."}},"required":["title"],"additionalProperties":false}}},"required":["properties","steps"],"additionalProperties":false}],"description":"The [user inputs](https://docs.port.io/workflows/actions-and-automations/create-self-service-experiences/setup-ui-for-action/user-inputs/) of the action."},"actionCardButtonText":{"type":"string","maxLength":15,"minLength":1,"pattern":"^[^\\s].*[^\\s]$"},"executeActionButtonText":{"type":"string","maxLength":15,"minLength":1,"pattern":"^[^\\s].*[^\\s]$"}},"required":["type","userInputs","operation"],"additionalProperties":false,"title":"Self-service (CREATE)"},{"type":"object","description":"The trigger definition of the action.","properties":{"type":{"type":"string","enum":["automation"]},"event":{"description":"The [event](https://docs.port.io/workflows/actions-and-automations/define-automations/setup-trigger) that triggers the action.","oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["ENTITY_CREATED"]},"blueprintIdentifier":{"type":"string","description":"The identifier of the blueprint whose entities will trigger the automation."}},"required":["type","blueprintIdentifier"],"additionalProperties":false,"title":"Entity created"},{"type":"object","properties":{"type":{"type":"string","enum":["ENTITY_UPDATED"]},"blueprintIdentifier":{"type":"string","description":"The identifier of the blueprint whose entities will trigger the automation."}},"required":["type","blueprintIdentifier"],"additionalProperties":false,"title":"Entity updated"},{"type":"object","properties":{"type":{"type":"string","enum":["ENTITY_DELETED"]},"blueprintIdentifier":{"type":"string","description":"The identifier of the blueprint whose entities will trigger the automation."}},"required":["type","blueprintIdentifier"],"additionalProperties":false,"title":"Entity deleted"},{"type":"object","properties":{"type":{"type":"string","enum":["TIMER_PROPERTY_EXPIRED"]},"blueprintIdentifier":{"type":"string","description":"The identifier of the blueprint whose entities will trigger the automation."},"propertyIdentifier":{"type":"string","description":"The identifier of the timer property in the specified blueprint."}},"required":["type","blueprintIdentifier","propertyIdentifier"],"additionalProperties":false,"title":"Timer property expired"},{"type":"object","properties":{"type":{"type":"string","enum":["ANY_ENTITY_CHANGE"]},"blueprintIdentifier":{"type":"string","description":"The identifier of the blueprint whose entities will trigger the automation."}},"required":["type","blueprintIdentifier"],"additionalProperties":false,"title":"Any entity change"},{"type":"object","properties":{"type":{"type":"string","enum":["RUN_CREATED"]},"actionIdentifier":{"type":"string"}},"required":["type","actionIdentifier"],"additionalProperties":false,"title":"Run created"},{"type":"object","properties":{"type":{"type":"string","enum":["RUN_UPDATED"]},"actionIdentifier":{"type":"string"}},"required":["type","actionIdentifier"],"additionalProperties":false,"title":"Run updated"},{"type":"object","properties":{"type":{"type":"string","enum":["ANY_RUN_CHANGE"]},"actionIdentifier":{"type":"string"}},"required":["type","actionIdentifier"],"additionalProperties":false,"title":"Any run change"}]},"condition":{"description":"Filters used to include/exclude specific entities from the automation.","oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["JQ"]},"expressions":{"type":"array","items":{"type":"string"},"description":"An array of [jq expressions](https://docs.port.io/context-lake/consuming-the-lake/search-and-query/structure-and-syntax) used to filter entities.<br/>Read more [here](https://docs.port.io/workflows/actions-and-automations/define-automations/setup-trigger#conditions)."},"combinator":{"type":"string","enum":["and","or"]}},"required":["type","expressions"],"additionalProperties":false,"title":"JQ"}]}},"required":["type","event"],"additionalProperties":false,"title":"Automation"}]},"invocationMethod":{"description":"Details the action's backend type and details.","oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["KAFKA"]},"payload":{"description":"An object containing the [action payload](https://docs.port.io/workflows/actions-and-automations/create-self-service-experiences/setup-the-backend/#define-the-payload).","oneOf":[{"type":"array"},{"type":"object"}]}},"required":["type"],"additionalProperties":false,"title":"Kafka"},{"type":"object","properties":{"type":{"type":"string","enum":["WEBHOOK"]},"url":{"type":"string","description":"The URL of the webhook."},"agent":{"oneOf":[{"type":"boolean"},{"type":"string"}],"description":"If `true`, Port's [execution agent](https://docs.port.io/workflows/actions-and-automations/setup-backend/webhook/port-execution-agent/) will be used to handle invocations of this action."},"synchronized":{"oneOf":[{"type":"boolean"},{"type":"string"}],"description":"If `true`, the action will be executed [synchronously](https://docs.port.io/workflows/actions-and-automations/setup-backend/webhook/#sync-vs-async-execution)."},"method":{"type":"string","description":"The HTTP method of the webhook (`POST`, `PUT`, `PATCH`, or `DELETE`)."},"headers":{"type":"object","additionalProperties":{"type":"string"},"description":"A JSON object containing the headers to be sent to the webhook in each execution, in `\"key\"`:`\"value\"` pairs."},"body":{"oneOf":[{"type":"array"},{"type":"object"}],"description":"The body sent to the webhook in each execution. This is where the [action payload](https://docs.port.io/workflows/actions-and-automations/create-self-service-experiences/setup-the-backend/#define-the-payload) is specified."}},"required":["type","url"],"additionalProperties":false,"title":"Webhook"},{"type":"object","properties":{"type":{"type":"string","enum":["GITHUB"]},"org":{"type":"string"},"repo":{"type":"string"},"workflow":{"type":"string"},"workflowInputs":{"type":"object"},"reportWorkflowStatus":{"oneOf":[{"type":"boolean"},{"type":"string"}]}},"required":["type","org","repo","workflow"],"additionalProperties":false,"title":"GitHub"},{"type":"object","properties":{"type":{"type":"string","enum":["INTEGRATION_ACTION"]},"installationId":{"type":"string"},"integrationActionType":{"type":"string","enum":["dispatch_workflow","trigger_pipeline","update_repo_external_custom_properties"]},"integrationActionExecutionProperties":{"type":"object"}},"required":["type","installationId","integrationActionType","integrationActionExecutionProperties"],"additionalProperties":false,"title":"Integration Action"},{"type":"object","properties":{"type":{"type":"string","enum":["GITLAB"]},"projectName":{"type":"string"},"groupName":{"type":"string"},"defaultRef":{"type":"string"},"pipelineVariables":{"type":"object"}},"required":["type","projectName","groupName"],"additionalProperties":false,"title":"GitLab"},{"type":"object","properties":{"type":{"type":"string","enum":["AZURE_DEVOPS"]},"webhook":{"type":"string"},"org":{"type":"string"},"payload":{"oneOf":[{"type":"array"},{"type":"object"}]}},"required":["type","webhook","org"],"additionalProperties":false,"title":"Azure DevOps"},{"type":"object","properties":{"type":{"type":"string","enum":["UPSERT_ENTITY"]},"blueprintIdentifier":{"type":"string"},"mapping":{"type":"object","properties":{"identifier":{"type":"string"},"title":{"type":"string"},"team":{"oneOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"icon":{"type":"string"},"properties":{"type":"object"},"relations":{"type":"object","additionalProperties":{"oneOf":[{"type":"string"},{"type":"array","items":{"type":"string"}},{"type":"null"}]}}},"required":[]}},"required":["type","blueprintIdentifier","mapping"],"additionalProperties":false,"title":"Upsert Entity"}]},"requiredApproval":{"description":"Determines whether the action requires approval before execution.<br/>Choose `ALL` to require all specified users to approve the action, or `ANY` to require only one.","oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["ANY","ALL"]}},"required":["type"],"additionalProperties":false,"title":"User/s"},{"type":"boolean","title":"boolean"}]},"approvalNotification":{"type":"object","description":"The notification configuration for the approval process. Relevant only if `requiredApproval` is set to `true`.","properties":{"type":{"type":"string","enum":["webhook","email","none"],"default":"email"}},"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["webhook"]},"format":{"type":"string","enum":["json","slack"]},"url":{"type":"string","format":"uri"}},"required":["type","url"],"additionalProperties":false,"title":"Webhook"},{"type":"object","properties":{"type":{"type":"string","enum":["email"]}},"required":["type"],"additionalProperties":false,"title":"Email"},{"type":"object","properties":{"type":{"type":"string","enum":["none"]}},"required":["type"],"additionalProperties":false,"title":"None"}],"required":["type"]},"publish":{"type":"boolean","description":"Only relevant for **automations**. If `false`, the automation will be inactive (will not be triggered)."},"allowAnyoneToViewRuns":{"type":"boolean","description":"Whether members can view the runs of this action."}},"additionalProperties":false,"required":["identifier","trigger","invocationMethod"]}}},"required":true},"security":[{"bearer":["create:actions"]}],"x-should-be-exposed-to-customers":true,"responses":{"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}},"413":{"description":"Request body is too large (limit is 1MiB)","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false,"description":"Request body is too large (limit is 1MiB)"}}}},"422":{"description":"The json provided does not match the route's schema","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"The json provided does not match the route's schema"}}}}}},"get":{"summary":"Get actions/automations","tags":["Actions"],"description":"This route allows you to fetch one or more self-service actions and/or automations in your Port account.<br/><br/>The call will perform a logical `AND` between all query parameters below, and return all actions and automations that match the criteria.<br/><br/>To learn more about actions and automations, check out the [documentation](https://docs.port.io/workflows/actions-and-automations/overview/).","parameters":[{"schema":{"type":"array","items":{"type":"string"}},"in":"query","name":"action_identifier","required":false,"description":"The identifier/s of the action/s and/or automation/s you want to fetch."},{"schema":{"type":"array","items":{"type":"string"}},"in":"query","name":"blueprint_identifier","required":false,"description":"The identifier/s of the blueprint/s whose actions/automations you wish to fetch."},{"schema":{"type":"array","items":{"type":"string","enum":["DAY-2","DELETE","CREATE"]}},"in":"query","name":"operation","required":false,"description":"The [operation type/s](https://docs.port.io/workflows/actions-and-automations/create-self-service-experiences/setup-ui-for-action/#basic-details) of the action/s you want to fetch. Relevant only for self-service actions."},{"schema":{"type":"boolean"},"in":"query","name":"published","required":false,"description":"Only relevant for **automations**. If `true`, only published automations will be fetched."},{"schema":{"type":"string","enum":["self-service","automation"]},"in":"query","name":"trigger_type","required":false},{"schema":{"type":"array","items":{"type":"string","enum":["ENTITY_CREATED","ENTITY_UPDATED","ENTITY_DELETED","TIMER_PROPERTY_EXPIRED","ANY_ENTITY_CHANGE","RUN_CREATED","RUN_UPDATED","ANY_RUN_CHANGE"]}},"in":"query","name":"trigger_event","required":false,"description":"The event/s that triggered the automation/s you want to fetch. Relevant only for automations."},{"schema":{"type":"array","items":{"type":"string"}},"in":"query","name":"trigger_event_action_identifier","required":false},{"schema":{"type":"string","enum":["v1","v2"]},"in":"query","name":"version","required":false,"description":"Specifies the API version to use. Please use `v2` for the latest version of the API."}],"security":[{"bearer":["read:actions"]}],"x-should-be-exposed-to-customers":true,"responses":{"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}}}}},"/v1/actions/{action_identifier}":{"put":{"summary":"Change an action/automation","tags":["Actions"],"description":"This route allows you to change the details of an existing self-service action or automation in your Port account.<br/><br/>To learn more about actions and automations, check out the [documentation](https://docs.port.io/workflows/actions-and-automations/overview/).","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"identifier":{"type":"string","pattern":"^(?!\\.{1,2}$)[\\p{L}0-9@_.+:=-]+$","description":"The identifier of the action."},"title":{"type":"string","description":"The title of the action."},"icon":{"type":"string","description":"The icon of the action."},"description":{"type":"string","description":"The description of the action."},"trigger":{"oneOf":[{"type":"object","description":"The trigger definition of the action.","properties":{"operation":{"type":"string","enum":["DAY-2","DELETE"],"description":"The [operation type](https://docs.port.io/workflows/actions-and-automations/create-self-service-experiences/setup-ui-for-action/#basic-details) of the action."},"type":{"type":"string","enum":["self-service"]},"blueprintIdentifier":{"type":"string","description":"The identifier of the blueprint that the action is associated with.<br/>Note that this is optional, as actions do not have to be tied directly to a blueprint."},"userInputs":{"oneOf":[{"type":"object","title":"Default order","description":"Use this option when you don't want to define a custom order/steps for the user inputs.","properties":{"properties":{"type":"object","propertyNames":{"pattern":"^[A-Za-z0-9@_=\\\\-]+$"},"additionalProperties":{"type":"object","properties":{"type":{"enum":["string","number","boolean","object","array"],"title":"Type","description":"The type of the input."},"jqQuery":{"type":"null"},"format":{"enum":["date-time","url","email","ipv4","ipv6","yaml","entity","user","team","proto","markdown","multi-line","labeled-url"],"title":"Format","description":"The format of the input."},"blueprint":{"type":"string","title":"Blueprint","description":"When using the `entity` format, this is the identifier of the blueprint whose entities will be selectable via this input."},"dependsOn":{"type":"array","items":{"type":"string"},"title":"Depends On","description":"The identifiers of the inputs that this input depends on. This input will be disabled until they have been given a value."},"visible":{"oneOf":[{"$ref":"#/components/schemas/def-0","description":"A [jq query](https://stedolan.github.io/jq/manual/) that resolves to `true` or `false`, determining the visibility of the input.","title":"jqQuery"},{"type":"boolean","description":"A boolean value determining the visibility of the input.","title":"boolean"}],"title":"Visible","description":"The visibility of the input. Resolves to a boolean value (`true` = visible)."},"icon":{"type":"string","title":"Icon","description":"The icon of the input."},"dataset":{"$ref":"#/components/schemas/def-2","title":"Dataset","description":"The dataset to use for entity selection inputs."},"sort":{"type":"object","title":"Sort","description":"Relevant only for `Entity selection` inputs (`type` = `string` and `format` = `entity`).<br/>This input allows you to sort the entities in the dropdown by a specific property.","properties":{"property":{"type":"string","title":"Property","description":"The property by which to sort the entities."},"order":{"type":"string","enum":["ASC","DESC"],"title":"Order","description":"The order in which to sort the entities."}},"required":["property","order"]}},"required":["type"]}},"titles":{"type":"object","propertyNames":{"pattern":"^[A-Za-z0-9@_=\\\\-]+$"},"additionalProperties":{"type":"object","properties":{"title":{"type":"string","maxLength":140,"minLength":1},"description":{"type":"string","maxLength":1000},"visible":{"anyOf":[{"type":"boolean"},{"$ref":"#/components/schemas/def-0"}]}}}},"required":{"oneOf":[{"$ref":"#/components/schemas/def-0","description":"A jq query that runs on the action's inputs and resolves to a boolean value (`true` = required).","title":"jqQuery"},{"type":"array","description":"The identifiers of the required inputs.","items":{"type":"string"},"title":"array"}]}},"required":["properties"],"additionalProperties":false},{"type":"object","title":"Custom order","description":"Use this option when you want to define a custom order for the user inputs.","properties":{"properties":{"type":"object","propertyNames":{"pattern":"^[A-Za-z0-9@_=\\\\-]+$"},"additionalProperties":{"type":"object","properties":{"type":{"enum":["string","number","boolean","object","array"],"title":"Type","description":"The type of the input."},"jqQuery":{"type":"null"},"format":{"enum":["date-time","url","email","ipv4","ipv6","yaml","entity","user","team","proto","markdown","multi-line","labeled-url"],"title":"Format","description":"The format of the input."},"blueprint":{"type":"string","title":"Blueprint","description":"When using the `entity` format, this is the identifier of the blueprint whose entities will be selectable via this input."},"dependsOn":{"type":"array","items":{"type":"string"},"title":"Depends On","description":"The identifiers of the inputs that this input depends on. This input will be disabled until they have been given a value."},"visible":{"oneOf":[{"$ref":"#/components/schemas/def-0","description":"A [jq query](https://stedolan.github.io/jq/manual/) that resolves to `true` or `false`, determining the visibility of the input.","title":"jqQuery"},{"type":"boolean","description":"A boolean value determining the visibility of the input.","title":"boolean"}],"title":"Visible","description":"The visibility of the input. Resolves to a boolean value (`true` = visible)."},"icon":{"type":"string","title":"Icon","description":"The icon of the input."},"dataset":{"$ref":"#/components/schemas/def-2","title":"Dataset","description":"The dataset to use for entity selection inputs."},"sort":{"type":"object","title":"Sort","description":"Relevant only for `Entity selection` inputs (`type` = `string` and `format` = `entity`).<br/>This input allows you to sort the entities in the dropdown by a specific property.","properties":{"property":{"type":"string","title":"Property","description":"The property by which to sort the entities."},"order":{"type":"string","enum":["ASC","DESC"],"title":"Order","description":"The order in which to sort the entities."}},"required":["property","order"]}},"required":["type"]}},"required":{"oneOf":[{"$ref":"#/components/schemas/def-0","description":"A jq query that runs on the action's inputs and resolves to a boolean value (`true` = required).","title":"jqQuery"},{"type":"array","description":"The identifiers of the required inputs.","items":{"type":"string"},"title":"array"}]},"titles":{"type":"object","propertyNames":{"pattern":"^[A-Za-z0-9@_=\\\\-]+$"},"additionalProperties":{"type":"object","properties":{"title":{"type":"string","maxLength":140,"minLength":1},"description":{"type":"string","maxLength":1000},"visible":{"anyOf":[{"type":"boolean"},{"$ref":"#/components/schemas/def-0"}]}}}},"order":{"type":"array","items":{"type":"string"}}},"required":["properties","order"],"additionalProperties":false},{"type":"object","title":"Custom steps","description":"Use this option when you want to define custom steps for the user inputs.","properties":{"properties":{"type":"object","propertyNames":{"pattern":"^[A-Za-z0-9@_=\\\\-]+$"},"additionalProperties":{"type":"object","properties":{"type":{"enum":["string","number","boolean","object","array"],"title":"Type","description":"The type of the input."},"jqQuery":{"type":"null"},"format":{"enum":["date-time","url","email","ipv4","ipv6","yaml","entity","user","team","proto","markdown","multi-line","labeled-url"],"title":"Format","description":"The format of the input."},"blueprint":{"type":"string","title":"Blueprint","description":"When using the `entity` format, this is the identifier of the blueprint whose entities will be selectable via this input."},"dependsOn":{"type":"array","items":{"type":"string"},"title":"Depends On","description":"The identifiers of the inputs that this input depends on. This input will be disabled until they have been given a value."},"visible":{"oneOf":[{"$ref":"#/components/schemas/def-0","description":"A [jq query](https://stedolan.github.io/jq/manual/) that resolves to `true` or `false`, determining the visibility of the input.","title":"jqQuery"},{"type":"boolean","description":"A boolean value determining the visibility of the input.","title":"boolean"}],"title":"Visible","description":"The visibility of the input. Resolves to a boolean value (`true` = visible)."},"icon":{"type":"string","title":"Icon","description":"The icon of the input."},"dataset":{"$ref":"#/components/schemas/def-2","title":"Dataset","description":"The dataset to use for entity selection inputs."},"sort":{"type":"object","title":"Sort","description":"Relevant only for `Entity selection` inputs (`type` = `string` and `format` = `entity`).<br/>This input allows you to sort the entities in the dropdown by a specific property.","properties":{"property":{"type":"string","title":"Property","description":"The property by which to sort the entities."},"order":{"type":"string","enum":["ASC","DESC"],"title":"Order","description":"The order in which to sort the entities."}},"required":["property","order"]}},"required":["type"]}},"required":{"oneOf":[{"$ref":"#/components/schemas/def-0","description":"A jq query that runs on the action's inputs and resolves to a boolean value (`true` = required).","title":"jqQuery"},{"type":"array","description":"The identifiers of the required inputs.","items":{"type":"string"},"title":"array"}]},"titles":{"type":"object","propertyNames":{"pattern":"^[A-Za-z0-9@_=\\\\-]+$"},"additionalProperties":{"type":"object","properties":{"title":{"type":"string","maxLength":140,"minLength":1},"description":{"type":"string","maxLength":1000},"visible":{"anyOf":[{"type":"boolean"},{"$ref":"#/components/schemas/def-0"}]}}}},"steps":{"type":"array","description":"The steps of the user inputs. Each step is an object containing its title and the order of its properties.","items":{"type":"object","properties":{"title":{"type":"string","description":"The title of the step."},"order":{"type":"array","description":"The order of the properties in the step - an array of property identifiers.","items":{"type":"string"}},"visible":{"oneOf":[{"$ref":"#/components/schemas/def-0","description":"A [jq query](https://stedolan.github.io/jq/manual/) that resolves to `true` or `false`, determining the visibility of the step.","title":"jqQuery"},{"type":"boolean","description":"A boolean value determining the visibility of the step.","title":"boolean"}],"title":"Visible","description":"The visibility of the step. Resolves to a boolean value (`true` = visible)."}},"required":["title"],"additionalProperties":false}}},"required":["properties","steps"],"additionalProperties":false}],"description":"The [user inputs](https://docs.port.io/workflows/actions-and-automations/create-self-service-experiences/setup-ui-for-action/user-inputs/) of the action."},"actionCardButtonText":{"type":"string","maxLength":15,"minLength":1,"pattern":"^[^\\s].*[^\\s]$"},"executeActionButtonText":{"type":"string","maxLength":15,"minLength":1,"pattern":"^[^\\s].*[^\\s]$"},"condition":{"type":"object","description":"Filters used to include/exclude specific entities from the action.","additionalProperties":false,"properties":{"type":{"type":"string","enum":["SEARCH"]},"rules":{"type":"array","items":{"anyOf":[{"type":"object","title":"Date Rule","properties":{"property":{"title":"Contexted property","oneOf":[{"type":"string"},{"type":"object","title":"User-context field","properties":{"property":{"type":"string"},"context":{"type":"string","enum":["user","userTeams"]}},"required":["property","context"]}]},"operator":{"enum":["between","notBetween","="]},"value":{"type":"object","oneOf":[{"type":"object","title":"Date Range","properties":{"from":{"type":"string","format":"date-time"},"to":{"type":"string","format":"date-time"}},"required":["from","to"]},{"type":"object","title":"Date Preset","properties":{"preset":{"type":"string","enum":["today","tomorrow","yesterday","lastDay","lastWeek","last2Weeks","lastMonth","last3Months","last6Months","last12Months","last2Years","last3Years","nextDay","nextWeek","next2Weeks","nextMonth","next3Months","next6Months","next12Months"]}},"required":["preset"]},{"type":"object","title":"User-context field","properties":{"property":{"type":"string"},"context":{"type":"string","enum":["user","userTeams"]}},"required":["property","context"]}]}},"required":["property","operator","value"],"additionalProperties":false},{"type":"object","title":"Empty Rule","oneOf":[{"type":"object","title":"Empty Rule","properties":{"operator":{"enum":["isEmpty","isNotEmpty"]},"property":{"type":"string"}},"required":["operator","property"],"additionalProperties":false}]},{"type":"object","title":"Number Rule","properties":{"property":{"title":"Contexted property","oneOf":[{"type":"string"},{"type":"object","title":"User-context field","properties":{"property":{"type":"string"},"context":{"type":"string","enum":["user","userTeams"]}},"required":["property","context"]}]},"operator":{"enum":[">",">=","<","<="]},"value":{"anyOf":[{"type":"number","title":"number"},{"type":"string","format":"date-time","title":"date-time"},{"type":"object","title":"User-context field","properties":{"property":{"type":"string"},"context":{"type":"string","enum":["user","userTeams"]}},"required":["property","context"]}]}},"required":["property","operator","value"],"additionalProperties":false},{"type":"object","title":"Expired Rule","oneOf":[{"type":"object","title":"Expired Rule","properties":{"operator":{"enum":["isExpired","isNotExpired"]},"property":{"type":"string"}},"required":["operator","property"],"additionalProperties":false}]},{"type":"object","title":"String Rule","oneOf":[{"type":"object","title":"String Rule","properties":{"property":{"title":"Contexted property","oneOf":[{"type":"string"},{"type":"object","title":"User-context field","properties":{"property":{"type":"string"},"context":{"type":"string","enum":["user","userTeams"]}},"required":["property","context"]}]},"operator":{"enum":["=","!=","containsAny","contains","doesNotContains","beginsWith","doesNotBeginsWith","endsWith","doesNotEndsWith","in","notIn"]},"value":{"anyOf":[{"type":"null","title":"null"},{"type":"string","title":"string"},{"type":"number","title":"number"},{"type":"boolean","title":"boolean"},{"type":"string","format":"date-time","title":"date-time"},{"type":"array","items":{"type":"string"},"title":"array"},{"type":"array","items":{"type":"number"},"title":"array"},{"type":"array","items":{"type":"boolean"},"title":"array"},{"type":"array","items":{"type":"string","format":"date-time"},"title":"array"},{"type":"object","title":"User-context field","properties":{"property":{"type":"string"},"context":{"type":"string","enum":["user","userTeams"]}},"required":["property","context"]}]}},"additionalProperties":false,"required":["property","operator","value"]}]},{"type":"object","title":"Relation Rule","properties":{"operator":{"enum":["relatedTo"]},"blueprint":{"type":"string"},"value":{"anyOf":[{"type":"string","title":"string"},{"type":"array","items":{"type":"string"},"title":"array"}]},"direction":{"enum":["upstream","downstream"]},"required":{"type":"boolean"}},"additionalProperties":false,"required":["operator","value","blueprint"]},{"type":"object","title":"Property schema rule","properties":{"propertySchema":{"type":"object","properties":{"type":{"type":"string"},"format":{"type":"string"},"items":{"type":"object","properties":{"type":{"type":"string"},"format":{"type":"string"}},"required":["type"]}},"required":["type"],"additionalProperties":false},"operator":{"enum":["=","!=","contains"]},"value":{"anyOf":[{"type":"null","title":"null"},{"type":"string","title":"string"},{"type":"number","title":"number"},{"type":"boolean","title":"boolean"}]}},"required":["operator","propertySchema"],"additionalProperties":false},{"type":"object","title":"matchAny Rule","anyOf":[{"type":"object","title":"Property matchAny rule","properties":{"property":{"oneOf":[{"type":"object","title":"Path filter property","properties":{"path":{"type":"array","minItems":1,"items":{"anyOf":[{"type":"string","title":"Relation identifier"},{"type":"object","title":"Relation with max hops","properties":{"relation":{"type":"string"},"maxHops":{"type":"number","minimum":1,"maximum":15}}}]}},"fromBlueprint":{"type":"string"}},"required":["path"],"additionalProperties":false},{"title":"Contexted property","oneOf":[{"type":"string"},{"type":"object","title":"User-context field","properties":{"property":{"type":"string"},"context":{"type":"string","enum":["user","userTeams"]}},"required":["property","context"]}]}]},"operator":{"type":"string","enum":["matchAny"]},"value":{"anyOf":[{"type":"array","items":{"type":"string"}},{"title":"Contexted property","oneOf":[{"type":"string"},{"type":"object","title":"User-context field","properties":{"property":{"type":"string"},"context":{"type":"string","enum":["user","userTeams"]}},"required":["property","context"]}]}]}},"required":["property","operator","value"],"additionalProperties":false}]},{"allOf":[{"$ref":"#/components/schemas/def-1"},{"title":"Nested query"}]}]}},"combinator":{"type":"string","enum":["and","or"]}},"required":["type","rules","combinator"]}},"dependencies":{"condition":["blueprintIdentifier"]},"required":["type","userInputs","operation"],"additionalProperties":false,"title":"Self-service (DAY-2/DELETE)"},{"type":"object","description":"The trigger definition of the action.","properties":{"operation":{"type":"string","enum":["CREATE"],"description":"The [operation type](https://docs.port.io/workflows/actions-and-automations/create-self-service-experiences/setup-ui-for-action/#basic-details) of the action."},"type":{"type":"string","enum":["self-service"]},"blueprintIdentifier":{"type":"string","description":"The identifier of the blueprint that the action is associated with.<br/>Note that this is optional, as actions do not have to be tied directly to a blueprint."},"userInputs":{"oneOf":[{"type":"object","title":"Default order","description":"Use this option when you don't want to define a custom order/steps for the user inputs.","properties":{"properties":{"type":"object","propertyNames":{"pattern":"^[A-Za-z0-9@_=\\\\-]+$"},"additionalProperties":{"type":"object","properties":{"type":{"enum":["string","number","boolean","object","array"],"title":"Type","description":"The type of the input."},"jqQuery":{"type":"null"},"format":{"enum":["date-time","url","email","ipv4","ipv6","yaml","entity","user","team","proto","markdown","multi-line","labeled-url"],"title":"Format","description":"The format of the input."},"blueprint":{"type":"string","title":"Blueprint","description":"When using the `entity` format, this is the identifier of the blueprint whose entities will be selectable via this input."},"dependsOn":{"type":"array","items":{"type":"string"},"title":"Depends On","description":"The identifiers of the inputs that this input depends on. This input will be disabled until they have been given a value."},"visible":{"oneOf":[{"$ref":"#/components/schemas/def-0","description":"A [jq query](https://stedolan.github.io/jq/manual/) that resolves to `true` or `false`, determining the visibility of the input.","title":"jqQuery"},{"type":"boolean","description":"A boolean value determining the visibility of the input.","title":"boolean"}],"title":"Visible","description":"The visibility of the input. Resolves to a boolean value (`true` = visible)."},"icon":{"type":"string","title":"Icon","description":"The icon of the input."},"dataset":{"$ref":"#/components/schemas/def-2","title":"Dataset","description":"The dataset to use for entity selection inputs."},"sort":{"type":"object","title":"Sort","description":"Relevant only for `Entity selection` inputs (`type` = `string` and `format` = `entity`).<br/>This input allows you to sort the entities in the dropdown by a specific property.","properties":{"property":{"type":"string","title":"Property","description":"The property by which to sort the entities."},"order":{"type":"string","enum":["ASC","DESC"],"title":"Order","description":"The order in which to sort the entities."}},"required":["property","order"]}},"required":["type"]}},"titles":{"type":"object","propertyNames":{"pattern":"^[A-Za-z0-9@_=\\\\-]+$"},"additionalProperties":{"type":"object","properties":{"title":{"type":"string","maxLength":140,"minLength":1},"description":{"type":"string","maxLength":1000},"visible":{"anyOf":[{"type":"boolean"},{"$ref":"#/components/schemas/def-0"}]}}}},"required":{"oneOf":[{"$ref":"#/components/schemas/def-0","description":"A jq query that runs on the action's inputs and resolves to a boolean value (`true` = required).","title":"jqQuery"},{"type":"array","description":"The identifiers of the required inputs.","items":{"type":"string"},"title":"array"}]}},"required":["properties"],"additionalProperties":false},{"type":"object","title":"Custom order","description":"Use this option when you want to define a custom order for the user inputs.","properties":{"properties":{"type":"object","propertyNames":{"pattern":"^[A-Za-z0-9@_=\\\\-]+$"},"additionalProperties":{"type":"object","properties":{"type":{"enum":["string","number","boolean","object","array"],"title":"Type","description":"The type of the input."},"jqQuery":{"type":"null"},"format":{"enum":["date-time","url","email","ipv4","ipv6","yaml","entity","user","team","proto","markdown","multi-line","labeled-url"],"title":"Format","description":"The format of the input."},"blueprint":{"type":"string","title":"Blueprint","description":"When using the `entity` format, this is the identifier of the blueprint whose entities will be selectable via this input."},"dependsOn":{"type":"array","items":{"type":"string"},"title":"Depends On","description":"The identifiers of the inputs that this input depends on. This input will be disabled until they have been given a value."},"visible":{"oneOf":[{"$ref":"#/components/schemas/def-0","description":"A [jq query](https://stedolan.github.io/jq/manual/) that resolves to `true` or `false`, determining the visibility of the input.","title":"jqQuery"},{"type":"boolean","description":"A boolean value determining the visibility of the input.","title":"boolean"}],"title":"Visible","description":"The visibility of the input. Resolves to a boolean value (`true` = visible)."},"icon":{"type":"string","title":"Icon","description":"The icon of the input."},"dataset":{"$ref":"#/components/schemas/def-2","title":"Dataset","description":"The dataset to use for entity selection inputs."},"sort":{"type":"object","title":"Sort","description":"Relevant only for `Entity selection` inputs (`type` = `string` and `format` = `entity`).<br/>This input allows you to sort the entities in the dropdown by a specific property.","properties":{"property":{"type":"string","title":"Property","description":"The property by which to sort the entities."},"order":{"type":"string","enum":["ASC","DESC"],"title":"Order","description":"The order in which to sort the entities."}},"required":["property","order"]}},"required":["type"]}},"required":{"oneOf":[{"$ref":"#/components/schemas/def-0","description":"A jq query that runs on the action's inputs and resolves to a boolean value (`true` = required).","title":"jqQuery"},{"type":"array","description":"The identifiers of the required inputs.","items":{"type":"string"},"title":"array"}]},"titles":{"type":"object","propertyNames":{"pattern":"^[A-Za-z0-9@_=\\\\-]+$"},"additionalProperties":{"type":"object","properties":{"title":{"type":"string","maxLength":140,"minLength":1},"description":{"type":"string","maxLength":1000},"visible":{"anyOf":[{"type":"boolean"},{"$ref":"#/components/schemas/def-0"}]}}}},"order":{"type":"array","items":{"type":"string"}}},"required":["properties","order"],"additionalProperties":false},{"type":"object","title":"Custom steps","description":"Use this option when you want to define custom steps for the user inputs.","properties":{"properties":{"type":"object","propertyNames":{"pattern":"^[A-Za-z0-9@_=\\\\-]+$"},"additionalProperties":{"type":"object","properties":{"type":{"enum":["string","number","boolean","object","array"],"title":"Type","description":"The type of the input."},"jqQuery":{"type":"null"},"format":{"enum":["date-time","url","email","ipv4","ipv6","yaml","entity","user","team","proto","markdown","multi-line","labeled-url"],"title":"Format","description":"The format of the input."},"blueprint":{"type":"string","title":"Blueprint","description":"When using the `entity` format, this is the identifier of the blueprint whose entities will be selectable via this input."},"dependsOn":{"type":"array","items":{"type":"string"},"title":"Depends On","description":"The identifiers of the inputs that this input depends on. This input will be disabled until they have been given a value."},"visible":{"oneOf":[{"$ref":"#/components/schemas/def-0","description":"A [jq query](https://stedolan.github.io/jq/manual/) that resolves to `true` or `false`, determining the visibility of the input.","title":"jqQuery"},{"type":"boolean","description":"A boolean value determining the visibility of the input.","title":"boolean"}],"title":"Visible","description":"The visibility of the input. Resolves to a boolean value (`true` = visible)."},"icon":{"type":"string","title":"Icon","description":"The icon of the input."},"dataset":{"$ref":"#/components/schemas/def-2","title":"Dataset","description":"The dataset to use for entity selection inputs."},"sort":{"type":"object","title":"Sort","description":"Relevant only for `Entity selection` inputs (`type` = `string` and `format` = `entity`).<br/>This input allows you to sort the entities in the dropdown by a specific property.","properties":{"property":{"type":"string","title":"Property","description":"The property by which to sort the entities."},"order":{"type":"string","enum":["ASC","DESC"],"title":"Order","description":"The order in which to sort the entities."}},"required":["property","order"]}},"required":["type"]}},"required":{"oneOf":[{"$ref":"#/components/schemas/def-0","description":"A jq query that runs on the action's inputs and resolves to a boolean value (`true` = required).","title":"jqQuery"},{"type":"array","description":"The identifiers of the required inputs.","items":{"type":"string"},"title":"array"}]},"titles":{"type":"object","propertyNames":{"pattern":"^[A-Za-z0-9@_=\\\\-]+$"},"additionalProperties":{"type":"object","properties":{"title":{"type":"string","maxLength":140,"minLength":1},"description":{"type":"string","maxLength":1000},"visible":{"anyOf":[{"type":"boolean"},{"$ref":"#/components/schemas/def-0"}]}}}},"steps":{"type":"array","description":"The steps of the user inputs. Each step is an object containing its title and the order of its properties.","items":{"type":"object","properties":{"title":{"type":"string","description":"The title of the step."},"order":{"type":"array","description":"The order of the properties in the step - an array of property identifiers.","items":{"type":"string"}},"visible":{"oneOf":[{"$ref":"#/components/schemas/def-0","description":"A [jq query](https://stedolan.github.io/jq/manual/) that resolves to `true` or `false`, determining the visibility of the step.","title":"jqQuery"},{"type":"boolean","description":"A boolean value determining the visibility of the step.","title":"boolean"}],"title":"Visible","description":"The visibility of the step. Resolves to a boolean value (`true` = visible)."}},"required":["title"],"additionalProperties":false}}},"required":["properties","steps"],"additionalProperties":false}],"description":"The [user inputs](https://docs.port.io/workflows/actions-and-automations/create-self-service-experiences/setup-ui-for-action/user-inputs/) of the action."},"actionCardButtonText":{"type":"string","maxLength":15,"minLength":1,"pattern":"^[^\\s].*[^\\s]$"},"executeActionButtonText":{"type":"string","maxLength":15,"minLength":1,"pattern":"^[^\\s].*[^\\s]$"}},"required":["type","userInputs","operation"],"additionalProperties":false,"title":"Self-service (CREATE)"},{"type":"object","description":"The trigger definition of the action.","properties":{"type":{"type":"string","enum":["automation"]},"event":{"description":"The [event](https://docs.port.io/workflows/actions-and-automations/define-automations/setup-trigger) that triggers the action.","oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["ENTITY_CREATED"]},"blueprintIdentifier":{"type":"string","description":"The identifier of the blueprint whose entities will trigger the automation."}},"required":["type","blueprintIdentifier"],"additionalProperties":false,"title":"Entity created"},{"type":"object","properties":{"type":{"type":"string","enum":["ENTITY_UPDATED"]},"blueprintIdentifier":{"type":"string","description":"The identifier of the blueprint whose entities will trigger the automation."}},"required":["type","blueprintIdentifier"],"additionalProperties":false,"title":"Entity updated"},{"type":"object","properties":{"type":{"type":"string","enum":["ENTITY_DELETED"]},"blueprintIdentifier":{"type":"string","description":"The identifier of the blueprint whose entities will trigger the automation."}},"required":["type","blueprintIdentifier"],"additionalProperties":false,"title":"Entity deleted"},{"type":"object","properties":{"type":{"type":"string","enum":["TIMER_PROPERTY_EXPIRED"]},"blueprintIdentifier":{"type":"string","description":"The identifier of the blueprint whose entities will trigger the automation."},"propertyIdentifier":{"type":"string","description":"The identifier of the timer property in the specified blueprint."}},"required":["type","blueprintIdentifier","propertyIdentifier"],"additionalProperties":false,"title":"Timer property expired"},{"type":"object","properties":{"type":{"type":"string","enum":["ANY_ENTITY_CHANGE"]},"blueprintIdentifier":{"type":"string","description":"The identifier of the blueprint whose entities will trigger the automation."}},"required":["type","blueprintIdentifier"],"additionalProperties":false,"title":"Any entity change"},{"type":"object","properties":{"type":{"type":"string","enum":["RUN_CREATED"]},"actionIdentifier":{"type":"string"}},"required":["type","actionIdentifier"],"additionalProperties":false,"title":"Run created"},{"type":"object","properties":{"type":{"type":"string","enum":["RUN_UPDATED"]},"actionIdentifier":{"type":"string"}},"required":["type","actionIdentifier"],"additionalProperties":false,"title":"Run updated"},{"type":"object","properties":{"type":{"type":"string","enum":["ANY_RUN_CHANGE"]},"actionIdentifier":{"type":"string"}},"required":["type","actionIdentifier"],"additionalProperties":false,"title":"Any run change"}]},"condition":{"description":"Filters used to include/exclude specific entities from the automation.","oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["JQ"]},"expressions":{"type":"array","items":{"type":"string"},"description":"An array of [jq expressions](https://docs.port.io/context-lake/consuming-the-lake/search-and-query/structure-and-syntax) used to filter entities.<br/>Read more [here](https://docs.port.io/workflows/actions-and-automations/define-automations/setup-trigger#conditions)."},"combinator":{"type":"string","enum":["and","or"]}},"required":["type","expressions"],"additionalProperties":false,"title":"JQ"}]}},"required":["type","event"],"additionalProperties":false,"title":"Automation"}]},"invocationMethod":{"description":"Details the action's backend type and details.","oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["KAFKA"]},"payload":{"description":"An object containing the [action payload](https://docs.port.io/workflows/actions-and-automations/create-self-service-experiences/setup-the-backend/#define-the-payload).","oneOf":[{"type":"array"},{"type":"object"}]}},"required":["type"],"additionalProperties":false,"title":"Kafka"},{"type":"object","properties":{"type":{"type":"string","enum":["WEBHOOK"]},"url":{"type":"string","description":"The URL of the webhook."},"agent":{"oneOf":[{"type":"boolean"},{"type":"string"}],"description":"If `true`, Port's [execution agent](https://docs.port.io/workflows/actions-and-automations/setup-backend/webhook/port-execution-agent/) will be used to handle invocations of this action."},"synchronized":{"oneOf":[{"type":"boolean"},{"type":"string"}],"description":"If `true`, the action will be executed [synchronously](https://docs.port.io/workflows/actions-and-automations/setup-backend/webhook/#sync-vs-async-execution)."},"method":{"type":"string","description":"The HTTP method of the webhook (`POST`, `PUT`, `PATCH`, or `DELETE`)."},"headers":{"type":"object","additionalProperties":{"type":"string"},"description":"A JSON object containing the headers to be sent to the webhook in each execution, in `\"key\"`:`\"value\"` pairs."},"body":{"oneOf":[{"type":"array"},{"type":"object"}],"description":"The body sent to the webhook in each execution. This is where the [action payload](https://docs.port.io/workflows/actions-and-automations/create-self-service-experiences/setup-the-backend/#define-the-payload) is specified."}},"required":["type","url"],"additionalProperties":false,"title":"Webhook"},{"type":"object","properties":{"type":{"type":"string","enum":["GITHUB"]},"org":{"type":"string"},"repo":{"type":"string"},"workflow":{"type":"string"},"workflowInputs":{"type":"object"},"reportWorkflowStatus":{"oneOf":[{"type":"boolean"},{"type":"string"}]}},"required":["type","org","repo","workflow"],"additionalProperties":false,"title":"GitHub"},{"type":"object","properties":{"type":{"type":"string","enum":["INTEGRATION_ACTION"]},"installationId":{"type":"string"},"integrationActionType":{"type":"string","enum":["dispatch_workflow","trigger_pipeline","update_repo_external_custom_properties"]},"integrationActionExecutionProperties":{"type":"object"}},"required":["type","installationId","integrationActionType","integrationActionExecutionProperties"],"additionalProperties":false,"title":"Integration Action"},{"type":"object","properties":{"type":{"type":"string","enum":["GITLAB"]},"projectName":{"type":"string"},"groupName":{"type":"string"},"defaultRef":{"type":"string"},"pipelineVariables":{"type":"object"}},"required":["type","projectName","groupName"],"additionalProperties":false,"title":"GitLab"},{"type":"object","properties":{"type":{"type":"string","enum":["AZURE_DEVOPS"]},"webhook":{"type":"string"},"org":{"type":"string"},"payload":{"oneOf":[{"type":"array"},{"type":"object"}]}},"required":["type","webhook","org"],"additionalProperties":false,"title":"Azure DevOps"},{"type":"object","properties":{"type":{"type":"string","enum":["UPSERT_ENTITY"]},"blueprintIdentifier":{"type":"string"},"mapping":{"type":"object","properties":{"identifier":{"type":"string"},"title":{"type":"string"},"team":{"oneOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"icon":{"type":"string"},"properties":{"type":"object"},"relations":{"type":"object","additionalProperties":{"oneOf":[{"type":"string"},{"type":"array","items":{"type":"string"}},{"type":"null"}]}}},"required":[]}},"required":["type","blueprintIdentifier","mapping"],"additionalProperties":false,"title":"Upsert Entity"}]},"requiredApproval":{"description":"Determines whether the action requires approval before execution.<br/>Choose `ALL` to require all specified users to approve the action, or `ANY` to require only one.","oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["ANY","ALL"]}},"required":["type"],"additionalProperties":false,"title":"User/s"},{"type":"boolean","title":"boolean"}]},"approvalNotification":{"type":"object","description":"The notification configuration for the approval process. Relevant only if `requiredApproval` is set to `true`.","properties":{"type":{"type":"string","enum":["webhook","email","none"],"default":"email"}},"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["webhook"]},"format":{"type":"string","enum":["json","slack"]},"url":{"type":"string","format":"uri"}},"required":["type","url"],"additionalProperties":false,"title":"Webhook"},{"type":"object","properties":{"type":{"type":"string","enum":["email"]}},"required":["type"],"additionalProperties":false,"title":"Email"},{"type":"object","properties":{"type":{"type":"string","enum":["none"]}},"required":["type"],"additionalProperties":false,"title":"None"}],"required":["type"]},"publish":{"type":"boolean","description":"Only relevant for **automations**. If `false`, the automation will be inactive (will not be triggered)."},"allowAnyoneToViewRuns":{"type":"boolean","description":"Whether members can view the runs of this action."}},"additionalProperties":false,"required":["identifier","trigger","invocationMethod"]}}},"required":true},"parameters":[{"schema":{"type":"string","minLength":1},"in":"path","name":"action_identifier","required":true,"description":"The identifier of the action/automation you want to operate on."}],"security":[{"bearer":["update:actions"]}],"x-should-be-exposed-to-customers":true,"responses":{"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}},"413":{"description":"Request body is too large (limit is 1MiB)","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false,"description":"Request body is too large (limit is 1MiB)"}}}},"422":{"description":"The json provided does not match the route's schema","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"The json provided does not match the route's schema"}}}}}},"get":{"summary":"Get an action/automation","tags":["Actions"],"description":"This route allows you to fetch the details of a self-service action or automation.<br/><br/>To learn more about actions and automations, check out the [documentation](https://docs.port.io/workflows/actions-and-automations/overview/).","parameters":[{"schema":{"type":"string","minLength":1},"in":"path","name":"action_identifier","required":true,"description":"The identifier of the action/automation you want to operate on."}],"security":[{"bearer":["read:actions"]}],"x-should-be-exposed-to-customers":true,"responses":{"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}}}},"delete":{"summary":"Delete an action/automation","tags":["Actions"],"description":"This route allows you to delete a self-service action or automation.<br/><br/>To learn more about actions and automations, check out the [documentation](https://docs.port.io/workflows/actions-and-automations/overview/).","parameters":[{"schema":{"type":"string","minLength":1},"in":"path","name":"action_identifier","required":true,"description":"The identifier of the action/automation you want to operate on."}],"security":[{"bearer":["delete:actions"]}],"x-should-be-exposed-to-customers":true,"responses":{"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}},"413":{"description":"Request body is too large (limit is 1MiB)","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false,"description":"Request body is too large (limit is 1MiB)"}}}},"422":{"description":"The json provided does not match the route's schema","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"The json provided does not match the route's schema"}}}}}}},"/v1/blueprints/{blueprint_identifier}/actions":{"post":{"summary":"This route is deprecated since November 20th 2024","tags":["Actions"],"description":"This route is deprecated since November 20th 2024","requestBody":{"content":{"application/json":{"schema":{"type":"object","nullable":true}}}},"parameters":[{"schema":"object","in":"path","name":"type","required":true},{"schema":true,"in":"path","name":"nullable","required":true}],"deprecated":true,"security":[{"bearer":["create:actions"]}],"x-should-be-exposed-to-customers":true,"responses":{"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}},"413":{"description":"Request body is too large (limit is 1MiB)","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false,"description":"Request body is too large (limit is 1MiB)"}}}},"422":{"description":"The json provided does not match the route's schema","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"The json provided does not match the route's schema"}}}}}},"put":{"summary":"This route is deprecated since November 20th 2024","tags":["Actions"],"description":"This route is deprecated since November 20th 2024","requestBody":{"content":{"application/json":{"schema":{"type":"object","nullable":true}}}},"parameters":[{"schema":"object","in":"path","name":"type","required":true},{"schema":true,"in":"path","name":"nullable","required":true}],"deprecated":true,"security":[{"bearer":["update:actions"]}],"x-should-be-exposed-to-customers":true,"responses":{"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}},"413":{"description":"Request body is too large (limit is 1MiB)","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false,"description":"Request body is too large (limit is 1MiB)"}}}},"422":{"description":"The json provided does not match the route's schema","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"The json provided does not match the route's schema"}}}}}},"get":{"summary":"This route is deprecated since November 20th 2024","tags":["Actions"],"description":"This route is deprecated since November 20th 2024","parameters":[{"schema":"object","in":"path","name":"type","required":true},{"schema":true,"in":"path","name":"nullable","required":true}],"deprecated":true,"security":[{"bearer":["read:actions"]}],"x-should-be-exposed-to-customers":true,"responses":{"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}}}}},"/v1/blueprints/{blueprint_identifier}/actions/{action_identifier}":{"put":{"summary":"This route is deprecated since November 20th 2024","tags":["Actions"],"description":"This route is deprecated since November 20th 2024","requestBody":{"content":{"application/json":{"schema":{"type":"object","nullable":true}}}},"parameters":[{"schema":"object","in":"path","name":"type","required":true},{"schema":true,"in":"path","name":"nullable","required":true}],"deprecated":true,"security":[{"bearer":["update:actions"]}],"x-should-be-exposed-to-customers":true,"responses":{"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}},"413":{"description":"Request body is too large (limit is 1MiB)","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false,"description":"Request body is too large (limit is 1MiB)"}}}},"422":{"description":"The json provided does not match the route's schema","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"The json provided does not match the route's schema"}}}}}},"get":{"summary":"This route is deprecated since November 20th 2024","tags":["Actions"],"description":"This route is deprecated since November 20th 2024","parameters":[{"schema":"object","in":"path","name":"type","required":true},{"schema":true,"in":"path","name":"nullable","required":true}],"deprecated":true,"security":[{"bearer":["read:actions"]}],"x-should-be-exposed-to-customers":true,"responses":{"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}}}},"delete":{"summary":"This route is deprecated since November 20th 2024","tags":["Actions"],"description":"This route is deprecated since November 20th 2024","parameters":[{"schema":"object","in":"path","name":"type","required":true},{"schema":true,"in":"path","name":"nullable","required":true}],"deprecated":true,"security":[{"bearer":["delete:actions"]}],"x-should-be-exposed-to-customers":true,"responses":{"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}},"413":{"description":"Request body is too large (limit is 1MiB)","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false,"description":"Request body is too large (limit is 1MiB)"}}}},"422":{"description":"The json provided does not match the route's schema","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"The json provided does not match the route's schema"}}}}}}},"/v1/actions/{action_identifier}/runs":{"post":{"summary":"Execute a self-service action","tags":["Action Runs"],"description":"This route allows you to execute a self-service action, thus creating an action run.<br/><br/>To learn more about action runs, check out the [documentation](https://docs.port.io/workflows/actions-and-automations/reflect-action-progress/).","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"properties":{"type":"object","description":"The action's user inputs, in `\"key\"`:`\"value\"` pairs, where the key is the input's identifier and the value is the input's value."},"entity":{"type":"string","description":"The identifier of the entity that the action will be executed on, if relevant."}},"additionalProperties":false,"required":["properties"]}}},"required":true},"parameters":[{"schema":{"type":"string","format":"email"},"in":"query","name":"run_as","required":false,"description":"The executing user of the action. If not provided, the action will be run on behalf of the user/machine who initiated the action (identified by the bearer token used to execute this route)."},{"schema":{"type":"string","minLength":1},"in":"path","name":"action_identifier","required":true,"description":"The identifier of the action/automation you want to operate on."}],"security":[{"bearer":[]}],"x-should-be-exposed-to-customers":true,"responses":{"202":{"description":"OK","content":{"application/json":{"schema":{"properties":{"ok":{"enum":[true]},"run":{"type":"object","properties":{"id":{"type":"string"},"blueprint":{"type":"object","properties":{"identifier":{"type":"string"},"title":{"type":["string","null"]},"icon":{"type":["string","null"]},"deleted":{"type":"boolean"}},"required":["identifier"]},"entity":{"type":"object","properties":{"identifier":{"type":"string"},"title":{"type":["string","null"]},"icon":{"type":["string","null"]},"deleted":{"type":"boolean"}},"required":["identifier"]},"action":{"type":"object","properties":{"identifier":{"type":"string"},"title":{"type":["string","null"]},"icon":{"type":["string","null"]},"deleted":{"type":"boolean"}},"required":["identifier"]},"properties":{"type":"object"},"rawProperties":{"type":"object"},"endedAt":{"type":"string","format":"date-time"},"source":{"type":["string","object"]},"requiredApproval":{"type":["boolean","object"],"properties":{"type":{"type":"string","enum":["ALL","ANY"]}},"required":["type"]},"status":{"type":"string"},"statusLabel":{"type":["string","null"]},"link":{"type":["array","string"],"items":{"type":"string"}},"summary":{"type":"string"},"approval":{"type":["object","null"],"properties":{"description":{"type":"string"},"userId":{"type":["string","null"]},"impersonatedUserId":{"type":["string","null"]},"state":{"type":"string"}}},"payload":{"type":["object","null"],"properties":{"type":{"type":"string"},"url":{"type":"string","format":"uri"},"agent":{"type":"boolean"},"synchronized":{"type":"boolean"},"method":{"type":"string"},"headers":{"type":"object","properties":{"RUN_ID":{"type":"string"}}},"body":{"type":"object","properties":{"port_context":{"type":"object","properties":{"runId":{"type":"string"}}}}}}},"response":{"type":["string","array","object"],"items":{}},"pendingExecution":{"type":"boolean"},"claimedUntil":{"type":"string","format":"date-time"},"installationId":{"type":"string"},"createdBy":{"type":"string"},"impersonatedBy":{"type":"string"},"impersonatedUserId":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"required":["id","action","properties","requiredApproval","source","status"]}},"required":["ok"],"additionalProperties":false,"description":"OK"}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}},"413":{"description":"Request body is too large (limit is 1MiB)","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false,"description":"Request body is too large (limit is 1MiB)"}}}},"422":{"description":"The json provided does not match the route's schema","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"The json provided does not match the route's schema"}}}}}}},"/v1/actions/runs/{run_id}":{"patch":{"summary":"Update an action run","tags":["Action Runs"],"description":"This route allows you to update an action run's details. This can be used to update the run's status & label, and add links to it (e.g. external logs of the job runner).<br/><br/>To learn more about action runs, check out the [documentation](https://docs.port.io/workflows/actions-and-automations/reflect-action-progress/).","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","enum":["SUCCESS","FAILURE"]},"statusLabel":{"type":"string","description":"A label to describe the status of the action run."},"link":{"description":"One or more links to be displayed in the run's page in Port. For example, a link to the external logs of the job runner.","oneOf":[{"type":"string","title":"string"},{"type":"array","title":"array","items":{"type":"string"}}]},"message":{"type":"object","deprecated":true},"summary":{"type":"string","description":"A summary of the action run, which will be displayed in the run's page in Port."},"externalRunId":{"type":"string","description":"The run id of your backend, for example the id that GitHub gives the workflow. This can be used to identify the action run instead of the `run_id`."}},"additionalProperties":false}}}},"parameters":[{"schema":{"type":"string","enum":["v1","v2"]},"in":"query","name":"version","required":false,"description":"Specifies the API version to use. Please use `v2` for the latest version of the API."},{"schema":{"type":"string"},"in":"path","name":"run_id","required":true,"description":"The identifier of the action run."}],"security":[{"bearer":[]}],"x-should-be-exposed-to-customers":true,"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"properties":{"ok":{"enum":[true]},"run":{"type":"object","properties":{"id":{"type":"string"},"blueprint":{"type":"object","properties":{"identifier":{"type":"string"},"title":{"type":["string","null"]},"icon":{"type":["string","null"]},"deleted":{"type":"boolean"}},"required":["identifier"]},"entity":{"type":"object","properties":{"identifier":{"type":"string"},"title":{"type":["string","null"]},"icon":{"type":["string","null"]},"deleted":{"type":"boolean"}},"required":["identifier"]},"action":{"type":"object","properties":{"identifier":{"type":"string"},"title":{"type":["string","null"]},"icon":{"type":["string","null"]},"deleted":{"type":"boolean"}},"required":["identifier"]},"properties":{"type":"object"},"rawProperties":{"type":"object"},"endedAt":{"type":"string","format":"date-time"},"source":{"type":["string","object"]},"requiredApproval":{"type":["boolean","object"],"properties":{"type":{"type":"string","enum":["ALL","ANY"]}},"required":["type"]},"status":{"type":"string"},"statusLabel":{"type":["string","null"]},"link":{"type":["array","string"],"items":{"type":"string"}},"summary":{"type":"string"},"approval":{"type":["object","null"],"properties":{"description":{"type":"string"},"userId":{"type":["string","null"]},"impersonatedUserId":{"type":["string","null"]},"state":{"type":"string"}}},"payload":{"type":["object","null"],"properties":{"type":{"type":"string"},"url":{"type":"string","format":"uri"},"agent":{"type":"boolean"},"synchronized":{"type":"boolean"},"method":{"type":"string"},"headers":{"type":"object","properties":{"RUN_ID":{"type":"string"}}},"body":{"type":"object","properties":{"port_context":{"type":"object","properties":{"runId":{"type":"string"}}}}}}},"response":{"type":["string","array","object"],"items":{}},"pendingExecution":{"type":"boolean"},"claimedUntil":{"type":"string","format":"date-time"},"installationId":{"type":"string"},"createdBy":{"type":"string"},"impersonatedBy":{"type":"string"},"impersonatedUserId":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"required":["id","action","properties","requiredApproval","source","status"]}},"required":["ok"],"additionalProperties":false,"description":"OK"}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}},"413":{"description":"Request body is too large (limit is 1MiB)","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false,"description":"Request body is too large (limit is 1MiB)"}}}},"422":{"description":"The json provided does not match the route's schema","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"The json provided does not match the route's schema"}}}}}},"get":{"summary":"Get an action run's details","tags":["Action Runs"],"description":"This route allows you to fetch the details of an action run.<br/><br/>To learn more about action runs, check out the [documentation](https://docs.port.io/workflows/actions-and-automations/reflect-action-progress/).","parameters":[{"schema":{"type":"string","enum":["v1","v2"]},"in":"query","name":"version","required":false,"description":"Specifies the API version to use. Please use `v2` for the latest version of the API."},{"schema":{"type":"string"},"in":"path","name":"run_id","required":true,"description":"The identifier of the action run."}],"security":[{"bearer":["read:runs"]}],"x-should-be-exposed-to-customers":true,"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"properties":{"ok":{"enum":[true]},"run":{"type":"object","properties":{"id":{"type":"string"},"blueprint":{"type":"object","properties":{"identifier":{"type":"string"},"title":{"type":["string","null"]},"icon":{"type":["string","null"]},"deleted":{"type":"boolean"}},"required":["identifier"]},"entity":{"type":"object","properties":{"identifier":{"type":"string"},"title":{"type":["string","null"]},"icon":{"type":["string","null"]},"deleted":{"type":"boolean"}},"required":["identifier"]},"action":{"type":"object","properties":{"identifier":{"type":"string"},"title":{"type":["string","null"]},"icon":{"type":["string","null"]},"deleted":{"type":"boolean"}},"required":["identifier"]},"properties":{"type":"object"},"rawProperties":{"type":"object"},"endedAt":{"type":"string","format":"date-time"},"source":{"type":["string","object"]},"requiredApproval":{"type":["boolean","object"],"properties":{"type":{"type":"string","enum":["ALL","ANY"]}},"required":["type"]},"status":{"type":"string"},"statusLabel":{"type":["string","null"]},"link":{"type":["array","string"],"items":{"type":"string"}},"summary":{"type":"string"},"approval":{"type":["object","null"],"properties":{"description":{"type":"string"},"userId":{"type":["string","null"]},"impersonatedUserId":{"type":["string","null"]},"state":{"type":"string"}}},"payload":{"type":["object","null"],"properties":{"type":{"type":"string"},"url":{"type":"string","format":"uri"},"agent":{"type":"boolean"},"synchronized":{"type":"boolean"},"method":{"type":"string"},"headers":{"type":"object","properties":{"RUN_ID":{"type":"string"}}},"body":{"type":"object","properties":{"port_context":{"type":"object","properties":{"runId":{"type":"string"}}}}}}},"response":{"type":["string","array","object"],"items":{}},"pendingExecution":{"type":"boolean"},"claimedUntil":{"type":"string","format":"date-time"},"installationId":{"type":"string"},"createdBy":{"type":"string"},"impersonatedBy":{"type":"string"},"impersonatedUserId":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"required":["id","action","properties","requiredApproval","source","status"]}},"required":["ok"],"additionalProperties":false,"description":"OK"}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}}}}},"/v1/actions/runs/{run_id}/approval":{"patch":{"summary":"Approve an action run","tags":["Action Runs"],"description":"This route allows you to approve or decline a request to execute an action that requires approval.<br/><br/>To learn more about manual approval for actions, check out the [documentation](https://docs.port.io/workflows/actions-and-automations/create-self-service-experiences/set-self-service-actions-rbac/#configure-manual-approval-for-actions).","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","enum":["DECLINE","APPROVE"]},"description":{"type":"string","description":"A description and/or reason for the given status."}},"additionalProperties":false,"required":["status"]}}},"required":true},"parameters":[{"schema":{"type":"string","enum":["v1","v2"]},"in":"query","name":"version","required":false,"description":"Specifies the API version to use. Please use `v2` for the latest version of the API."},{"schema":{"type":"string"},"in":"path","name":"run_id","required":true,"description":"The identifier of the action run."}],"security":[{"bearer":[]}],"x-should-be-exposed-to-customers":true,"responses":{"201":{"description":"OK","content":{"application/json":{"schema":{"properties":{"ok":{"enum":[true]},"run":{"type":"object","properties":{"id":{"type":"string"},"blueprint":{"type":"object","properties":{"identifier":{"type":"string"},"title":{"type":["string","null"]},"icon":{"type":["string","null"]},"deleted":{"type":"boolean"}},"required":["identifier"]},"entity":{"type":"object","properties":{"identifier":{"type":"string"},"title":{"type":["string","null"]},"icon":{"type":["string","null"]},"deleted":{"type":"boolean"}},"required":["identifier"]},"action":{"type":"object","properties":{"identifier":{"type":"string"},"title":{"type":["string","null"]},"icon":{"type":["string","null"]},"deleted":{"type":"boolean"}},"required":["identifier"]},"properties":{"type":"object"},"rawProperties":{"type":"object"},"endedAt":{"type":"string","format":"date-time"},"source":{"type":["string","object"]},"requiredApproval":{"type":["boolean","object"],"properties":{"type":{"type":"string","enum":["ALL","ANY"]}},"required":["type"]},"status":{"type":"string"},"statusLabel":{"type":["string","null"]},"link":{"type":["array","string"],"items":{"type":"string"}},"summary":{"type":"string"},"approval":{"type":["object","null"],"properties":{"description":{"type":"string"},"userId":{"type":["string","null"]},"impersonatedUserId":{"type":["string","null"]},"state":{"type":"string"}}},"payload":{"type":["object","null"],"properties":{"type":{"type":"string"},"url":{"type":"string","format":"uri"},"agent":{"type":"boolean"},"synchronized":{"type":"boolean"},"method":{"type":"string"},"headers":{"type":"object","properties":{"RUN_ID":{"type":"string"}}},"body":{"type":"object","properties":{"port_context":{"type":"object","properties":{"runId":{"type":"string"}}}}}}},"response":{"type":["string","array","object"],"items":{}},"pendingExecution":{"type":"boolean"},"claimedUntil":{"type":"string","format":"date-time"},"installationId":{"type":"string"},"createdBy":{"type":"string"},"impersonatedBy":{"type":"string"},"impersonatedUserId":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"required":["id","action","properties","requiredApproval","source","status"]}},"required":["ok"],"additionalProperties":false,"description":"OK"}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}},"413":{"description":"Request body is too large (limit is 1MiB)","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false,"description":"Request body is too large (limit is 1MiB)"}}}},"422":{"description":"The json provided does not match the route's schema","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"The json provided does not match the route's schema"}}}}}}},"/v1/actions/runs":{"get":{"summary":"Get all action runs","tags":["Action Runs"],"description":"This route allows you to fetch all action runs in your Port account. The route will perform a logical `AND` between all query parameters below, and return all action runs that match the criteria.<br/><br/>**Pagination:** Results are sorted by creation time (newest first). Use the `next` token from the response to fetch subsequent pages. When `next` is absent, there are no more results. Note that RBAC filtering may cause a page to contain fewer items than `limit`, or even return an empty `runs` array while `next` is still present — always use the absence of `next` as the signal that there are no more results.<br/><br/>To learn more about action runs, check out the [documentation](https://docs.port.io/workflows/actions-and-automations/reflect-action-progress/).","parameters":[{"schema":{"type":"string"},"in":"query","name":"entity","required":false,"description":"The identifier of the entity associated with the action run."},{"schema":{"type":"string"},"in":"query","name":"blueprint","required":false,"description":"The identifier of the blueprint associated with the action run."},{"schema":{"type":"boolean"},"in":"query","name":"active","required":false,"description":"If `true`, only running action runs will be fetched."},{"schema":{"type":"string"},"in":"query","name":"user_email","required":false,"description":"The email of the user who initiated the action run."},{"schema":{"type":"string"},"in":"query","name":"user_id","required":false,"description":"The id of the user who initiated the action run."},{"schema":{"type":"number","minimum":1,"maximum":1000},"in":"query","name":"limit","required":false,"description":"The maximum number of action runs to fetch."},{"schema":{"type":"array","items":{"type":"string"}},"in":"query","name":"exclude","required":false,"description":"The fields to exclude from the response"},{"schema":{"type":"string"},"in":"query","name":"external_run_id","required":false,"description":"The run id of your backend, for example the id that GitHub gives the workflow. This can be used to identify the action run instead of the `run_id`."},{"schema":{"type":"string","enum":["v1","v2"]},"in":"query","name":"version","required":false,"description":"Specifies the API version to use. Please use `v2` for the latest version of the API."},{"schema":{"type":"string"},"in":"query","name":"action","required":false},{"schema":{"type":"array","items":{"type":"string","enum":["UI","API","AUTOMATION"]}},"in":"query","name":"source","required":false},{"schema":{"type":"string"},"in":"query","name":"next","required":false,"description":"An opaque cursor for pagination. Pass the `next` value from the previous response to fetch the next page of results."}],"security":[{"bearer":["read:runs"]}],"x-should-be-exposed-to-customers":true,"responses":{"200":{"description":"Retrieved successfully.","content":{"application/json":{"schema":{"properties":{"ok":{"enum":[true]},"runs":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"blueprint":{"type":"object","properties":{"identifier":{"type":"string"},"title":{"type":["string","null"]},"icon":{"type":["string","null"]},"deleted":{"type":"boolean"}},"required":["identifier"]},"entity":{"type":"object","properties":{"identifier":{"type":"string"},"title":{"type":["string","null"]},"icon":{"type":["string","null"]},"deleted":{"type":"boolean"}},"required":["identifier"]},"action":{"type":"object","properties":{"identifier":{"type":"string"},"title":{"type":["string","null"]},"icon":{"type":["string","null"]},"deleted":{"type":"boolean"}},"required":["identifier"]},"properties":{"type":"object"},"rawProperties":{"type":"object"},"endedAt":{"type":"string","format":"date-time"},"source":{"type":["string","object"]},"requiredApproval":{"type":["boolean","object"],"properties":{"type":{"type":"string","enum":["ALL","ANY"]}},"required":["type"]},"status":{"type":"string"},"statusLabel":{"type":["string","null"]},"link":{"type":["array","string"],"items":{"type":"string"}},"summary":{"type":"string"},"approval":{"type":["object","null"],"properties":{"description":{"type":"string"},"userId":{"type":["string","null"]},"impersonatedUserId":{"type":["string","null"]},"state":{"type":"string"}}},"payload":{"type":["object","null"],"properties":{"type":{"type":"string"},"url":{"type":"string","format":"uri"},"agent":{"type":"boolean"},"synchronized":{"type":"boolean"},"method":{"type":"string"},"headers":{"type":"object","properties":{"RUN_ID":{"type":"string"}}},"body":{"type":"object","properties":{"port_context":{"type":"object","properties":{"runId":{"type":"string"}}}}}}},"response":{"type":["string","array","object"],"items":{}},"pendingExecution":{"type":"boolean"},"claimedUntil":{"type":"string","format":"date-time"},"installationId":{"type":"string"},"createdBy":{"type":"string"},"impersonatedBy":{"type":"string"},"impersonatedUserId":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"required":["id","action","properties","requiredApproval","source","status"]}},"next":{"type":"string","description":"An opaque cursor for fetching the next page. Absent when there are no more results."}},"required":["ok"],"additionalProperties":false,"description":"Retrieved successfully."}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}}}}},"/v1/actions/runs/{run_id}/logs":{"post":{"summary":"Add a log to an action run","tags":["Action Runs"],"description":"This route allows you to send a log message back to Port, which will be displayed in the action run's page. You can also use this route to update the run's termination status (SUCCESS/FAILURE) and label describing the status.<br/><br/>To learn more about action runs, check out the [documentation](https://docs.port.io/workflows/actions-and-automations/reflect-action-progress/).","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"terminationStatus":{"type":"string","enum":["SUCCESS","FAILURE"],"description":"The termination status of the action run. Can be left blank if you only want to send a log message."},"statusLabel":{"type":"string","description":"A label to describe the status of the action run. Can be left blank if you only want to send a log message."},"message":{"type":"string","description":"The log message to send back to Port."}},"additionalProperties":false,"required":["message"]}}},"required":true},"parameters":[{"schema":{"type":"string"},"in":"path","name":"run_id","required":true,"description":"The identifier of the action run."}],"security":[{"bearer":[]}],"x-should-be-exposed-to-customers":true,"responses":{"201":{"description":"OK","content":{"application/json":{"schema":{"properties":{"ok":{"enum":[true]},"runLog":{"type":"object","properties":{"id":{"type":"string"},"runId":{"type":"string"},"message":{"type":"string"},"createdBy":{"type":"string"},"createdAt":{"type":"string","format":"date-time"}},"required":["id","runId","message","createdBy","createdAt"]}},"required":["ok"],"additionalProperties":false,"description":"OK"}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}},"413":{"description":"Request body is too large (limit is 1MiB)","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false,"description":"Request body is too large (limit is 1MiB)"}}}},"422":{"description":"The json provided does not match the route's schema","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"The json provided does not match the route's schema"}}}}}},"get":{"summary":"Get an action's run logs","tags":["Action Runs"],"description":"This route allows you to fetch the logs from an action run.<br/><br/>To learn more about action runs, check out the [documentation](https://docs.port.io/workflows/actions-and-automations/reflect-action-progress/).","parameters":[{"schema":{"type":"number","minimum":1,"maximum":50},"in":"query","name":"limit","required":false,"description":"The maximum number of logs to fetch."},{"schema":{"type":"number"},"in":"query","name":"offset","required":false,"description":"The number of logs to skip."},{"schema":{"type":"string"},"in":"path","name":"run_id","required":true,"description":"The identifier of the action run."}],"security":[{"bearer":[]}],"x-should-be-exposed-to-customers":true,"responses":{"200":{"description":"Retrieved successfully.","content":{"application/json":{"schema":{"properties":{"ok":{"enum":[true]},"runLogs":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"runId":{"type":"string"},"message":{"type":"string"},"createdBy":{"type":"string"},"createdAt":{"type":"string","format":"date-time"}},"required":["id","runId","message","createdBy","createdAt"]}}},"required":["ok"],"additionalProperties":false,"description":"Retrieved successfully."}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}}}}},"/v1/actions/runs/{run_id}/approvers":{"get":{"summary":"Get an action run's approvers","tags":["Action Runs"],"description":"This route allows you to fetch the approvers of a specific action run.<br/><br/>To learn more about manual approval for actions, check out the [documentation](https://docs.port.io/workflows/actions-and-automations/create-self-service-experiences/set-self-service-actions-rbac/#configure-manual-approval-for-actions).","parameters":[{"schema":{"type":"boolean","default":false},"in":"query","name":"include_pending_approvers","required":true,"description":"If `true`, the route will also return the users who have not yet approved the action run."},{"schema":{"type":"string"},"in":"path","name":"run_id","required":true,"description":"The identifier of the action run."}],"security":[{"bearer":["read:runs"]}],"x-should-be-exposed-to-customers":true,"responses":{"200":{"description":"Retrieved successfully.","content":{"application/json":{"schema":{"properties":{"ok":{"enum":[true]},"approvers":{"type":"array","items":{"type":"object","properties":{"userId":{"type":"string"},"state":{"type":"string"},"description":{"type":"string","nullable":true}},"required":["userId","state"]}}},"required":["ok"],"additionalProperties":false,"description":"Retrieved successfully."}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}}}}},"/v1/pages":{"get":{"summary":"Get all pages in your portal","tags":["Pages"],"description":"This route allows you to get all pages in your portal.<br/><br/>To learn more about pages, checkout the [documentation](https://docs.port.io/interface-builder/port-interface/page/catalog-page).","parameters":[{"schema":{"type":"boolean","default":false},"in":"query","name":"compact","required":true},{"schema":{"type":"boolean","default":false},"in":"query","name":"includePrivate","required":false}],"security":[{"bearer":[]}],"x-should-be-exposed-to-customers":true,"responses":{"200":{"description":"Retrieved successfully.","content":{"application/json":{"schema":{"description":"Retrieved successfully.","type":"object","properties":{"ok":{"enum":[true]},"pages":{"type":"array","items":{"type":"object","properties":{"identifier":{"type":"string","pattern":"^(?!\\.{1,2}$)(?:[A-Za-z0-9@_.:\\/=\\-]|\\$team\\b|\\$users\\b|\\$user\\b|\\$AuditLog\\b|\\$run\\b|\\$RunsHistory\\b|\\$home)*$","minLength":1,"example":"string"},"blueprint":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"icon":{"type":"string"},"sidebar":{"type":"string","nullable":true,"enum":[null,"catalog"]},"parent":{"type":"string","nullable":true},"after":{"type":"string","nullable":true},"locked":{"type":"boolean"},"requiredQueryParams":{"type":"array","items":{"type":"string"}},"widgets":{"type":"array","items":{"$ref":"#/components/schemas/def-8"}},"type":{"type":"string","enum":["run","user","team","entity","users-and-teams","runs-history","audit-log","blueprint-entities","dashboard","home"]},"visibility":{"type":"string","enum":["private","org"],"default":"org"},"showInSidebar":{"type":"boolean","default":true},"section":{"type":"string","enum":["software_catalog","organization"],"default":"software_catalog"},"pageFilters":{"type":"array","items":{"type":"object","properties":{"query":{"type":"object","properties":{"blueprint":{"type":"string"},"combinator":{"enum":["and"],"description":"The combinator to use for the rules."},"rules":{"type":"array","items":{"anyOf":[{"type":"object","title":"Date Rule","properties":{"property":{"title":"Contexted property","oneOf":[{"type":"string"},{"type":"object","title":"User-context field","properties":{"property":{"type":"string"},"context":{"type":"string","enum":["user","userTeams"]}},"required":["property","context"]}]},"operator":{"enum":["between","notBetween","="]},"value":{"type":"object","oneOf":[{"type":"object","title":"Date Range","properties":{"from":{"type":"string","format":"date-time"},"to":{"type":"string","format":"date-time"}},"required":["from","to"]},{"type":"object","title":"Date Preset","properties":{"preset":{"type":"string","enum":["today","tomorrow","yesterday","lastDay","lastWeek","last2Weeks","lastMonth","last3Months","last6Months","last12Months","last2Years","last3Years","nextDay","nextWeek","next2Weeks","nextMonth","next3Months","next6Months","next12Months"]}},"required":["preset"]},{"type":"object","title":"User-context field","properties":{"property":{"type":"string"},"context":{"type":"string","enum":["user","userTeams"]}},"required":["property","context"]}]}},"required":["property","operator","value"],"additionalProperties":false},{"type":"object","title":"Empty Rule","oneOf":[{"type":"object","title":"Empty Rule","properties":{"operator":{"enum":["isEmpty","isNotEmpty"]},"property":{"type":"string"}},"required":["operator","property"],"additionalProperties":false}]},{"type":"object","title":"Number Rule","properties":{"property":{"title":"Contexted property","oneOf":[{"type":"string"},{"type":"object","title":"User-context field","properties":{"property":{"type":"string"},"context":{"type":"string","enum":["user","userTeams"]}},"required":["property","context"]}]},"operator":{"enum":[">",">=","<","<="]},"value":{"anyOf":[{"type":"number","title":"number"},{"type":"string","format":"date-time","title":"date-time"},{"type":"object","title":"User-context field","properties":{"property":{"type":"string"},"context":{"type":"string","enum":["user","userTeams"]}},"required":["property","context"]}]}},"required":["property","operator","value"],"additionalProperties":false},{"type":"object","title":"Expired Rule","oneOf":[{"type":"object","title":"Expired Rule","properties":{"operator":{"enum":["isExpired","isNotExpired"]},"property":{"type":"string"}},"required":["operator","property"],"additionalProperties":false}]},{"type":"object","title":"String Rule","oneOf":[{"type":"object","title":"String Rule","properties":{"property":{"title":"Contexted property","oneOf":[{"type":"string"},{"type":"object","title":"User-context field","properties":{"property":{"type":"string"},"context":{"type":"string","enum":["user","userTeams"]}},"required":["property","context"]}]},"operator":{"enum":["=","!=","containsAny","contains","doesNotContains","beginsWith","doesNotBeginsWith","endsWith","doesNotEndsWith","in","notIn"]},"value":{"anyOf":[{"type":"null","title":"null"},{"type":"string","title":"string"},{"type":"number","title":"number"},{"type":"boolean","title":"boolean"},{"type":"string","format":"date-time","title":"date-time"},{"type":"array","items":{"type":"string"},"title":"array"},{"type":"array","items":{"type":"number"},"title":"array"},{"type":"array","items":{"type":"boolean"},"title":"array"},{"type":"array","items":{"type":"string","format":"date-time"},"title":"array"},{"type":"object","title":"User-context field","properties":{"property":{"type":"string"},"context":{"type":"string","enum":["user","userTeams"]}},"required":["property","context"]}]}},"additionalProperties":false,"required":["property","operator","value"]}]},{"type":"object","title":"Relation Rule","properties":{"operator":{"enum":["relatedTo"]},"blueprint":{"type":"string"},"value":{"anyOf":[{"type":"string","title":"string"},{"type":"array","items":{"type":"string"},"title":"array"}]},"direction":{"enum":["upstream","downstream"]},"required":{"type":"boolean"}},"additionalProperties":false,"required":["operator","value","blueprint"]},{"type":"object","title":"Property schema rule","properties":{"propertySchema":{"type":"object","properties":{"type":{"type":"string"},"format":{"type":"string"},"items":{"type":"object","properties":{"type":{"type":"string"},"format":{"type":"string"}},"required":["type"]}},"required":["type"],"additionalProperties":false},"operator":{"enum":["=","!=","contains"]},"value":{"anyOf":[{"type":"null","title":"null"},{"type":"string","title":"string"},{"type":"number","title":"number"},{"type":"boolean","title":"boolean"}]}},"required":["operator","propertySchema"],"additionalProperties":false},{"type":"object","title":"matchAny Rule","anyOf":[{"type":"object","title":"Property matchAny rule","properties":{"property":{"oneOf":[{"type":"object","title":"Path filter property","properties":{"path":{"type":"array","minItems":1,"items":{"anyOf":[{"type":"string","title":"Relation identifier"},{"type":"object","title":"Relation with max hops","properties":{"relation":{"type":"string"},"maxHops":{"type":"number","minimum":1,"maximum":15}}}]}},"fromBlueprint":{"type":"string"}},"required":["path"],"additionalProperties":false},{"title":"Contexted property","oneOf":[{"type":"string"},{"type":"object","title":"User-context field","properties":{"property":{"type":"string"},"context":{"type":"string","enum":["user","userTeams"]}},"required":["property","context"]}]}]},"operator":{"type":"string","enum":["matchAny"]},"value":{"anyOf":[{"type":"array","items":{"type":"string"}},{"title":"Contexted property","oneOf":[{"type":"string"},{"type":"object","title":"User-context field","properties":{"property":{"type":"string"},"context":{"type":"string","enum":["user","userTeams"]}},"required":["property","context"]}]}]}},"required":["property","operator","value"],"additionalProperties":false}]},{"$ref":"#/components/schemas/def-1"}]}}},"required":["combinator","rules"],"additionalProperties":false,"example":{"combinator":"and","rules":[{"property":"$blueprint","operator":"=","value":"service"}]},"title":"/schemas/filterTag"},"identifier":{"type":"string"},"title":{"type":"string"}},"required":["identifier","title","query"],"additionalProperties":false}},"pageFilterPresets":{"type":"array","items":{"type":"object","properties":{"identifier":{"type":"string"},"title":{"type":"string"},"filters":{"type":"array","items":{"type":"object","properties":{"query":{"$ref":"#/components/schemas/def-9"},"identifier":{"type":"string"},"title":{"type":"string"}},"required":["identifier","title","query"],"additionalProperties":false}}},"required":["identifier","title","filters"],"additionalProperties":false}},"pageDateFilter":{"type":"object","nullable":true,"properties":{"range":{"oneOf":[{"type":"object","properties":{"type":{"enum":["quickRange"]},"quickRange":{"type":"string","enum":["today","yesterday","7d","30d","3m","6m","12m"]}},"required":["type","quickRange"],"additionalProperties":false},{"type":"object","properties":{"type":{"enum":["fixed"]},"from":{"type":"string","format":"date"},"to":{"type":"string","format":"date"}},"required":["type","from","to"],"additionalProperties":false},{"type":"object","properties":{"type":{"enum":["since"]},"from":{"type":"string","format":"date"}},"required":["type","from"],"additionalProperties":false},{"type":"object","properties":{"type":{"enum":["last"]},"amount":{"type":"integer","minimum":1},"unit":{"type":"string","enum":["day","week","month","quarter"]},"offset":{"type":"integer","minimum":0}},"required":["type","amount","unit"],"additionalProperties":false},{"type":"object","properties":{"type":{"enum":["next"]},"amount":{"type":"integer","minimum":1},"unit":{"type":"string","enum":["day","week","month","quarter"]},"offset":{"type":"integer","minimum":0}},"required":["type","amount","unit"],"additionalProperties":false},{"type":"object","properties":{"type":{"enum":["periodToDate"]},"period":{"type":"string","enum":["day","week","month","quarter","year"]}},"required":["type","period"],"additionalProperties":false}]}},"required":["range"],"additionalProperties":false},"protected":{"type":"boolean"},"owner":{"type":"string"}}}}},"required":["pages","ok"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}}}},"post":{"summary":"Create a page","tags":["Pages"],"description":"This route allows you to create pages in your portal.<br/><br/>To learn more about pages, checkout the [documentation](https://docs.port.io/interface-builder/port-interface/page/catalog-page).","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"identifier":{"type":"string","minLength":1,"pattern":"^(?!\\.{1,2}$)(?:[A-Za-z0-9@_.:\\/=\\-]|\\$team\\b|\\$users\\b|\\$user\\b|\\$AuditLog\\b|\\$run\\b|\\$RunsHistory\\b|\\$home)*$"},"blueprint":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"icon":{"type":"string"},"sidebar":{"anyOf":[{"type":"string","enum":["catalog"]},{"type":"null"}]},"parent":{"description":"Parent page identifier for sidebar nesting","anyOf":[{"type":"string"},{"type":"null"}]},"after":{"description":"Page identifier to position after in sidebar","anyOf":[{"type":"string"},{"type":"null"}]},"locked":{"type":"boolean"},"protected":{"description":"System-managed. When true, the page cannot be deleted and its identifier cannot be changed. Not editable by users.","type":"boolean"},"requiredQueryParams":{"type":"array","items":{"type":"string"}},"widgets":{"type":"array","items":{"$ref":"#/$defs/__schema0"}},"type":{"type":"string","enum":["run","user","team","entity","users-and-teams","runs-history","audit-log","blueprint-entities","dashboard","home"]},"visibility":{"default":"org","type":"string","enum":["private","org"]},"pageFilters":{"type":"array","items":{"type":"object","properties":{"query":{"allOf":[{"$ref":"#/$defs/__schema1"},{"type":"object","properties":{"blueprint":{"type":"string"}},"additionalProperties":false}]},"identifier":{"type":"string"},"title":{"type":"string"}},"required":["query","identifier","title"],"additionalProperties":false}},"pageFilterPresets":{"type":"array","items":{"type":"object","properties":{"identifier":{"type":"string"},"title":{"type":"string"},"filters":{"type":"array","items":{"type":"object","properties":{"query":{"allOf":[{"$ref":"#/$defs/__schema1"},{"type":"object","properties":{"blueprint":{"type":"string"}},"additionalProperties":false}]},"identifier":{"type":"string"},"title":{"type":"string"}},"required":["query","identifier","title"],"additionalProperties":false}}},"required":["identifier","title","filters"],"additionalProperties":false}},"pageDateFilter":{"anyOf":[{"type":"object","properties":{"range":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["quickRange"]},"quickRange":{"type":"string","enum":["today","yesterday","7d","30d","3m","6m","12m"]}},"required":["type","quickRange"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["fixed"]},"from":{"type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"},"to":{"type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"}},"required":["type","from","to"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["since"]},"from":{"type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"}},"required":["type","from"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["last"]},"amount":{"type":"integer","minimum":1,"maximum":9007199254740991},"unit":{"type":"string","enum":["day","week","month","quarter"]},"offset":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["type","amount","unit"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["next"]},"amount":{"type":"integer","minimum":1,"maximum":9007199254740991},"unit":{"type":"string","enum":["day","week","month","quarter"]},"offset":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["type","amount","unit"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["periodToDate"]},"period":{"type":"string","enum":["day","week","month","quarter","year"]}},"required":["type","period"],"additionalProperties":false}]}},"required":["range"],"additionalProperties":false},{"type":"null"}]},"showInSidebar":{"default":true,"type":"boolean"},"section":{"default":"software_catalog","type":"string","enum":["software_catalog","organization"]},"createdBy":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["identifier","type"],"additionalProperties":false,"$defs":{"__schema0":{"oneOf":[{"type":"object","properties":{"id":{"description":"Unique identifier for the widget. Must be referenced in the layout.","type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"type":"string","enum":["ai-agent"]},"title":{"type":"string"},"description":{"type":"string"},"agentIdentifier":{"type":"string","description":"AI Agent entity identifier"},"icon":{"type":"string"},"useMCP":{"type":"boolean"}},"required":["type","title","agentIdentifier"],"additionalProperties":false},{"type":"object","properties":{"id":{"description":"Unique identifier for the widget. Must be referenced in the layout.","type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"type":"string","enum":["entity-info"]},"title":{"type":"string"},"entity":{"type":"string","description":"Entity identifier"},"blueprint":{"type":"string","description":"Blueprint identifier"},"description":{"type":"string"},"icon":{"type":"string"},"hiddenQuery":{"description":"Property identifiers to hide from display. Use plain identifiers for schema properties (e.g., \"myProperty\") or meta field keys (e.g., \"$identifier\", \"$title\", \"$team\", \"$createdAt\", \"$updatedAt\")","type":"array","items":{"type":"string"}},"order":{"type":"array","items":{"type":"string"}},"showEmptyValues":{"type":"boolean"}},"required":["type","title","entity","blueprint"],"additionalProperties":false},{"type":"object","properties":{"id":{"description":"Unique identifier for the widget. Must be referenced in the layout.","type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"type":"string","enum":["entity-details"]},"title":{"type":"string"},"entity":{"type":"string","description":"Entity identifier"},"blueprint":{"type":"string","description":"Blueprint identifier"},"description":{"type":"string"},"icon":{"type":"string"},"hiddenQuery":{"description":"Property identifiers to hide from display. Use plain identifiers for schema properties (e.g., \"myProperty\") or meta field keys (e.g., \"$identifier\", \"$title\", \"$team\", \"$createdAt\", \"$updatedAt\")","type":"array","items":{"type":"string"}},"order":{"type":"array","items":{"type":"string"}},"showEmptyValues":{"type":"boolean"}},"required":["type","title","entity","blueprint"],"additionalProperties":false},{"type":"object","properties":{"id":{"description":"Unique identifier for the widget. Must be referenced in the layout.","type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"type":"string","enum":["action-runs-table-widget"]},"title":{"type":"string","description":"Display title for the widget"},"action":{"type":"string","description":"The action identifier to show runs for"},"icon":{"description":"Icon for the widget","type":"string"},"description":{"description":"Description of the widget","type":"string"},"displayMode":{"type":"string","enum":["single","widget"]},"tableConfig":{"description":"Table configuration for filtering, sorting, grouping, and property visibility","type":"object","properties":{"filterSettings":{"type":"object","properties":{"filterBy":{"$ref":"#/$defs/__schema1"}},"required":["filterBy"],"additionalProperties":false},"groupSettings":{"type":"object","properties":{"groupBy":{"type":"array","items":{"type":"string"}}},"required":["groupBy"],"additionalProperties":false},"sortSettings":{"type":"object","properties":{"sortBy":{"type":"array","items":{"type":"object","properties":{"property":{"type":"string"},"order":{"type":"string","enum":["asc","desc"]}},"required":["property","order"],"additionalProperties":false}}},"additionalProperties":false},"propertiesSettings":{"type":"object","properties":{"hidden":{"type":"array","items":{"type":"string"}},"order":{"type":"array","items":{"type":"string"}}},"additionalProperties":false}},"additionalProperties":false}},"required":["type","title","action"],"additionalProperties":false},{"type":"object","properties":{"id":{"description":"Unique identifier for the widget. Must be referenced in the layout.","type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"type":"string","enum":["action-card-widget"]},"icon":{"type":"string"},"description":{"type":"string"},"title":{"type":"string"},"actions":{"type":"array","items":{"type":"object","properties":{"action":{"type":"string","description":"Action identifier"}},"required":["action"],"additionalProperties":false}}},"required":["type","title","actions"],"additionalProperties":false},{"type":"object","properties":{"id":{"description":"Unique identifier for the widget. Must be referenced in the layout.","type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"type":"string","enum":["workflow-card-widget"]},"icon":{"type":"string"},"description":{"type":"string"},"title":{"type":"string"},"items":{"minItems":1,"type":"array","items":{"type":"object","properties":{"workflowIdentifier":{"type":"string","description":"Identifier of the workflow"},"triggerIdentifier":{"description":"Identifier of the workflow self-service trigger node, if any","type":"string"}},"required":["workflowIdentifier"],"additionalProperties":false}}},"required":["type","title","items"],"additionalProperties":false},{"type":"object","properties":{"id":{"description":"Unique identifier for the widget. Must be referenced in the layout.","type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"type":"string","enum":["workflow-runs-table-widget"]},"title":{"type":"string","description":"Display title for the widget"},"icon":{"description":"Icon for the widget","type":"string"},"description":{"description":"Description of the widget","type":"string"},"workflowIdentifiers":{"type":"array","items":{"type":"string"},"description":"Identifiers of the workflows to show runs for. An empty list shows runs of all workflows."},"statuses":{"description":"Default status filter. Viewers can change it without saving the widget.","type":"array","items":{"type":"string","enum":["SUCCESS","FAILED","CANCELLED","CANCELLING","WAITING_FOR_INPUT","IN_PROGRESS"]}},"timeRange":{"description":"Default relative date range. When omitted, runs are not limited by date.","type":"object","properties":{"preset":{"type":"string","enum":["today","yesterday","lastDay","lastWeek","last2Weeks","lastMonth","last3Months"]}},"required":["preset"],"additionalProperties":false},"tableConfig":{"description":"Table configuration for filtering, sorting, grouping, and property visibility","type":"object","properties":{"filterSettings":{"type":"object","properties":{"filterBy":{"$ref":"#/$defs/__schema1"}},"required":["filterBy"],"additionalProperties":false},"groupSettings":{"type":"object","properties":{"groupBy":{"type":"array","items":{"type":"string"}}},"required":["groupBy"],"additionalProperties":false},"sortSettings":{"type":"object","properties":{"sortBy":{"type":"array","items":{"type":"object","properties":{"property":{"type":"string"},"order":{"type":"string","enum":["asc","desc"]}},"required":["property","order"],"additionalProperties":false}}},"additionalProperties":false},"propertiesSettings":{"type":"object","properties":{"hidden":{"type":"array","items":{"type":"string"}},"order":{"type":"array","items":{"type":"string"}}},"additionalProperties":false}},"additionalProperties":false}},"required":["type","title","workflowIdentifiers"],"additionalProperties":false},{"type":"object","properties":{"id":{"description":"Unique identifier for the widget. Must be referenced in the layout.","type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"type":"string","enum":["links-widget"]},"title":{"type":"string"},"description":{"type":"string"},"icon":{"type":"string"},"links":{"minItems":1,"type":"array","items":{"type":"object","properties":{"title":{"type":"string","minLength":1},"description":{"type":"string"},"url":{"type":"string","description":"a valid URL to open when the link is clicked"},"icon":{"type":"string"}},"required":["title","url"],"additionalProperties":false}}},"required":["type","title","links"],"additionalProperties":false},{"type":"object","properties":{"id":{"description":"Unique identifier for the widget. Must be referenced in the layout.","type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"type":"string","enum":["table-entities-explorer"]},"icon":{"type":"string"},"description":{"type":"string"},"emptyStateText":{"type":"string"},"title":{"type":"string"},"blueprint":{"type":"string"},"dataset":{"$ref":"#/$defs/__schema1"},"excludedFields":{"type":"array","items":{"type":"string"}},"displayMode":{"type":"string","enum":["tabs","single","widget"]},"entitiesQueryMode":{"type":"string","enum":["standard","optimized"]},"entitiesQueryMaxResults":{"type":"number","enum":[100,1000,10000,100000]},"blueprintConfig":{"type":"object","propertyNames":{"type":"string","pattern":"^(?!\\.{1,2}$)[\\p{L}0-9@_.+:\\\\/='-]+$"},"additionalProperties":{"type":"object","properties":{"filterSettings":{"type":"object","properties":{"filterBy":{"$ref":"#/$defs/__schema1"}},"required":["filterBy"],"additionalProperties":false},"groupSettings":{"type":"object","properties":{"groupBy":{"type":"array","items":{"type":"string"}}},"required":["groupBy"],"additionalProperties":false},"sortSettings":{"type":"object","properties":{"sortBy":{"type":"array","items":{"type":"object","properties":{"property":{"type":"string"},"order":{"type":"string","enum":["asc","desc"]}},"required":["property","order"],"additionalProperties":false}}},"additionalProperties":false},"propertiesSettings":{"type":"object","properties":{"hidden":{"type":"array","items":{"type":"string"}},"shown":{"type":"array","items":{"type":"string"}},"order":{"type":"array","items":{"type":"string"}}},"additionalProperties":false},"columnsOrder":{"type":"array","items":{"type":"string"}},"cardsOrder":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"tabIndex":{"type":"number"},"hidden":{"type":"boolean"},"title":{"type":"string","maxLength":20},"description":{"type":"string"}},"additionalProperties":false}},"showOnlyRelatedEntities":{"type":"boolean"}},"required":["type","dataset"],"additionalProperties":false},{"type":"object","properties":{"id":{"description":"Unique identifier for the widget. Must be referenced in the layout.","type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"type":"string","enum":["board"]},"icon":{"type":"string"},"description":{"type":"string"},"emptyStateText":{"type":"string"},"title":{"type":"string"},"blueprint":{"type":"string"},"dataset":{"$ref":"#/$defs/__schema1"},"excludedFields":{"type":"array","items":{"type":"string"}},"entitiesQueryMode":{"default":"optimized","type":"string","enum":["optimized"]},"entitiesQueryMaxResults":{"type":"number","enum":[100,1000,10000,100000]},"blueprintConfig":{"type":"object","propertyNames":{"type":"string","pattern":"^(?!\\.{1,2}$)[\\p{L}0-9@_.+:\\\\/='-]+$"},"additionalProperties":{"type":"object","properties":{"filterSettings":{"type":"object","properties":{"filterBy":{"$ref":"#/$defs/__schema1"}},"required":["filterBy"],"additionalProperties":false},"groupSettings":{"type":"object","properties":{"groupBy":{"type":"array","items":{"type":"string"}}},"required":["groupBy"],"additionalProperties":false},"sortSettings":{"type":"object","properties":{"sortBy":{"type":"array","items":{"type":"object","properties":{"property":{"type":"string"},"order":{"type":"string","enum":["asc","desc"]}},"required":["property","order"],"additionalProperties":false}}},"additionalProperties":false},"propertiesSettings":{"type":"object","properties":{"hidden":{"type":"array","items":{"type":"string"}},"shown":{"type":"array","items":{"type":"string"}},"order":{"type":"array","items":{"type":"string"}}},"additionalProperties":false},"columnsOrder":{"type":"array","items":{"type":"string"}},"cardsOrder":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"tabIndex":{"type":"number"},"hidden":{"type":"boolean"},"title":{"type":"string","maxLength":20},"description":{"type":"string"}},"additionalProperties":false}},"showOnlyRelatedEntities":{"type":"boolean"},"showEmptyValues":{"type":"boolean"}},"required":["type","dataset"],"additionalProperties":false},{"type":"object","properties":{"id":{"description":"Unique identifier for the widget. Must be referenced in the layout.","type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"type":"string","enum":["table-entities-explorer-by-direction"]},"title":{"type":"string"},"blueprintConfig":{"type":"object","propertyNames":{"type":"string","pattern":"^[A-Za-z0-9@_.:\\\\/=-]*\\$(specificpath|upstream|downstream|custom|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})(\\$[A-Za-z0-9@_.:\\\\/=-]+)*$"},"additionalProperties":{"type":"object","properties":{"filterSettings":{"type":"object","properties":{"filterBy":{"$ref":"#/$defs/__schema1"}},"required":["filterBy"],"additionalProperties":false},"groupSettings":{"type":"object","properties":{"groupBy":{"type":"array","items":{"type":"string"}}},"required":["groupBy"],"additionalProperties":false},"sortSettings":{"type":"object","properties":{"sortBy":{"type":"array","items":{"type":"object","properties":{"property":{"type":"string"},"order":{"type":"string","enum":["asc","desc"]}},"required":["property","order"],"additionalProperties":false}}},"additionalProperties":false},"propertiesSettings":{"type":"object","properties":{"hidden":{"type":"array","items":{"type":"string"}},"shown":{"type":"array","items":{"type":"string"}},"order":{"type":"array","items":{"type":"string"}}},"additionalProperties":false},"tabIndex":{"type":"number"},"hidden":{"type":"boolean"},"title":{"type":"string","maxLength":50},"description":{"type":"string"},"dataset":{"$ref":"#/$defs/__schema1"},"targetBlueprint":{"type":"string"},"relatedProperty":{"type":"string"}},"additionalProperties":false}}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"id":{"description":"Unique identifier for the widget. Must be referenced in the layout.","type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"type":"string","enum":["table-audit-log"]},"title":{"type":"string"},"description":{"type":"string"},"query":{"type":"object","properties":{"identifier":{"type":"string","description":"An identifier of the log event you want to fetch."},"entity":{"type":"string","description":"Fetch all audit logs related to the specified entity."},"include_deleted_entities":{"type":"boolean","description":"Include deleted entities when searching for audit logs. This requires the `entity`, `blueprint`, `status`, `from` and `to` parameters. And the diff between `from` & `to` is limited to 1 day."},"blueprint":{"type":"string","description":"Fetch all audit logs related to the specified blueprint."},"run_id":{"type":"string","description":"Fetch all audit logs related to the specified action run."},"webhookId":{"type":"string","description":"Fetch all audit logs related to the specified webhook."},"webhookEventId":{"type":"string","description":"Fetch all audit logs related to the specified webhook event."},"origin":{"type":"array","items":{"type":"string"},"description":"Fetch all audit logs coming from the specified origin/s. This refers to the integration/s that triggered the log. For operations performed via Port's UI, the origin will be `UI`."},"InstallationId":{"type":"string","description":"Fetch all audit logs related to the specified integration."},"resources":{"anyOf":[{"type":"array","items":{"type":"string","enum":["entity","blueprint_permission","blueprint","run","webhook","action","action_permission","scorecard","integration","secret"]}},{"type":"string","enum":["entity","blueprint_permission","blueprint","run","webhook","action","action_permission","scorecard","integration","secret"]}],"description":"Fetch all audit logs related to the specified resource type/s.<br/>**Possible values**: [`blueprint`, `entity`, `run`, `webhook`, `scorecard`, `action`, `integration`]<br/>The `integration` value is **experimental** and may change in future API versions."},"includes":{"type":"array","items":{"type":"string","enum":["action","context","diff","identifier","resourceType","status","trigger","additionalData","message"]},"description":"The fields you want to include in the response. If used, only the specified fields will be included in the response."},"from":{"type":"string","description":"The starting timestamp of the audit logs you want to fetch, in the ISO format `2022-04-23T18:25:43.511Z`."},"to":{"type":"string","description":"The ending timestamp of the audit logs you want to fetch, in the ISO format `2022-04-23T18:25:43.511Z`."},"action":{"type":"string","description":"Fetch all audit logs with the specified action type - `CREATE`, `UPDATE`, or `DELETE`."},"status":{"type":"string","enum":["SUCCESS","FAILURE"],"description":"Fetch all audit logs with the specified status."},"limit":{"type":"number","description":"The maximum number of logs to return. Optional; defaults to `10000`. The previous default was `100000`, which could cause `504 Gateway Timeout` on large accounts. Use a lower value or narrow `from` and `to` if you still hit timeouts."},"actionType":{"type":"string","enum":["automation","self-service"]}},"additionalProperties":false},"tableConfig":{"type":"object","properties":{"filterSettings":{"type":"object","properties":{"filterBy":{"$ref":"#/$defs/__schema1"}},"required":["filterBy"],"additionalProperties":false},"groupSettings":{"type":"object","properties":{"groupBy":{"type":"array","items":{"type":"string"}}},"required":["groupBy"],"additionalProperties":false},"sortSettings":{"type":"object","properties":{"sortBy":{"type":"array","items":{"type":"object","properties":{"property":{"type":"string"},"order":{"type":"string","enum":["asc","desc"]}},"required":["property","order"],"additionalProperties":false}}},"additionalProperties":false},"propertiesSettings":{"type":"object","properties":{"hidden":{"type":"array","items":{"type":"string"}},"order":{"type":"array","items":{"type":"string"}}},"additionalProperties":false}},"additionalProperties":false}},"required":["type","query"],"additionalProperties":false},{"type":"object","properties":{"id":{"description":"Unique identifier for the widget. Must be referenced in the layout.","type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"type":"string","enum":["users-table"]},"title":{"type":"string"},"tableConfig":{"type":"object","properties":{"filterSettings":{"type":"object","properties":{"filterBy":{"$ref":"#/$defs/__schema1"}},"required":["filterBy"],"additionalProperties":false},"groupSettings":{"type":"object","properties":{"groupBy":{"type":"array","items":{"type":"string"}}},"required":["groupBy"],"additionalProperties":false},"sortSettings":{"type":"object","properties":{"sortBy":{"type":"array","items":{"type":"object","properties":{"property":{"type":"string"},"order":{"type":"string","enum":["asc","desc"]}},"required":["property","order"],"additionalProperties":false}}},"additionalProperties":false},"propertiesSettings":{"type":"object","properties":{"hidden":{"type":"array","items":{"type":"string"}},"order":{"type":"array","items":{"type":"string"}}},"additionalProperties":false}},"additionalProperties":false}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"id":{"description":"Unique identifier for the widget. Must be referenced in the layout.","type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"type":"string","enum":["teams-table"]},"title":{"type":"string"},"tableConfig":{"type":"object","properties":{"filterSettings":{"type":"object","properties":{"filterBy":{"$ref":"#/$defs/__schema1"}},"required":["filterBy"],"additionalProperties":false},"groupSettings":{"type":"object","properties":{"groupBy":{"type":"array","items":{"type":"string"}}},"required":["groupBy"],"additionalProperties":false},"sortSettings":{"type":"object","properties":{"sortBy":{"type":"array","items":{"type":"object","properties":{"property":{"type":"string"},"order":{"type":"string","enum":["asc","desc"]}},"required":["property","order"],"additionalProperties":false}}},"additionalProperties":false},"propertiesSettings":{"type":"object","properties":{"hidden":{"type":"array","items":{"type":"string"}},"order":{"type":"array","items":{"type":"string"}}},"additionalProperties":false}},"additionalProperties":false}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"id":{"description":"Unique identifier for the widget. Must be referenced in the layout.","type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"type":"string","enum":["runs-table"]},"title":{"type":"string"},"query":{"type":"object","properties":{"entity":{"type":"string","description":"The identifier of the entity associated with the action run."},"blueprint":{"type":"string","description":"The identifier of the blueprint associated with the action run."},"active":{"type":"boolean","description":"If `true`, only running action runs will be fetched."},"user_email":{"type":"string","description":"The email of the user who initiated the action run."},"user_id":{"type":"string","description":"The id of the user who initiated the action run."},"limit":{"type":"number","minimum":1,"maximum":1000,"description":"The maximum number of action runs to fetch."},"exclude":{"type":"array","items":{"type":"string"},"description":"The fields to exclude from the response"},"external_run_id":{"type":"string","description":"The run id of your backend, for example the id that GitHub gives the workflow. This can be used to identify the action run instead of the `run_id`."},"action":{"anyOf":[{"type":"string"},{"type":"null"}]},"source":{"type":"array","items":{"type":"string","enum":["UI","API","AUTOMATION"]}},"next":{"type":"string","description":"An opaque cursor for pagination. Pass the `next` value from the previous response to fetch the next page of results."},"version":{"anyOf":[{"type":"string","enum":["v1","v2"],"description":"Specifies the API version to use. Please use `v2` for the latest version of the API."},{"type":"null"}]}},"additionalProperties":false},"tableConfig":{"type":"object","properties":{"filterSettings":{"type":"object","properties":{"filterBy":{"$ref":"#/$defs/__schema1"}},"required":["filterBy"],"additionalProperties":false},"groupSettings":{"type":"object","properties":{"groupBy":{"type":"array","items":{"type":"string"}}},"required":["groupBy"],"additionalProperties":false},"sortSettings":{"type":"object","properties":{"sortBy":{"type":"array","items":{"type":"object","properties":{"property":{"type":"string"},"order":{"type":"string","enum":["asc","desc"]}},"required":["property","order"],"additionalProperties":false}}},"additionalProperties":false},"propertiesSettings":{"type":"object","properties":{"hidden":{"type":"array","items":{"type":"string"}},"order":{"type":"array","items":{"type":"string"}}},"additionalProperties":false}},"additionalProperties":false}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"id":{"description":"Unique identifier for the widget. Must be referenced in the layout.","type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"type":"string","enum":["workflow-runs-history-table"]},"query":{"type":"object","properties":{},"additionalProperties":false},"tableConfig":{"type":"object","properties":{"filterSettings":{"type":"object","properties":{"filterBy":{"$ref":"#/$defs/__schema1"}},"required":["filterBy"],"additionalProperties":false},"groupSettings":{"type":"object","properties":{"groupBy":{"type":"array","items":{"type":"string"}}},"required":["groupBy"],"additionalProperties":false},"sortSettings":{"type":"object","properties":{"sortBy":{"type":"array","items":{"type":"object","properties":{"property":{"type":"string"},"order":{"type":"string","enum":["asc","desc"]}},"required":["property","order"],"additionalProperties":false}}},"additionalProperties":false},"propertiesSettings":{"type":"object","properties":{"hidden":{"type":"array","items":{"type":"string"}},"order":{"type":"array","items":{"type":"string"}}},"additionalProperties":false}},"additionalProperties":false}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"id":{"description":"Unique identifier for the widget. Must be referenced in the layout.","type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"type":"string","enum":["run-info"]},"title":{"type":"string"},"runId":{"type":"string"}},"required":["type","runId"],"additionalProperties":false},{"type":"object","properties":{"id":{"description":"Unique identifier for the widget. Must be referenced in the layout.","type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"type":"string","enum":["user-info"]},"title":{"type":"string"},"user_email":{"type":"string"}},"required":["type","user_email"],"additionalProperties":false},{"type":"object","properties":{"id":{"description":"Unique identifier for the widget. Must be referenced in the layout.","type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"type":"string","enum":["graph-entities-explorer"]},"title":{"type":"string"},"dataset":{"$ref":"#/$defs/__schema1"},"hiddenBlueprints":{"type":"array","items":{"type":"string"}}},"required":["type","dataset"],"additionalProperties":false},{"type":"object","properties":{"id":{"description":"Unique identifier for the widget. Must be referenced in the layout.","type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"type":"string","enum":["bar-chart"]},"icon":{"type":"string"},"title":{"type":"string"},"blueprint":{"type":"string"},"property":{"type":"string","pattern":"^((property#|mirror-property#|calculation-property#|aggregation-property#|relation#|scorecard#|scorecard-rule#).+|\\$(identifier|title|team))$","description":"Property to group by for bars. Use prefixed format: \"property#<name>\", \"mirror-property#<name>\", \"calculation-property#<name>\", \"aggregation-property#<name>\", \"relation#<name>\", \"scorecard#<name>\", \"scorecard-rule#<scorecardId>#<ruleId>\". Or use meta fields: \"$identifier\", \"$title\", \"$team\"."},"description":{"type":"string"},"dataset":{"$ref":"#/$defs/__schema1"},"emptyStateText":{"type":"string"},"segmentTableViewConfig":{"description":"Configuration for segment table views","type":"object","propertyNames":{"type":"string","pattern":"^(?!\\.{1,2}$)[\\p{L}0-9@_.+:\\\\/='-]+$"},"additionalProperties":{"type":"object","properties":{"filterSettings":{"type":"object","properties":{"filterBy":{"$ref":"#/$defs/__schema1"}},"required":["filterBy"],"additionalProperties":false},"groupSettings":{"type":"object","properties":{"groupBy":{"type":"array","items":{"type":"string"}}},"required":["groupBy"],"additionalProperties":false},"sortSettings":{"type":"object","properties":{"sortBy":{"type":"array","items":{"type":"object","properties":{"property":{"type":"string"},"order":{"type":"string","enum":["asc","desc"]}},"required":["property","order"],"additionalProperties":false}}},"additionalProperties":false},"propertiesSettings":{"type":"object","properties":{"hidden":{"type":"array","items":{"type":"string"}},"shown":{"type":"array","items":{"type":"string"}},"order":{"type":"array","items":{"type":"string"}}},"additionalProperties":false},"columnsOrder":{"type":"array","items":{"type":"string"}},"cardsOrder":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"tabIndex":{"type":"number"},"hidden":{"type":"boolean"},"title":{"type":"string","maxLength":20},"description":{"type":"string"}},"additionalProperties":false}},"showOnlyRelatedEntities":{"type":"boolean"}},"required":["type","title","blueprint","property","dataset"],"additionalProperties":false},{"type":"object","properties":{"id":{"description":"Unique identifier for the widget. Must be referenced in the layout.","type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"type":"string","enum":["entities-pie-chart"]},"icon":{"type":"string"},"title":{"type":"string"},"blueprint":{"type":"string"},"property":{"type":"string","pattern":"^((property#|mirror-property#|calculation-property#|aggregation-property#|relation#|scorecard#|scorecard-rule#).+|\\$(identifier|title|team))$","description":"Property to group by for pie slices. Use prefixed format: \"property#<name>\", \"mirror-property#<name>\", \"calculation-property#<name>\", \"aggregation-property#<name>\", \"relation#<name>\", \"scorecard#<name>\", \"scorecard-rule#<scorecardId>#<ruleId>\". Or use meta fields: \"$identifier\", \"$title\", \"$team\"."},"description":{"type":"string"},"dataset":{"$ref":"#/$defs/__schema1"},"emptyStateText":{"type":"string"},"segmentTableViewConfig":{"description":"Configuration for segment table views","type":"object","propertyNames":{"type":"string","pattern":"^(?!\\.{1,2}$)[\\p{L}0-9@_.+:\\\\/='-]+$"},"additionalProperties":{"type":"object","properties":{"filterSettings":{"type":"object","properties":{"filterBy":{"$ref":"#/$defs/__schema1"}},"required":["filterBy"],"additionalProperties":false},"groupSettings":{"type":"object","properties":{"groupBy":{"type":"array","items":{"type":"string"}}},"required":["groupBy"],"additionalProperties":false},"sortSettings":{"type":"object","properties":{"sortBy":{"type":"array","items":{"type":"object","properties":{"property":{"type":"string"},"order":{"type":"string","enum":["asc","desc"]}},"required":["property","order"],"additionalProperties":false}}},"additionalProperties":false},"propertiesSettings":{"type":"object","properties":{"hidden":{"type":"array","items":{"type":"string"}},"shown":{"type":"array","items":{"type":"string"}},"order":{"type":"array","items":{"type":"string"}}},"additionalProperties":false},"columnsOrder":{"type":"array","items":{"type":"string"}},"cardsOrder":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"tabIndex":{"type":"number"},"hidden":{"type":"boolean"},"title":{"type":"string","maxLength":20},"description":{"type":"string"}},"additionalProperties":false}},"showOnlyRelatedEntities":{"type":"boolean"}},"required":["type","title","property","dataset"],"additionalProperties":false},{"type":"object","properties":{"id":{"description":"Unique identifier for the widget. Must be referenced in the layout.","type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"type":"string","enum":["line-chart"]},"icon":{"type":"string"},"title":{"type":"string"},"blueprint":{"type":"string"},"chartType":{"type":"string","enum":["propertiesValueHistory","aggregatePropertiesValues","countEntities"]},"xAxisTitle":{"type":"string"},"yAxisTitle":{"type":"string"},"timeInterval":{"type":"string","enum":["hour","day","isoWeek","month","quarter"]},"timeRange":{"type":"object","properties":{"preset":{"type":"string","enum":["today","yesterday","lastDay","lastWeek","last2Weeks","lastMonth","last3Months","last6Months","last12Months","last2Years","last3Years"]}},"required":["preset"],"additionalProperties":false},"description":{"type":"string"},"emptyStateText":{"type":"string"},"entity":{"type":"string"},"properties":{"minItems":1,"type":"array","items":{"type":"string","pattern":"^(properties\\.|relations\\.).+$"}},"func":{"type":"string","enum":["sum","average","min","max","median","last","count"]},"measureTimeBy":{"description":"Property identifier for time measurement (no prefix needed; e.g. \"deploymentDate\" or \"$createdAt\")","type":"string"},"dataset":{"$ref":"#/$defs/__schema1"},"breakdownProperty":{"description":"Property identifier for breakdown (no prefix needed)","type":"string"}},"required":["type","title","blueprint","chartType"],"additionalProperties":false,"title":"Line chart"},{"type":"object","properties":{"id":{"description":"Unique identifier for the widget. Must be referenced in the layout.","type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"type":"string","enum":["multi-line-chart"]},"icon":{"type":"string"},"title":{"type":"string"},"xAxisTitle":{"type":"string"},"yAxisTitle":{"type":"string"},"timeInterval":{"type":"string","enum":["hour","day","isoWeek","month","quarter"]},"timeRange":{"type":"object","properties":{"preset":{"type":"string","enum":["today","yesterday","lastDay","lastWeek","last2Weeks","lastMonth","last3Months","last6Months","last12Months","last2Years","last3Years"]}},"required":["preset"],"additionalProperties":false},"description":{"type":"string"},"emptyStateText":{"type":"string"},"lines":{"minItems":1,"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"blueprint":{"type":"string"},"chartType":{"type":"string","enum":["propertiesValueHistory","aggregatePropertiesValues","countEntities"]},"entity":{"type":"string"},"properties":{"minItems":1,"type":"array","items":{"type":"string","pattern":"^(properties\\.|relations\\.).+$"}},"func":{"type":"string","enum":["sum","average","min","max","median","last","count"]},"measureTimeBy":{"description":"Property identifier for time measurement (no prefix needed; e.g. \"deploymentDate\" or \"$createdAt\")","type":"string"},"dataset":{"$ref":"#/$defs/__schema1"},"breakdownProperty":{"description":"Property identifier for breakdown (no prefix needed)","type":"string"}},"required":["title","blueprint","chartType"],"additionalProperties":false},"description":"Array of line configurations"},"baselines":{"description":"Horizontal reference lines","type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"value":{"type":"number"},"color":{"type":"string"}},"required":["value"],"additionalProperties":false}},"nullValueDisplayMode":{"type":"string","enum":["zero","null"]}},"required":["type","title","timeInterval","timeRange","lines"],"additionalProperties":false},{"type":"object","properties":{"id":{"description":"Unique identifier for the widget. Must be referenced in the layout.","type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"type":"string","enum":["entities-number-chart"]},"title":{"type":"string"},"icon":{"type":"string"},"description":{"type":"string"},"emptyStateText":{"type":"string"},"unit":{"type":"string","enum":["none","$","€","£","%","custom"]},"unitAlignment":{"type":"string","enum":["left","right"]},"conditionalFormatting":{"type":"array","items":{"type":"object","properties":{"operator":{"type":"string","enum":[">",">=","<","<=","=","!="]},"value":{"type":"number"},"message":{"type":"string","maxLength":50},"description":{"type":"string","maxLength":200},"color":{"type":"string","enum":["blue","turquoise","orange","purple","pink","yellow","green","red","gold","silver","paleBlue","darkGray","lightGray","bronze","lime","olive","brown"]}},"required":["operator","value"],"additionalProperties":false}},"displayFormatting":{"type":"string","enum":["none","round","custom"]},"decimalPlaces":{"type":"string","enum":[".0",".00",".000",".0000",".00000"]},"chartType":{"type":"string","enum":["aggregateByProperty","countEntities","displaySingleProperty"]},"blueprint":{"type":"string"},"calculationBy":{"type":"string","enum":["entities","property"]},"dataset":{"anyOf":[{"type":"array","items":{}},{"$ref":"#/$defs/__schema1"}]},"segmentTableViewConfig":{"type":"object","propertyNames":{"type":"string","pattern":"^(?!\\.{1,2}$)[\\p{L}0-9@_.+:\\\\/='-]+$"},"additionalProperties":{"type":"object","properties":{"filterSettings":{"type":"object","properties":{"filterBy":{"$ref":"#/$defs/__schema1"}},"required":["filterBy"],"additionalProperties":false},"groupSettings":{"type":"object","properties":{"groupBy":{"type":"array","items":{"type":"string"}}},"required":["groupBy"],"additionalProperties":false},"sortSettings":{"type":"object","properties":{"sortBy":{"type":"array","items":{"type":"object","properties":{"property":{"type":"string"},"order":{"type":"string","enum":["asc","desc"]}},"required":["property","order"],"additionalProperties":false}}},"additionalProperties":false},"propertiesSettings":{"type":"object","properties":{"hidden":{"type":"array","items":{"type":"string"}},"shown":{"type":"array","items":{"type":"string"}},"order":{"type":"array","items":{"type":"string"}}},"additionalProperties":false},"columnsOrder":{"type":"array","items":{"type":"string"}},"cardsOrder":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"tabIndex":{"type":"number"},"hidden":{"type":"boolean"},"title":{"type":"string","maxLength":20},"description":{"type":"string"}},"additionalProperties":false}},"showOnlyRelatedEntities":{"type":"boolean"},"property":{"description":"Property identifier (no prefix needed)","type":"string"},"entity":{"type":"string"},"func":{"type":"string","enum":["sum","average","min","max","median","count"]},"averageOf":{"type":"string","enum":["hour","day","week","month","total"]},"measureTimeBy":{"type":"string"},"unitCustom":{"type":"string"}},"required":["type","title","unit","blueprint"],"additionalProperties":false},{"type":"object","properties":{"id":{"description":"Unique identifier for the widget. Must be referenced in the layout.","type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"type":"string","enum":["iframe-widget"]},"title":{"type":"string"},"icon":{"type":"string"},"description":{"type":"string"},"url":{"anyOf":[{"type":"string","format":"uri"},{"type":"string","pattern":"^\\/(?!\\/)"}],"description":"Absolute URL or org-relative path to embed (e.g. /organization/home)"},"urlType":{"type":"string","enum":["public","protected"]},"popupAuth":{"type":"boolean"},"tokenUrl":{"type":"string","format":"uri"},"authorizationUrl":{"type":"string","format":"uri"},"clientId":{"type":"string"},"scopes":{"type":"array","items":{"type":"string"}}},"required":["type","title","url","urlType"],"additionalProperties":false},{"type":"object","properties":{"id":{"description":"Unique identifier for the widget. Must be referenced in the layout.","type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"type":"string","enum":["markdown"]},"title":{"type":"string"},"description":{"type":"string"},"icon":{"type":"string"},"source":{"type":"string","enum":["custom","property"]},"markdown":{"description":"Markdown content to render","type":"string"},"blueprintIdentifier":{"description":"Blueprint identifier containing the markdown property","type":"string"},"propertyIdentifier":{"description":"Property identifier containing the markdown content","type":"string"},"entityIdentifier":{"description":"Entity identifier to read the markdown property from","type":"string"}},"required":["type","title"],"additionalProperties":false},{"type":"object","properties":{"id":{"description":"Unique identifier for the widget. Must be referenced in the layout.","type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"type":"string","enum":["team-info"]},"title":{"type":"string"},"team_name":{"type":"string"}},"required":["type","team_name"],"additionalProperties":false},{"type":"object","properties":{"id":{"description":"Unique identifier for the widget. Must be referenced in the layout.","type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"type":"string","enum":["recently-viewed-entities"]},"title":{"type":"string"},"icon":{"type":"string"},"description":{"type":"string"}},"required":["type","title"],"additionalProperties":false},{"type":"object","properties":{"id":{"description":"Unique identifier for the widget. Must be referenced in the layout.","type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"type":"string","enum":["recently-used-actions"]},"title":{"type":"string"},"icon":{"type":"string"},"description":{"type":"string"}},"required":["type","title"],"additionalProperties":false},{"type":"object","properties":{"id":{"description":"Unique identifier for the widget. Must be referenced in the layout.","type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"type":"string","enum":["my-entities"]},"title":{"type":"string"},"description":{"type":"string"},"icon":{"type":"string"}},"required":["type","title"],"additionalProperties":false},{"type":"object","properties":{"id":{"description":"Unique identifier for the widget. Must be referenced in the layout.","type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"type":"string","enum":["custom-widget"]},"title":{"type":"string"},"icon":{"type":"string"},"description":{"type":"string"},"pluginId":{"type":"string"},"paramValues":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"type":{"type":"string","enum":["string","number","boolean","array","object","blueprint"]},"value":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"array","items":{}},{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}]}},"required":["type","value"],"additionalProperties":false}}},"required":["type","title","pluginId"],"additionalProperties":false},{"type":"object","properties":{"id":{"description":"Unique identifier for the widget. Must be referenced in the layout.","type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"type":"string","enum":["dashboard-widget"]},"layout":{"type":"array","items":{"type":"object","properties":{"height":{"type":"number","description":"Row height in pixels. Minimum 400."},"columns":{"type":"array","items":{"type":"object","properties":{"size":{"type":"number","description":"Column width (3-12). Must be a whole number. All column sizes in a row must sum to exactly 12."},"id":{"type":"string","description":"Widget id to place in this column. Must match a widget id in the widgets array."}},"required":["size","id"],"additionalProperties":false},"description":"Columns in this row. Maximum 4 columns per row. Column sizes must sum to exactly 12."}},"required":["height","columns"],"additionalProperties":false},"description":"Dashboard layout as rows. Each row has a height and columns. Each column references a widget by id and specifies its size (3-12). Column sizes in each row must sum to 12. The number of layout columns must match the number of widgets."},"widgets":{"type":"array","items":{"$ref":"#/$defs/__schema0"}},"fullPage":{"description":"When true and the dashboard has exactly one child widget, that widget is rendered borderless and full-page (no header/border; menu moves to the page filter row). Ignored while there is more than one child widget; restoring a single child re-enables full-page mode.","type":"boolean"}},"required":["type","layout","widgets"],"additionalProperties":false},{"type":"object","properties":{"id":{"description":"Unique identifier for the widget. Must be referenced in the layout.","type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"type":"string","enum":["grouper"]},"title":{"type":"string"},"displayMode":{"type":"string","enum":["tabs","switch"]},"activeGroupUrlParam":{"type":"string"},"groupsOrder":{"type":"array","items":{"type":"string"}},"groups":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"icon":{"type":"string"},"widgets":{"type":"array","items":{"$ref":"#/$defs/__schema0"}}},"required":["title","widgets"],"additionalProperties":false}}},"required":["type","displayMode","groups"],"additionalProperties":false}]},"__schema1":{"type":"object","properties":{"combinator":{"type":"string","enum":["and","or"],"description":"The combinator to use for the rules."},"rules":{"type":"array","items":{"anyOf":[{"type":"object","properties":{"property":{"anyOf":[{"type":"string"},{"type":"object","properties":{"property":{"type":"string"},"context":{"type":"string","enum":["user","userTeams"]}},"required":["property","context"],"additionalProperties":false,"title":"User-context field"}],"title":"Contexted property"},"operator":{"type":"string","enum":["between","notBetween","="]},"value":{"anyOf":[{"type":"object","properties":{"from":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"to":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"}},"required":["from","to"],"additionalProperties":false,"description":"Date Range"},{"type":"object","properties":{"preset":{"type":"string","enum":["today","tomorrow","yesterday","lastDay","lastWeek","last2Weeks","lastMonth","last3Months","last6Months","last12Months","last2Years","last3Years","nextDay","nextWeek","next2Weeks","nextMonth","next3Months","next6Months","next12Months"]}},"required":["preset"],"additionalProperties":false,"description":"Date Preset"},{"type":"object","properties":{"property":{"type":"string"},"context":{"type":"string","enum":["user","userTeams"]}},"required":["property","context"],"additionalProperties":false,"title":"User-context field"}]}},"required":["property","operator","value"],"additionalProperties":false},{"type":"object","properties":{"operator":{"type":"string","enum":["isEmpty","isNotEmpty"]},"property":{"type":"string"}},"required":["operator","property"],"additionalProperties":false},{"type":"object","properties":{"property":{"anyOf":[{"type":"string"},{"type":"object","properties":{"property":{"type":"string"},"context":{"type":"string","enum":["user","userTeams"]}},"required":["property","context"],"additionalProperties":false,"title":"User-context field"}],"title":"Contexted property"},"operator":{"type":"string","enum":[">",">=","<","<="]},"value":{"anyOf":[{"type":"number","description":"number"},{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","description":"date-time"},{"type":"object","properties":{"property":{"type":"string"},"context":{"type":"string","enum":["user","userTeams"]}},"required":["property","context"],"additionalProperties":false,"title":"User-context field"}]}},"required":["property","operator","value"],"additionalProperties":false},{"type":"object","properties":{"operator":{"type":"string","enum":["isExpired","isNotExpired"]},"property":{"type":"string"}},"required":["operator","property"],"additionalProperties":false},{"type":"object","properties":{"property":{"anyOf":[{"type":"string"},{"type":"object","properties":{"property":{"type":"string"},"context":{"type":"string","enum":["user","userTeams"]}},"required":["property","context"],"additionalProperties":false,"title":"User-context field"}],"title":"Contexted property"},"operator":{"type":"string","enum":["=","!=","containsAny","contains","doesNotContains","beginsWith","doesNotBeginsWith","endsWith","doesNotEndsWith","in","notIn"]},"value":{"anyOf":[{"type":"null","description":"null"},{"type":"string","description":"string"},{"type":"number","description":"number"},{"type":"boolean","description":"boolean"},{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","description":"date-time"},{"type":"array","items":{"type":"string"},"description":"array"},{"type":"array","items":{"type":"number"},"description":"array"},{"type":"array","items":{"type":"boolean"},"description":"array"},{"type":"array","items":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"description":"array"},{"type":"object","properties":{"property":{"type":"string"},"context":{"type":"string","enum":["user","userTeams"]}},"required":["property","context"],"additionalProperties":false,"title":"User-context field"}]}},"required":["property","operator","value"],"additionalProperties":false},{"type":"object","properties":{"operator":{"type":"string","enum":["relatedTo"]},"blueprint":{"type":"string"},"value":{"anyOf":[{"type":"string","description":"string"},{"type":"array","items":{"type":"string"},"description":"array"}]},"direction":{"type":"string","enum":["upstream","downstream"]},"required":{"type":"boolean"}},"required":["operator","blueprint","value"],"additionalProperties":false},{"type":"object","properties":{"propertySchema":{"type":"object","properties":{"type":{"type":"string"},"format":{"type":"string"},"items":{"type":"object","properties":{"type":{"type":"string"},"format":{"type":"string"}},"required":["type"],"additionalProperties":false}},"required":["type"],"additionalProperties":false},"operator":{"type":"string","enum":["=","!=","contains"]},"value":{"anyOf":[{"type":"null","description":"null"},{"type":"string","description":"string"},{"type":"number","description":"number"},{"type":"boolean","description":"boolean"}]}},"required":["propertySchema","operator"],"additionalProperties":false},{"type":"object","properties":{"property":{"anyOf":[{"type":"object","properties":{"path":{"minItems":1,"type":"array","items":{"anyOf":[{"type":"string","title":"Relation identifier"},{"type":"object","properties":{"relation":{"type":"string"},"maxHops":{"type":"number","minimum":1,"maximum":15}},"additionalProperties":false,"title":"Relation with max hops"}]}},"fromBlueprint":{"type":"string"}},"required":["path"],"additionalProperties":false,"title":"Path filter property"},{"anyOf":[{"type":"string"},{"type":"object","properties":{"property":{"type":"string"},"context":{"type":"string","enum":["user","userTeams"]}},"required":["property","context"],"additionalProperties":false,"title":"User-context field"}],"title":"Contexted property"}]},"operator":{"type":"string","enum":["matchAny"]},"value":{"anyOf":[{"type":"array","items":{"type":"string"}},{"anyOf":[{"type":"string"},{"type":"object","properties":{"property":{"type":"string"},"context":{"type":"string","enum":["user","userTeams"]}},"required":["property","context"],"additionalProperties":false,"title":"User-context field"}],"title":"Contexted property"}]}},"required":["property","operator","value"],"additionalProperties":false,"description":"matchAny Rule"},{"$ref":"#/$defs/__schema1"}]}}},"required":["combinator","rules"],"additionalProperties":false,"title":"Entities query"}}}}},"required":true},"security":[{"bearer":[]}],"x-should-be-exposed-to-customers":true,"responses":{"201":{"description":"Created successfully"},"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}},"413":{"description":"Request body is too large (limit is 1MiB)","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false,"description":"Request body is too large (limit is 1MiB)"}}}},"422":{"description":"The json provided does not match the route's schema","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"The json provided does not match the route's schema"}}}}}}},"/v1/pages/version":{"get":{"summary":"Get pages API version","tags":["Pages"],"description":"Returns whether the pages API is in `beta` or `GA` for the organization, based on the pages API validation feature flag.","security":[{"bearer":[]}],"x-should-be-exposed-to-customers":false,"responses":{"200":{"description":"Retrieved successfully","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"enum":[true]},"version":{"type":"string","enum":["beta","GA"]}},"required":["version","ok"],"additionalProperties":false,"description":"Retrieved successfully"}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}}}}},"/v1/pages/{identifier}":{"get":{"summary":"Get a page","tags":["Pages"],"description":"This route allows you to get a specific page in your portal.<br/><br/>To learn more about pages, checkout the [documentation](https://docs.port.io/interface-builder/port-interface/page/catalog-page).","parameters":[{"schema":{"type":"string"},"in":"path","name":"identifier","required":true,"description":"The unique identifier of the resource you want to operate on."}],"security":[{"bearer":[]}],"x-should-be-exposed-to-customers":true,"responses":{"200":{"description":"Retrieved successfully.","content":{"application/json":{"schema":{"description":"Retrieved successfully.","type":"object","properties":{"ok":{"enum":[true]},"page":{"type":"object","properties":{"identifier":{"type":"string","pattern":"^(?!\\.{1,2}$)(?:[A-Za-z0-9@_.:\\/=\\-]|\\$team\\b|\\$users\\b|\\$user\\b|\\$AuditLog\\b|\\$run\\b|\\$RunsHistory\\b|\\$home)*$","minLength":1,"example":"string"},"blueprint":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"icon":{"type":"string"},"sidebar":{"type":"string","nullable":true,"enum":[null,"catalog"]},"parent":{"type":"string","nullable":true},"after":{"type":"string","nullable":true},"locked":{"type":"boolean"},"requiredQueryParams":{"type":"array","items":{"type":"string"}},"widgets":{"type":"array","items":{"$ref":"#/components/schemas/def-8"}},"type":{"type":"string","enum":["run","user","team","entity","users-and-teams","runs-history","audit-log","blueprint-entities","dashboard","home"]},"visibility":{"type":"string","enum":["private","org"],"default":"org"},"showInSidebar":{"type":"boolean","default":true},"section":{"type":"string","enum":["software_catalog","organization"],"default":"software_catalog"},"pageFilters":{"type":"array","items":{"type":"object","properties":{"query":{"type":"object","properties":{"blueprint":{"type":"string"},"combinator":{"enum":["and"],"description":"The combinator to use for the rules."},"rules":{"type":"array","items":{"anyOf":[{"type":"object","title":"Date Rule","properties":{"property":{"title":"Contexted property","oneOf":[{"type":"string"},{"type":"object","title":"User-context field","properties":{"property":{"type":"string"},"context":{"type":"string","enum":["user","userTeams"]}},"required":["property","context"]}]},"operator":{"enum":["between","notBetween","="]},"value":{"type":"object","oneOf":[{"type":"object","title":"Date Range","properties":{"from":{"type":"string","format":"date-time"},"to":{"type":"string","format":"date-time"}},"required":["from","to"]},{"type":"object","title":"Date Preset","properties":{"preset":{"type":"string","enum":["today","tomorrow","yesterday","lastDay","lastWeek","last2Weeks","lastMonth","last3Months","last6Months","last12Months","last2Years","last3Years","nextDay","nextWeek","next2Weeks","nextMonth","next3Months","next6Months","next12Months"]}},"required":["preset"]},{"type":"object","title":"User-context field","properties":{"property":{"type":"string"},"context":{"type":"string","enum":["user","userTeams"]}},"required":["property","context"]}]}},"required":["property","operator","value"],"additionalProperties":false},{"type":"object","title":"Empty Rule","oneOf":[{"type":"object","title":"Empty Rule","properties":{"operator":{"enum":["isEmpty","isNotEmpty"]},"property":{"type":"string"}},"required":["operator","property"],"additionalProperties":false}]},{"type":"object","title":"Number Rule","properties":{"property":{"title":"Contexted property","oneOf":[{"type":"string"},{"type":"object","title":"User-context field","properties":{"property":{"type":"string"},"context":{"type":"string","enum":["user","userTeams"]}},"required":["property","context"]}]},"operator":{"enum":[">",">=","<","<="]},"value":{"anyOf":[{"type":"number","title":"number"},{"type":"string","format":"date-time","title":"date-time"},{"type":"object","title":"User-context field","properties":{"property":{"type":"string"},"context":{"type":"string","enum":["user","userTeams"]}},"required":["property","context"]}]}},"required":["property","operator","value"],"additionalProperties":false},{"type":"object","title":"Expired Rule","oneOf":[{"type":"object","title":"Expired Rule","properties":{"operator":{"enum":["isExpired","isNotExpired"]},"property":{"type":"string"}},"required":["operator","property"],"additionalProperties":false}]},{"type":"object","title":"String Rule","oneOf":[{"type":"object","title":"String Rule","properties":{"property":{"title":"Contexted property","oneOf":[{"type":"string"},{"type":"object","title":"User-context field","properties":{"property":{"type":"string"},"context":{"type":"string","enum":["user","userTeams"]}},"required":["property","context"]}]},"operator":{"enum":["=","!=","containsAny","contains","doesNotContains","beginsWith","doesNotBeginsWith","endsWith","doesNotEndsWith","in","notIn"]},"value":{"anyOf":[{"type":"null","title":"null"},{"type":"string","title":"string"},{"type":"number","title":"number"},{"type":"boolean","title":"boolean"},{"type":"string","format":"date-time","title":"date-time"},{"type":"array","items":{"type":"string"},"title":"array"},{"type":"array","items":{"type":"number"},"title":"array"},{"type":"array","items":{"type":"boolean"},"title":"array"},{"type":"array","items":{"type":"string","format":"date-time"},"title":"array"},{"type":"object","title":"User-context field","properties":{"property":{"type":"string"},"context":{"type":"string","enum":["user","userTeams"]}},"required":["property","context"]}]}},"additionalProperties":false,"required":["property","operator","value"]}]},{"type":"object","title":"Relation Rule","properties":{"operator":{"enum":["relatedTo"]},"blueprint":{"type":"string"},"value":{"anyOf":[{"type":"string","title":"string"},{"type":"array","items":{"type":"string"},"title":"array"}]},"direction":{"enum":["upstream","downstream"]},"required":{"type":"boolean"}},"additionalProperties":false,"required":["operator","value","blueprint"]},{"type":"object","title":"Property schema rule","properties":{"propertySchema":{"type":"object","properties":{"type":{"type":"string"},"format":{"type":"string"},"items":{"type":"object","properties":{"type":{"type":"string"},"format":{"type":"string"}},"required":["type"]}},"required":["type"],"additionalProperties":false},"operator":{"enum":["=","!=","contains"]},"value":{"anyOf":[{"type":"null","title":"null"},{"type":"string","title":"string"},{"type":"number","title":"number"},{"type":"boolean","title":"boolean"}]}},"required":["operator","propertySchema"],"additionalProperties":false},{"type":"object","title":"matchAny Rule","anyOf":[{"type":"object","title":"Property matchAny rule","properties":{"property":{"oneOf":[{"type":"object","title":"Path filter property","properties":{"path":{"type":"array","minItems":1,"items":{"anyOf":[{"type":"string","title":"Relation identifier"},{"type":"object","title":"Relation with max hops","properties":{"relation":{"type":"string"},"maxHops":{"type":"number","minimum":1,"maximum":15}}}]}},"fromBlueprint":{"type":"string"}},"required":["path"],"additionalProperties":false},{"title":"Contexted property","oneOf":[{"type":"string"},{"type":"object","title":"User-context field","properties":{"property":{"type":"string"},"context":{"type":"string","enum":["user","userTeams"]}},"required":["property","context"]}]}]},"operator":{"type":"string","enum":["matchAny"]},"value":{"anyOf":[{"type":"array","items":{"type":"string"}},{"title":"Contexted property","oneOf":[{"type":"string"},{"type":"object","title":"User-context field","properties":{"property":{"type":"string"},"context":{"type":"string","enum":["user","userTeams"]}},"required":["property","context"]}]}]}},"required":["property","operator","value"],"additionalProperties":false}]},{"$ref":"#/components/schemas/def-1"}]}}},"required":["combinator","rules"],"additionalProperties":false,"example":{"combinator":"and","rules":[{"property":"$blueprint","operator":"=","value":"service"}]}},"identifier":{"type":"string"},"title":{"type":"string"}},"required":["identifier","title","query"],"additionalProperties":false}},"pageFilterPresets":{"type":"array","items":{"type":"object","properties":{"identifier":{"type":"string"},"title":{"type":"string"},"filters":{"type":"array","items":{"type":"object","properties":{"query":{"$ref":"#/components/schemas/def-9"},"identifier":{"type":"string"},"title":{"type":"string"}},"required":["identifier","title","query"],"additionalProperties":false}}},"required":["identifier","title","filters"],"additionalProperties":false}},"pageDateFilter":{"type":"object","nullable":true,"properties":{"range":{"oneOf":[{"type":"object","properties":{"type":{"enum":["quickRange"]},"quickRange":{"type":"string","enum":["today","yesterday","7d","30d","3m","6m","12m"]}},"required":["type","quickRange"],"additionalProperties":false},{"type":"object","properties":{"type":{"enum":["fixed"]},"from":{"type":"string","format":"date"},"to":{"type":"string","format":"date"}},"required":["type","from","to"],"additionalProperties":false},{"type":"object","properties":{"type":{"enum":["since"]},"from":{"type":"string","format":"date"}},"required":["type","from"],"additionalProperties":false},{"type":"object","properties":{"type":{"enum":["last"]},"amount":{"type":"integer","minimum":1},"unit":{"type":"string","enum":["day","week","month","quarter"]},"offset":{"type":"integer","minimum":0}},"required":["type","amount","unit"],"additionalProperties":false},{"type":"object","properties":{"type":{"enum":["next"]},"amount":{"type":"integer","minimum":1},"unit":{"type":"string","enum":["day","week","month","quarter"]},"offset":{"type":"integer","minimum":0}},"required":["type","amount","unit"],"additionalProperties":false},{"type":"object","properties":{"type":{"enum":["periodToDate"]},"period":{"type":"string","enum":["day","week","month","quarter","year"]}},"required":["type","period"],"additionalProperties":false}]}},"required":["range"],"additionalProperties":false},"protected":{"type":"boolean"},"owner":{"type":"string"}}}},"required":["page","ok"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}}}},"patch":{"summary":"Patch a page","tags":["Pages"],"description":"This route allows you to partially update a specific page in your portal.<br/><br/>To learn more about pages, checkout the [documentation](https://docs.port.io/interface-builder/port-interface/page/catalog-page).","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"identifier":{"type":"string","minLength":1,"pattern":"^(?!\\.{1,2}$)(?:[A-Za-z0-9@_.:\\/=\\-]|\\$team\\b|\\$users\\b|\\$user\\b|\\$AuditLog\\b|\\$run\\b|\\$RunsHistory\\b|\\$home)*$"},"blueprint":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"icon":{"type":"string"},"parent":{"description":"Parent page identifier for sidebar nesting","anyOf":[{"type":"string"},{"type":"null"}]},"after":{"description":"Page identifier to position after in sidebar","anyOf":[{"type":"string"},{"type":"null"}]},"locked":{"type":"boolean"},"protected":{"description":"System-managed. When true, the page cannot be deleted and its identifier cannot be changed. Not editable by users.","type":"boolean"},"widgets":{"type":"array","items":{"$ref":"#/$defs/__schema0"}},"pageFilters":{"type":"array","items":{"type":"object","properties":{"query":{"allOf":[{"$ref":"#/$defs/__schema1"},{"type":"object","properties":{"blueprint":{"type":"string"}},"additionalProperties":false}]},"identifier":{"type":"string"},"title":{"type":"string"}},"required":["query","identifier","title"],"additionalProperties":false}},"pageFilterPresets":{"type":"array","items":{"type":"object","properties":{"identifier":{"type":"string"},"title":{"type":"string"},"filters":{"type":"array","items":{"type":"object","properties":{"query":{"allOf":[{"$ref":"#/$defs/__schema1"},{"type":"object","properties":{"blueprint":{"type":"string"}},"additionalProperties":false}]},"identifier":{"type":"string"},"title":{"type":"string"}},"required":["query","identifier","title"],"additionalProperties":false}}},"required":["identifier","title","filters"],"additionalProperties":false}},"pageDateFilter":{"anyOf":[{"type":"object","properties":{"range":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["quickRange"]},"quickRange":{"type":"string","enum":["today","yesterday","7d","30d","3m","6m","12m"]}},"required":["type","quickRange"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["fixed"]},"from":{"type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"},"to":{"type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"}},"required":["type","from","to"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["since"]},"from":{"type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"}},"required":["type","from"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["last"]},"amount":{"type":"integer","minimum":1,"maximum":9007199254740991},"unit":{"type":"string","enum":["day","week","month","quarter"]},"offset":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["type","amount","unit"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["next"]},"amount":{"type":"integer","minimum":1,"maximum":9007199254740991},"unit":{"type":"string","enum":["day","week","month","quarter"]},"offset":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["type","amount","unit"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["periodToDate"]},"period":{"type":"string","enum":["day","week","month","quarter","year"]}},"required":["type","period"],"additionalProperties":false}]}},"required":["range"],"additionalProperties":false},{"type":"null"}]},"showInSidebar":{"default":true,"type":"boolean"},"section":{"default":"software_catalog","type":"string","enum":["software_catalog","organization"]},"createdBy":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"visibility":{"type":"string","enum":["private","org"]}},"additionalProperties":false,"$defs":{"__schema0":{"oneOf":[{"type":"object","properties":{"id":{"description":"Unique identifier for the widget. Must be referenced in the layout.","type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"type":"string","enum":["ai-agent"]},"title":{"type":"string"},"description":{"type":"string"},"agentIdentifier":{"type":"string","description":"AI Agent entity identifier"},"icon":{"type":"string"},"useMCP":{"type":"boolean"}},"required":["type","title","agentIdentifier"],"additionalProperties":false},{"type":"object","properties":{"id":{"description":"Unique identifier for the widget. Must be referenced in the layout.","type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"type":"string","enum":["entity-info"]},"title":{"type":"string"},"entity":{"type":"string","description":"Entity identifier"},"blueprint":{"type":"string","description":"Blueprint identifier"},"description":{"type":"string"},"icon":{"type":"string"},"hiddenQuery":{"description":"Property identifiers to hide from display. Use plain identifiers for schema properties (e.g., \"myProperty\") or meta field keys (e.g., \"$identifier\", \"$title\", \"$team\", \"$createdAt\", \"$updatedAt\")","type":"array","items":{"type":"string"}},"order":{"type":"array","items":{"type":"string"}},"showEmptyValues":{"type":"boolean"}},"required":["type","title","entity","blueprint"],"additionalProperties":false},{"type":"object","properties":{"id":{"description":"Unique identifier for the widget. Must be referenced in the layout.","type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"type":"string","enum":["entity-details"]},"title":{"type":"string"},"entity":{"type":"string","description":"Entity identifier"},"blueprint":{"type":"string","description":"Blueprint identifier"},"description":{"type":"string"},"icon":{"type":"string"},"hiddenQuery":{"description":"Property identifiers to hide from display. Use plain identifiers for schema properties (e.g., \"myProperty\") or meta field keys (e.g., \"$identifier\", \"$title\", \"$team\", \"$createdAt\", \"$updatedAt\")","type":"array","items":{"type":"string"}},"order":{"type":"array","items":{"type":"string"}},"showEmptyValues":{"type":"boolean"}},"required":["type","title","entity","blueprint"],"additionalProperties":false},{"type":"object","properties":{"id":{"description":"Unique identifier for the widget. Must be referenced in the layout.","type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"type":"string","enum":["action-runs-table-widget"]},"title":{"type":"string","description":"Display title for the widget"},"action":{"type":"string","description":"The action identifier to show runs for"},"icon":{"description":"Icon for the widget","type":"string"},"description":{"description":"Description of the widget","type":"string"},"displayMode":{"type":"string","enum":["single","widget"]},"tableConfig":{"description":"Table configuration for filtering, sorting, grouping, and property visibility","type":"object","properties":{"filterSettings":{"type":"object","properties":{"filterBy":{"$ref":"#/$defs/__schema1"}},"required":["filterBy"],"additionalProperties":false},"groupSettings":{"type":"object","properties":{"groupBy":{"type":"array","items":{"type":"string"}}},"required":["groupBy"],"additionalProperties":false},"sortSettings":{"type":"object","properties":{"sortBy":{"type":"array","items":{"type":"object","properties":{"property":{"type":"string"},"order":{"type":"string","enum":["asc","desc"]}},"required":["property","order"],"additionalProperties":false}}},"additionalProperties":false},"propertiesSettings":{"type":"object","properties":{"hidden":{"type":"array","items":{"type":"string"}},"order":{"type":"array","items":{"type":"string"}}},"additionalProperties":false}},"additionalProperties":false}},"required":["type","title","action"],"additionalProperties":false},{"type":"object","properties":{"id":{"description":"Unique identifier for the widget. Must be referenced in the layout.","type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"type":"string","enum":["action-card-widget"]},"icon":{"type":"string"},"description":{"type":"string"},"title":{"type":"string"},"actions":{"type":"array","items":{"type":"object","properties":{"action":{"type":"string","description":"Action identifier"}},"required":["action"],"additionalProperties":false}}},"required":["type","title","actions"],"additionalProperties":false},{"type":"object","properties":{"id":{"description":"Unique identifier for the widget. Must be referenced in the layout.","type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"type":"string","enum":["workflow-card-widget"]},"icon":{"type":"string"},"description":{"type":"string"},"title":{"type":"string"},"items":{"minItems":1,"type":"array","items":{"type":"object","properties":{"workflowIdentifier":{"type":"string","description":"Identifier of the workflow"},"triggerIdentifier":{"description":"Identifier of the workflow self-service trigger node, if any","type":"string"}},"required":["workflowIdentifier"],"additionalProperties":false}}},"required":["type","title","items"],"additionalProperties":false},{"type":"object","properties":{"id":{"description":"Unique identifier for the widget. Must be referenced in the layout.","type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"type":"string","enum":["workflow-runs-table-widget"]},"title":{"type":"string","description":"Display title for the widget"},"icon":{"description":"Icon for the widget","type":"string"},"description":{"description":"Description of the widget","type":"string"},"workflowIdentifiers":{"type":"array","items":{"type":"string"},"description":"Identifiers of the workflows to show runs for. An empty list shows runs of all workflows."},"statuses":{"description":"Default status filter. Viewers can change it without saving the widget.","type":"array","items":{"type":"string","enum":["SUCCESS","FAILED","CANCELLED","CANCELLING","WAITING_FOR_INPUT","IN_PROGRESS"]}},"timeRange":{"description":"Default relative date range. When omitted, runs are not limited by date.","type":"object","properties":{"preset":{"type":"string","enum":["today","yesterday","lastDay","lastWeek","last2Weeks","lastMonth","last3Months"]}},"required":["preset"],"additionalProperties":false},"tableConfig":{"description":"Table configuration for filtering, sorting, grouping, and property visibility","type":"object","properties":{"filterSettings":{"type":"object","properties":{"filterBy":{"$ref":"#/$defs/__schema1"}},"required":["filterBy"],"additionalProperties":false},"groupSettings":{"type":"object","properties":{"groupBy":{"type":"array","items":{"type":"string"}}},"required":["groupBy"],"additionalProperties":false},"sortSettings":{"type":"object","properties":{"sortBy":{"type":"array","items":{"type":"object","properties":{"property":{"type":"string"},"order":{"type":"string","enum":["asc","desc"]}},"required":["property","order"],"additionalProperties":false}}},"additionalProperties":false},"propertiesSettings":{"type":"object","properties":{"hidden":{"type":"array","items":{"type":"string"}},"order":{"type":"array","items":{"type":"string"}}},"additionalProperties":false}},"additionalProperties":false}},"required":["type","title","workflowIdentifiers"],"additionalProperties":false},{"type":"object","properties":{"id":{"description":"Unique identifier for the widget. Must be referenced in the layout.","type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"type":"string","enum":["links-widget"]},"title":{"type":"string"},"description":{"type":"string"},"icon":{"type":"string"},"links":{"minItems":1,"type":"array","items":{"type":"object","properties":{"title":{"type":"string","minLength":1},"description":{"type":"string"},"url":{"type":"string","description":"a valid URL to open when the link is clicked"},"icon":{"type":"string"}},"required":["title","url"],"additionalProperties":false}}},"required":["type","title","links"],"additionalProperties":false},{"type":"object","properties":{"id":{"description":"Unique identifier for the widget. Must be referenced in the layout.","type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"type":"string","enum":["table-entities-explorer"]},"icon":{"type":"string"},"description":{"type":"string"},"emptyStateText":{"type":"string"},"title":{"type":"string"},"blueprint":{"type":"string"},"dataset":{"$ref":"#/$defs/__schema1"},"excludedFields":{"type":"array","items":{"type":"string"}},"displayMode":{"type":"string","enum":["tabs","single","widget"]},"entitiesQueryMode":{"type":"string","enum":["standard","optimized"]},"entitiesQueryMaxResults":{"type":"number","enum":[100,1000,10000,100000]},"blueprintConfig":{"type":"object","propertyNames":{"type":"string","pattern":"^(?!\\.{1,2}$)[\\p{L}0-9@_.+:\\\\/='-]+$"},"additionalProperties":{"type":"object","properties":{"filterSettings":{"type":"object","properties":{"filterBy":{"$ref":"#/$defs/__schema1"}},"required":["filterBy"],"additionalProperties":false},"groupSettings":{"type":"object","properties":{"groupBy":{"type":"array","items":{"type":"string"}}},"required":["groupBy"],"additionalProperties":false},"sortSettings":{"type":"object","properties":{"sortBy":{"type":"array","items":{"type":"object","properties":{"property":{"type":"string"},"order":{"type":"string","enum":["asc","desc"]}},"required":["property","order"],"additionalProperties":false}}},"additionalProperties":false},"propertiesSettings":{"type":"object","properties":{"hidden":{"type":"array","items":{"type":"string"}},"shown":{"type":"array","items":{"type":"string"}},"order":{"type":"array","items":{"type":"string"}}},"additionalProperties":false},"columnsOrder":{"type":"array","items":{"type":"string"}},"cardsOrder":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"tabIndex":{"type":"number"},"hidden":{"type":"boolean"},"title":{"type":"string","maxLength":20},"description":{"type":"string"}},"additionalProperties":false}},"showOnlyRelatedEntities":{"type":"boolean"}},"required":["type","dataset"],"additionalProperties":false},{"type":"object","properties":{"id":{"description":"Unique identifier for the widget. Must be referenced in the layout.","type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"type":"string","enum":["board"]},"icon":{"type":"string"},"description":{"type":"string"},"emptyStateText":{"type":"string"},"title":{"type":"string"},"blueprint":{"type":"string"},"dataset":{"$ref":"#/$defs/__schema1"},"excludedFields":{"type":"array","items":{"type":"string"}},"entitiesQueryMode":{"default":"optimized","type":"string","enum":["optimized"]},"entitiesQueryMaxResults":{"type":"number","enum":[100,1000,10000,100000]},"blueprintConfig":{"type":"object","propertyNames":{"type":"string","pattern":"^(?!\\.{1,2}$)[\\p{L}0-9@_.+:\\\\/='-]+$"},"additionalProperties":{"type":"object","properties":{"filterSettings":{"type":"object","properties":{"filterBy":{"$ref":"#/$defs/__schema1"}},"required":["filterBy"],"additionalProperties":false},"groupSettings":{"type":"object","properties":{"groupBy":{"type":"array","items":{"type":"string"}}},"required":["groupBy"],"additionalProperties":false},"sortSettings":{"type":"object","properties":{"sortBy":{"type":"array","items":{"type":"object","properties":{"property":{"type":"string"},"order":{"type":"string","enum":["asc","desc"]}},"required":["property","order"],"additionalProperties":false}}},"additionalProperties":false},"propertiesSettings":{"type":"object","properties":{"hidden":{"type":"array","items":{"type":"string"}},"shown":{"type":"array","items":{"type":"string"}},"order":{"type":"array","items":{"type":"string"}}},"additionalProperties":false},"columnsOrder":{"type":"array","items":{"type":"string"}},"cardsOrder":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"tabIndex":{"type":"number"},"hidden":{"type":"boolean"},"title":{"type":"string","maxLength":20},"description":{"type":"string"}},"additionalProperties":false}},"showOnlyRelatedEntities":{"type":"boolean"},"showEmptyValues":{"type":"boolean"}},"required":["type","dataset"],"additionalProperties":false},{"type":"object","properties":{"id":{"description":"Unique identifier for the widget. Must be referenced in the layout.","type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"type":"string","enum":["table-entities-explorer-by-direction"]},"title":{"type":"string"},"blueprintConfig":{"type":"object","propertyNames":{"type":"string","pattern":"^[A-Za-z0-9@_.:\\\\/=-]*\\$(specificpath|upstream|downstream|custom|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})(\\$[A-Za-z0-9@_.:\\\\/=-]+)*$"},"additionalProperties":{"type":"object","properties":{"filterSettings":{"type":"object","properties":{"filterBy":{"$ref":"#/$defs/__schema1"}},"required":["filterBy"],"additionalProperties":false},"groupSettings":{"type":"object","properties":{"groupBy":{"type":"array","items":{"type":"string"}}},"required":["groupBy"],"additionalProperties":false},"sortSettings":{"type":"object","properties":{"sortBy":{"type":"array","items":{"type":"object","properties":{"property":{"type":"string"},"order":{"type":"string","enum":["asc","desc"]}},"required":["property","order"],"additionalProperties":false}}},"additionalProperties":false},"propertiesSettings":{"type":"object","properties":{"hidden":{"type":"array","items":{"type":"string"}},"shown":{"type":"array","items":{"type":"string"}},"order":{"type":"array","items":{"type":"string"}}},"additionalProperties":false},"tabIndex":{"type":"number"},"hidden":{"type":"boolean"},"title":{"type":"string","maxLength":50},"description":{"type":"string"},"dataset":{"$ref":"#/$defs/__schema1"},"targetBlueprint":{"type":"string"},"relatedProperty":{"type":"string"}},"additionalProperties":false}}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"id":{"description":"Unique identifier for the widget. Must be referenced in the layout.","type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"type":"string","enum":["table-audit-log"]},"title":{"type":"string"},"description":{"type":"string"},"query":{"type":"object","properties":{"identifier":{"type":"string","description":"An identifier of the log event you want to fetch."},"entity":{"type":"string","description":"Fetch all audit logs related to the specified entity."},"include_deleted_entities":{"type":"boolean","description":"Include deleted entities when searching for audit logs. This requires the `entity`, `blueprint`, `status`, `from` and `to` parameters. And the diff between `from` & `to` is limited to 1 day."},"blueprint":{"type":"string","description":"Fetch all audit logs related to the specified blueprint."},"run_id":{"type":"string","description":"Fetch all audit logs related to the specified action run."},"webhookId":{"type":"string","description":"Fetch all audit logs related to the specified webhook."},"webhookEventId":{"type":"string","description":"Fetch all audit logs related to the specified webhook event."},"origin":{"type":"array","items":{"type":"string"},"description":"Fetch all audit logs coming from the specified origin/s. This refers to the integration/s that triggered the log. For operations performed via Port's UI, the origin will be `UI`."},"InstallationId":{"type":"string","description":"Fetch all audit logs related to the specified integration."},"resources":{"anyOf":[{"type":"array","items":{"type":"string","enum":["entity","blueprint_permission","blueprint","run","webhook","action","action_permission","scorecard","integration","secret"]}},{"type":"string","enum":["entity","blueprint_permission","blueprint","run","webhook","action","action_permission","scorecard","integration","secret"]}],"description":"Fetch all audit logs related to the specified resource type/s.<br/>**Possible values**: [`blueprint`, `entity`, `run`, `webhook`, `scorecard`, `action`, `integration`]<br/>The `integration` value is **experimental** and may change in future API versions."},"includes":{"type":"array","items":{"type":"string","enum":["action","context","diff","identifier","resourceType","status","trigger","additionalData","message"]},"description":"The fields you want to include in the response. If used, only the specified fields will be included in the response."},"from":{"type":"string","description":"The starting timestamp of the audit logs you want to fetch, in the ISO format `2022-04-23T18:25:43.511Z`."},"to":{"type":"string","description":"The ending timestamp of the audit logs you want to fetch, in the ISO format `2022-04-23T18:25:43.511Z`."},"action":{"type":"string","description":"Fetch all audit logs with the specified action type - `CREATE`, `UPDATE`, or `DELETE`."},"status":{"type":"string","enum":["SUCCESS","FAILURE"],"description":"Fetch all audit logs with the specified status."},"limit":{"type":"number","description":"The maximum number of logs to return. Optional; defaults to `10000`. The previous default was `100000`, which could cause `504 Gateway Timeout` on large accounts. Use a lower value or narrow `from` and `to` if you still hit timeouts."},"actionType":{"type":"string","enum":["automation","self-service"]}},"additionalProperties":false},"tableConfig":{"type":"object","properties":{"filterSettings":{"type":"object","properties":{"filterBy":{"$ref":"#/$defs/__schema1"}},"required":["filterBy"],"additionalProperties":false},"groupSettings":{"type":"object","properties":{"groupBy":{"type":"array","items":{"type":"string"}}},"required":["groupBy"],"additionalProperties":false},"sortSettings":{"type":"object","properties":{"sortBy":{"type":"array","items":{"type":"object","properties":{"property":{"type":"string"},"order":{"type":"string","enum":["asc","desc"]}},"required":["property","order"],"additionalProperties":false}}},"additionalProperties":false},"propertiesSettings":{"type":"object","properties":{"hidden":{"type":"array","items":{"type":"string"}},"order":{"type":"array","items":{"type":"string"}}},"additionalProperties":false}},"additionalProperties":false}},"required":["type","query"],"additionalProperties":false},{"type":"object","properties":{"id":{"description":"Unique identifier for the widget. Must be referenced in the layout.","type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"type":"string","enum":["users-table"]},"title":{"type":"string"},"tableConfig":{"type":"object","properties":{"filterSettings":{"type":"object","properties":{"filterBy":{"$ref":"#/$defs/__schema1"}},"required":["filterBy"],"additionalProperties":false},"groupSettings":{"type":"object","properties":{"groupBy":{"type":"array","items":{"type":"string"}}},"required":["groupBy"],"additionalProperties":false},"sortSettings":{"type":"object","properties":{"sortBy":{"type":"array","items":{"type":"object","properties":{"property":{"type":"string"},"order":{"type":"string","enum":["asc","desc"]}},"required":["property","order"],"additionalProperties":false}}},"additionalProperties":false},"propertiesSettings":{"type":"object","properties":{"hidden":{"type":"array","items":{"type":"string"}},"order":{"type":"array","items":{"type":"string"}}},"additionalProperties":false}},"additionalProperties":false}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"id":{"description":"Unique identifier for the widget. Must be referenced in the layout.","type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"type":"string","enum":["teams-table"]},"title":{"type":"string"},"tableConfig":{"type":"object","properties":{"filterSettings":{"type":"object","properties":{"filterBy":{"$ref":"#/$defs/__schema1"}},"required":["filterBy"],"additionalProperties":false},"groupSettings":{"type":"object","properties":{"groupBy":{"type":"array","items":{"type":"string"}}},"required":["groupBy"],"additionalProperties":false},"sortSettings":{"type":"object","properties":{"sortBy":{"type":"array","items":{"type":"object","properties":{"property":{"type":"string"},"order":{"type":"string","enum":["asc","desc"]}},"required":["property","order"],"additionalProperties":false}}},"additionalProperties":false},"propertiesSettings":{"type":"object","properties":{"hidden":{"type":"array","items":{"type":"string"}},"order":{"type":"array","items":{"type":"string"}}},"additionalProperties":false}},"additionalProperties":false}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"id":{"description":"Unique identifier for the widget. Must be referenced in the layout.","type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"type":"string","enum":["runs-table"]},"title":{"type":"string"},"query":{"type":"object","properties":{"entity":{"type":"string","description":"The identifier of the entity associated with the action run."},"blueprint":{"type":"string","description":"The identifier of the blueprint associated with the action run."},"active":{"type":"boolean","description":"If `true`, only running action runs will be fetched."},"user_email":{"type":"string","description":"The email of the user who initiated the action run."},"user_id":{"type":"string","description":"The id of the user who initiated the action run."},"limit":{"type":"number","minimum":1,"maximum":1000,"description":"The maximum number of action runs to fetch."},"exclude":{"type":"array","items":{"type":"string"},"description":"The fields to exclude from the response"},"external_run_id":{"type":"string","description":"The run id of your backend, for example the id that GitHub gives the workflow. This can be used to identify the action run instead of the `run_id`."},"action":{"anyOf":[{"type":"string"},{"type":"null"}]},"source":{"type":"array","items":{"type":"string","enum":["UI","API","AUTOMATION"]}},"next":{"type":"string","description":"An opaque cursor for pagination. Pass the `next` value from the previous response to fetch the next page of results."},"version":{"anyOf":[{"type":"string","enum":["v1","v2"],"description":"Specifies the API version to use. Please use `v2` for the latest version of the API."},{"type":"null"}]}},"additionalProperties":false},"tableConfig":{"type":"object","properties":{"filterSettings":{"type":"object","properties":{"filterBy":{"$ref":"#/$defs/__schema1"}},"required":["filterBy"],"additionalProperties":false},"groupSettings":{"type":"object","properties":{"groupBy":{"type":"array","items":{"type":"string"}}},"required":["groupBy"],"additionalProperties":false},"sortSettings":{"type":"object","properties":{"sortBy":{"type":"array","items":{"type":"object","properties":{"property":{"type":"string"},"order":{"type":"string","enum":["asc","desc"]}},"required":["property","order"],"additionalProperties":false}}},"additionalProperties":false},"propertiesSettings":{"type":"object","properties":{"hidden":{"type":"array","items":{"type":"string"}},"order":{"type":"array","items":{"type":"string"}}},"additionalProperties":false}},"additionalProperties":false}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"id":{"description":"Unique identifier for the widget. Must be referenced in the layout.","type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"type":"string","enum":["workflow-runs-history-table"]},"query":{"type":"object","properties":{},"additionalProperties":false},"tableConfig":{"type":"object","properties":{"filterSettings":{"type":"object","properties":{"filterBy":{"$ref":"#/$defs/__schema1"}},"required":["filterBy"],"additionalProperties":false},"groupSettings":{"type":"object","properties":{"groupBy":{"type":"array","items":{"type":"string"}}},"required":["groupBy"],"additionalProperties":false},"sortSettings":{"type":"object","properties":{"sortBy":{"type":"array","items":{"type":"object","properties":{"property":{"type":"string"},"order":{"type":"string","enum":["asc","desc"]}},"required":["property","order"],"additionalProperties":false}}},"additionalProperties":false},"propertiesSettings":{"type":"object","properties":{"hidden":{"type":"array","items":{"type":"string"}},"order":{"type":"array","items":{"type":"string"}}},"additionalProperties":false}},"additionalProperties":false}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"id":{"description":"Unique identifier for the widget. Must be referenced in the layout.","type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"type":"string","enum":["run-info"]},"title":{"type":"string"},"runId":{"type":"string"}},"required":["type","runId"],"additionalProperties":false},{"type":"object","properties":{"id":{"description":"Unique identifier for the widget. Must be referenced in the layout.","type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"type":"string","enum":["user-info"]},"title":{"type":"string"},"user_email":{"type":"string"}},"required":["type","user_email"],"additionalProperties":false},{"type":"object","properties":{"id":{"description":"Unique identifier for the widget. Must be referenced in the layout.","type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"type":"string","enum":["graph-entities-explorer"]},"title":{"type":"string"},"dataset":{"$ref":"#/$defs/__schema1"},"hiddenBlueprints":{"type":"array","items":{"type":"string"}}},"required":["type","dataset"],"additionalProperties":false},{"type":"object","properties":{"id":{"description":"Unique identifier for the widget. Must be referenced in the layout.","type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"type":"string","enum":["bar-chart"]},"icon":{"type":"string"},"title":{"type":"string"},"blueprint":{"type":"string"},"property":{"type":"string","pattern":"^((property#|mirror-property#|calculation-property#|aggregation-property#|relation#|scorecard#|scorecard-rule#).+|\\$(identifier|title|team))$","description":"Property to group by for bars. Use prefixed format: \"property#<name>\", \"mirror-property#<name>\", \"calculation-property#<name>\", \"aggregation-property#<name>\", \"relation#<name>\", \"scorecard#<name>\", \"scorecard-rule#<scorecardId>#<ruleId>\". Or use meta fields: \"$identifier\", \"$title\", \"$team\"."},"description":{"type":"string"},"dataset":{"$ref":"#/$defs/__schema1"},"emptyStateText":{"type":"string"},"segmentTableViewConfig":{"description":"Configuration for segment table views","type":"object","propertyNames":{"type":"string","pattern":"^(?!\\.{1,2}$)[\\p{L}0-9@_.+:\\\\/='-]+$"},"additionalProperties":{"type":"object","properties":{"filterSettings":{"type":"object","properties":{"filterBy":{"$ref":"#/$defs/__schema1"}},"required":["filterBy"],"additionalProperties":false},"groupSettings":{"type":"object","properties":{"groupBy":{"type":"array","items":{"type":"string"}}},"required":["groupBy"],"additionalProperties":false},"sortSettings":{"type":"object","properties":{"sortBy":{"type":"array","items":{"type":"object","properties":{"property":{"type":"string"},"order":{"type":"string","enum":["asc","desc"]}},"required":["property","order"],"additionalProperties":false}}},"additionalProperties":false},"propertiesSettings":{"type":"object","properties":{"hidden":{"type":"array","items":{"type":"string"}},"shown":{"type":"array","items":{"type":"string"}},"order":{"type":"array","items":{"type":"string"}}},"additionalProperties":false},"columnsOrder":{"type":"array","items":{"type":"string"}},"cardsOrder":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"tabIndex":{"type":"number"},"hidden":{"type":"boolean"},"title":{"type":"string","maxLength":20},"description":{"type":"string"}},"additionalProperties":false}},"showOnlyRelatedEntities":{"type":"boolean"}},"required":["type","title","blueprint","property","dataset"],"additionalProperties":false},{"type":"object","properties":{"id":{"description":"Unique identifier for the widget. Must be referenced in the layout.","type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"type":"string","enum":["entities-pie-chart"]},"icon":{"type":"string"},"title":{"type":"string"},"blueprint":{"type":"string"},"property":{"type":"string","pattern":"^((property#|mirror-property#|calculation-property#|aggregation-property#|relation#|scorecard#|scorecard-rule#).+|\\$(identifier|title|team))$","description":"Property to group by for pie slices. Use prefixed format: \"property#<name>\", \"mirror-property#<name>\", \"calculation-property#<name>\", \"aggregation-property#<name>\", \"relation#<name>\", \"scorecard#<name>\", \"scorecard-rule#<scorecardId>#<ruleId>\". Or use meta fields: \"$identifier\", \"$title\", \"$team\"."},"description":{"type":"string"},"dataset":{"$ref":"#/$defs/__schema1"},"emptyStateText":{"type":"string"},"segmentTableViewConfig":{"description":"Configuration for segment table views","type":"object","propertyNames":{"type":"string","pattern":"^(?!\\.{1,2}$)[\\p{L}0-9@_.+:\\\\/='-]+$"},"additionalProperties":{"type":"object","properties":{"filterSettings":{"type":"object","properties":{"filterBy":{"$ref":"#/$defs/__schema1"}},"required":["filterBy"],"additionalProperties":false},"groupSettings":{"type":"object","properties":{"groupBy":{"type":"array","items":{"type":"string"}}},"required":["groupBy"],"additionalProperties":false},"sortSettings":{"type":"object","properties":{"sortBy":{"type":"array","items":{"type":"object","properties":{"property":{"type":"string"},"order":{"type":"string","enum":["asc","desc"]}},"required":["property","order"],"additionalProperties":false}}},"additionalProperties":false},"propertiesSettings":{"type":"object","properties":{"hidden":{"type":"array","items":{"type":"string"}},"shown":{"type":"array","items":{"type":"string"}},"order":{"type":"array","items":{"type":"string"}}},"additionalProperties":false},"columnsOrder":{"type":"array","items":{"type":"string"}},"cardsOrder":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"tabIndex":{"type":"number"},"hidden":{"type":"boolean"},"title":{"type":"string","maxLength":20},"description":{"type":"string"}},"additionalProperties":false}},"showOnlyRelatedEntities":{"type":"boolean"}},"required":["type","title","property","dataset"],"additionalProperties":false},{"type":"object","properties":{"id":{"description":"Unique identifier for the widget. Must be referenced in the layout.","type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"type":"string","enum":["line-chart"]},"icon":{"type":"string"},"title":{"type":"string"},"blueprint":{"type":"string"},"chartType":{"type":"string","enum":["propertiesValueHistory","aggregatePropertiesValues","countEntities"]},"xAxisTitle":{"type":"string"},"yAxisTitle":{"type":"string"},"timeInterval":{"type":"string","enum":["hour","day","isoWeek","month","quarter"]},"timeRange":{"type":"object","properties":{"preset":{"type":"string","enum":["today","yesterday","lastDay","lastWeek","last2Weeks","lastMonth","last3Months","last6Months","last12Months","last2Years","last3Years"]}},"required":["preset"],"additionalProperties":false},"description":{"type":"string"},"emptyStateText":{"type":"string"},"entity":{"type":"string"},"properties":{"minItems":1,"type":"array","items":{"type":"string","pattern":"^(properties\\.|relations\\.).+$"}},"func":{"type":"string","enum":["sum","average","min","max","median","last","count"]},"measureTimeBy":{"description":"Property identifier for time measurement (no prefix needed; e.g. \"deploymentDate\" or \"$createdAt\")","type":"string"},"dataset":{"$ref":"#/$defs/__schema1"},"breakdownProperty":{"description":"Property identifier for breakdown (no prefix needed)","type":"string"}},"required":["type","title","blueprint","chartType"],"additionalProperties":false,"title":"Line chart"},{"type":"object","properties":{"id":{"description":"Unique identifier for the widget. Must be referenced in the layout.","type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"type":"string","enum":["multi-line-chart"]},"icon":{"type":"string"},"title":{"type":"string"},"xAxisTitle":{"type":"string"},"yAxisTitle":{"type":"string"},"timeInterval":{"type":"string","enum":["hour","day","isoWeek","month","quarter"]},"timeRange":{"type":"object","properties":{"preset":{"type":"string","enum":["today","yesterday","lastDay","lastWeek","last2Weeks","lastMonth","last3Months","last6Months","last12Months","last2Years","last3Years"]}},"required":["preset"],"additionalProperties":false},"description":{"type":"string"},"emptyStateText":{"type":"string"},"lines":{"minItems":1,"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"blueprint":{"type":"string"},"chartType":{"type":"string","enum":["propertiesValueHistory","aggregatePropertiesValues","countEntities"]},"entity":{"type":"string"},"properties":{"minItems":1,"type":"array","items":{"type":"string","pattern":"^(properties\\.|relations\\.).+$"}},"func":{"type":"string","enum":["sum","average","min","max","median","last","count"]},"measureTimeBy":{"description":"Property identifier for time measurement (no prefix needed; e.g. \"deploymentDate\" or \"$createdAt\")","type":"string"},"dataset":{"$ref":"#/$defs/__schema1"},"breakdownProperty":{"description":"Property identifier for breakdown (no prefix needed)","type":"string"}},"required":["title","blueprint","chartType"],"additionalProperties":false},"description":"Array of line configurations"},"baselines":{"description":"Horizontal reference lines","type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"value":{"type":"number"},"color":{"type":"string"}},"required":["value"],"additionalProperties":false}},"nullValueDisplayMode":{"type":"string","enum":["zero","null"]}},"required":["type","title","timeInterval","timeRange","lines"],"additionalProperties":false},{"type":"object","properties":{"id":{"description":"Unique identifier for the widget. Must be referenced in the layout.","type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"type":"string","enum":["entities-number-chart"]},"title":{"type":"string"},"icon":{"type":"string"},"description":{"type":"string"},"emptyStateText":{"type":"string"},"unit":{"type":"string","enum":["none","$","€","£","%","custom"]},"unitAlignment":{"type":"string","enum":["left","right"]},"conditionalFormatting":{"type":"array","items":{"type":"object","properties":{"operator":{"type":"string","enum":[">",">=","<","<=","=","!="]},"value":{"type":"number"},"message":{"type":"string","maxLength":50},"description":{"type":"string","maxLength":200},"color":{"type":"string","enum":["blue","turquoise","orange","purple","pink","yellow","green","red","gold","silver","paleBlue","darkGray","lightGray","bronze","lime","olive","brown"]}},"required":["operator","value"],"additionalProperties":false}},"displayFormatting":{"type":"string","enum":["none","round","custom"]},"decimalPlaces":{"type":"string","enum":[".0",".00",".000",".0000",".00000"]},"chartType":{"type":"string","enum":["aggregateByProperty","countEntities","displaySingleProperty"]},"blueprint":{"type":"string"},"calculationBy":{"type":"string","enum":["entities","property"]},"dataset":{"anyOf":[{"type":"array","items":{}},{"$ref":"#/$defs/__schema1"}]},"segmentTableViewConfig":{"type":"object","propertyNames":{"type":"string","pattern":"^(?!\\.{1,2}$)[\\p{L}0-9@_.+:\\\\/='-]+$"},"additionalProperties":{"type":"object","properties":{"filterSettings":{"type":"object","properties":{"filterBy":{"$ref":"#/$defs/__schema1"}},"required":["filterBy"],"additionalProperties":false},"groupSettings":{"type":"object","properties":{"groupBy":{"type":"array","items":{"type":"string"}}},"required":["groupBy"],"additionalProperties":false},"sortSettings":{"type":"object","properties":{"sortBy":{"type":"array","items":{"type":"object","properties":{"property":{"type":"string"},"order":{"type":"string","enum":["asc","desc"]}},"required":["property","order"],"additionalProperties":false}}},"additionalProperties":false},"propertiesSettings":{"type":"object","properties":{"hidden":{"type":"array","items":{"type":"string"}},"shown":{"type":"array","items":{"type":"string"}},"order":{"type":"array","items":{"type":"string"}}},"additionalProperties":false},"columnsOrder":{"type":"array","items":{"type":"string"}},"cardsOrder":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"tabIndex":{"type":"number"},"hidden":{"type":"boolean"},"title":{"type":"string","maxLength":20},"description":{"type":"string"}},"additionalProperties":false}},"showOnlyRelatedEntities":{"type":"boolean"},"property":{"description":"Property identifier (no prefix needed)","type":"string"},"entity":{"type":"string"},"func":{"type":"string","enum":["sum","average","min","max","median","count"]},"averageOf":{"type":"string","enum":["hour","day","week","month","total"]},"measureTimeBy":{"type":"string"},"unitCustom":{"type":"string"}},"required":["type","title","unit","blueprint"],"additionalProperties":false},{"type":"object","properties":{"id":{"description":"Unique identifier for the widget. Must be referenced in the layout.","type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"type":"string","enum":["iframe-widget"]},"title":{"type":"string"},"icon":{"type":"string"},"description":{"type":"string"},"url":{"anyOf":[{"type":"string","format":"uri"},{"type":"string","pattern":"^\\/(?!\\/)"}],"description":"Absolute URL or org-relative path to embed (e.g. /organization/home)"},"urlType":{"type":"string","enum":["public","protected"]},"popupAuth":{"type":"boolean"},"tokenUrl":{"type":"string","format":"uri"},"authorizationUrl":{"type":"string","format":"uri"},"clientId":{"type":"string"},"scopes":{"type":"array","items":{"type":"string"}}},"required":["type","title","url","urlType"],"additionalProperties":false},{"type":"object","properties":{"id":{"description":"Unique identifier for the widget. Must be referenced in the layout.","type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"type":"string","enum":["markdown"]},"title":{"type":"string"},"description":{"type":"string"},"icon":{"type":"string"},"source":{"type":"string","enum":["custom","property"]},"markdown":{"description":"Markdown content to render","type":"string"},"blueprintIdentifier":{"description":"Blueprint identifier containing the markdown property","type":"string"},"propertyIdentifier":{"description":"Property identifier containing the markdown content","type":"string"},"entityIdentifier":{"description":"Entity identifier to read the markdown property from","type":"string"}},"required":["type","title"],"additionalProperties":false},{"type":"object","properties":{"id":{"description":"Unique identifier for the widget. Must be referenced in the layout.","type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"type":"string","enum":["team-info"]},"title":{"type":"string"},"team_name":{"type":"string"}},"required":["type","team_name"],"additionalProperties":false},{"type":"object","properties":{"id":{"description":"Unique identifier for the widget. Must be referenced in the layout.","type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"type":"string","enum":["recently-viewed-entities"]},"title":{"type":"string"},"icon":{"type":"string"},"description":{"type":"string"}},"required":["type","title"],"additionalProperties":false},{"type":"object","properties":{"id":{"description":"Unique identifier for the widget. Must be referenced in the layout.","type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"type":"string","enum":["recently-used-actions"]},"title":{"type":"string"},"icon":{"type":"string"},"description":{"type":"string"}},"required":["type","title"],"additionalProperties":false},{"type":"object","properties":{"id":{"description":"Unique identifier for the widget. Must be referenced in the layout.","type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"type":"string","enum":["my-entities"]},"title":{"type":"string"},"description":{"type":"string"},"icon":{"type":"string"}},"required":["type","title"],"additionalProperties":false},{"type":"object","properties":{"id":{"description":"Unique identifier for the widget. Must be referenced in the layout.","type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"type":"string","enum":["custom-widget"]},"title":{"type":"string"},"icon":{"type":"string"},"description":{"type":"string"},"pluginId":{"type":"string"},"paramValues":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"type":{"type":"string","enum":["string","number","boolean","array","object","blueprint"]},"value":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"array","items":{}},{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}]}},"required":["type","value"],"additionalProperties":false}}},"required":["type","title","pluginId"],"additionalProperties":false},{"type":"object","properties":{"id":{"description":"Unique identifier for the widget. Must be referenced in the layout.","type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"type":"string","enum":["dashboard-widget"]},"layout":{"type":"array","items":{"type":"object","properties":{"height":{"type":"number","description":"Row height in pixels. Minimum 400."},"columns":{"type":"array","items":{"type":"object","properties":{"size":{"type":"number","description":"Column width (3-12). Must be a whole number. All column sizes in a row must sum to exactly 12."},"id":{"type":"string","description":"Widget id to place in this column. Must match a widget id in the widgets array."}},"required":["size","id"],"additionalProperties":false},"description":"Columns in this row. Maximum 4 columns per row. Column sizes must sum to exactly 12."}},"required":["height","columns"],"additionalProperties":false},"description":"Dashboard layout as rows. Each row has a height and columns. Each column references a widget by id and specifies its size (3-12). Column sizes in each row must sum to 12. The number of layout columns must match the number of widgets."},"widgets":{"type":"array","items":{"$ref":"#/$defs/__schema0"}},"fullPage":{"description":"When true and the dashboard has exactly one child widget, that widget is rendered borderless and full-page (no header/border; menu moves to the page filter row). Ignored while there is more than one child widget; restoring a single child re-enables full-page mode.","type":"boolean"}},"required":["type","layout","widgets"],"additionalProperties":false},{"type":"object","properties":{"id":{"description":"Unique identifier for the widget. Must be referenced in the layout.","type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"type":"string","enum":["grouper"]},"title":{"type":"string"},"displayMode":{"type":"string","enum":["tabs","switch"]},"activeGroupUrlParam":{"type":"string"},"groupsOrder":{"type":"array","items":{"type":"string"}},"groups":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"icon":{"type":"string"},"widgets":{"type":"array","items":{"$ref":"#/$defs/__schema0"}}},"required":["title","widgets"],"additionalProperties":false}}},"required":["type","displayMode","groups"],"additionalProperties":false}]},"__schema1":{"type":"object","properties":{"combinator":{"type":"string","enum":["and","or"],"description":"The combinator to use for the rules."},"rules":{"type":"array","items":{"anyOf":[{"type":"object","properties":{"property":{"anyOf":[{"type":"string"},{"type":"object","properties":{"property":{"type":"string"},"context":{"type":"string","enum":["user","userTeams"]}},"required":["property","context"],"additionalProperties":false,"title":"User-context field"}],"title":"Contexted property"},"operator":{"type":"string","enum":["between","notBetween","="]},"value":{"anyOf":[{"type":"object","properties":{"from":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"to":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"}},"required":["from","to"],"additionalProperties":false,"description":"Date Range"},{"type":"object","properties":{"preset":{"type":"string","enum":["today","tomorrow","yesterday","lastDay","lastWeek","last2Weeks","lastMonth","last3Months","last6Months","last12Months","last2Years","last3Years","nextDay","nextWeek","next2Weeks","nextMonth","next3Months","next6Months","next12Months"]}},"required":["preset"],"additionalProperties":false,"description":"Date Preset"},{"type":"object","properties":{"property":{"type":"string"},"context":{"type":"string","enum":["user","userTeams"]}},"required":["property","context"],"additionalProperties":false,"title":"User-context field"}]}},"required":["property","operator","value"],"additionalProperties":false},{"type":"object","properties":{"operator":{"type":"string","enum":["isEmpty","isNotEmpty"]},"property":{"type":"string"}},"required":["operator","property"],"additionalProperties":false},{"type":"object","properties":{"property":{"anyOf":[{"type":"string"},{"type":"object","properties":{"property":{"type":"string"},"context":{"type":"string","enum":["user","userTeams"]}},"required":["property","context"],"additionalProperties":false,"title":"User-context field"}],"title":"Contexted property"},"operator":{"type":"string","enum":[">",">=","<","<="]},"value":{"anyOf":[{"type":"number","description":"number"},{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","description":"date-time"},{"type":"object","properties":{"property":{"type":"string"},"context":{"type":"string","enum":["user","userTeams"]}},"required":["property","context"],"additionalProperties":false,"title":"User-context field"}]}},"required":["property","operator","value"],"additionalProperties":false},{"type":"object","properties":{"operator":{"type":"string","enum":["isExpired","isNotExpired"]},"property":{"type":"string"}},"required":["operator","property"],"additionalProperties":false},{"type":"object","properties":{"property":{"anyOf":[{"type":"string"},{"type":"object","properties":{"property":{"type":"string"},"context":{"type":"string","enum":["user","userTeams"]}},"required":["property","context"],"additionalProperties":false,"title":"User-context field"}],"title":"Contexted property"},"operator":{"type":"string","enum":["=","!=","containsAny","contains","doesNotContains","beginsWith","doesNotBeginsWith","endsWith","doesNotEndsWith","in","notIn"]},"value":{"anyOf":[{"type":"null","description":"null"},{"type":"string","description":"string"},{"type":"number","description":"number"},{"type":"boolean","description":"boolean"},{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","description":"date-time"},{"type":"array","items":{"type":"string"},"description":"array"},{"type":"array","items":{"type":"number"},"description":"array"},{"type":"array","items":{"type":"boolean"},"description":"array"},{"type":"array","items":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"description":"array"},{"type":"object","properties":{"property":{"type":"string"},"context":{"type":"string","enum":["user","userTeams"]}},"required":["property","context"],"additionalProperties":false,"title":"User-context field"}]}},"required":["property","operator","value"],"additionalProperties":false},{"type":"object","properties":{"operator":{"type":"string","enum":["relatedTo"]},"blueprint":{"type":"string"},"value":{"anyOf":[{"type":"string","description":"string"},{"type":"array","items":{"type":"string"},"description":"array"}]},"direction":{"type":"string","enum":["upstream","downstream"]},"required":{"type":"boolean"}},"required":["operator","blueprint","value"],"additionalProperties":false},{"type":"object","properties":{"propertySchema":{"type":"object","properties":{"type":{"type":"string"},"format":{"type":"string"},"items":{"type":"object","properties":{"type":{"type":"string"},"format":{"type":"string"}},"required":["type"],"additionalProperties":false}},"required":["type"],"additionalProperties":false},"operator":{"type":"string","enum":["=","!=","contains"]},"value":{"anyOf":[{"type":"null","description":"null"},{"type":"string","description":"string"},{"type":"number","description":"number"},{"type":"boolean","description":"boolean"}]}},"required":["propertySchema","operator"],"additionalProperties":false},{"type":"object","properties":{"property":{"anyOf":[{"type":"object","properties":{"path":{"minItems":1,"type":"array","items":{"anyOf":[{"type":"string","title":"Relation identifier"},{"type":"object","properties":{"relation":{"type":"string"},"maxHops":{"type":"number","minimum":1,"maximum":15}},"additionalProperties":false,"title":"Relation with max hops"}]}},"fromBlueprint":{"type":"string"}},"required":["path"],"additionalProperties":false,"title":"Path filter property"},{"anyOf":[{"type":"string"},{"type":"object","properties":{"property":{"type":"string"},"context":{"type":"string","enum":["user","userTeams"]}},"required":["property","context"],"additionalProperties":false,"title":"User-context field"}],"title":"Contexted property"}]},"operator":{"type":"string","enum":["matchAny"]},"value":{"anyOf":[{"type":"array","items":{"type":"string"}},{"anyOf":[{"type":"string"},{"type":"object","properties":{"property":{"type":"string"},"context":{"type":"string","enum":["user","userTeams"]}},"required":["property","context"],"additionalProperties":false,"title":"User-context field"}],"title":"Contexted property"}]}},"required":["property","operator","value"],"additionalProperties":false,"description":"matchAny Rule"},{"$ref":"#/$defs/__schema1"}]}}},"required":["combinator","rules"],"additionalProperties":false,"title":"Entities query"}}}}}},"parameters":[{"schema":{"type":"string"},"in":"path","name":"identifier","required":true,"description":"The unique identifier of the resource you want to operate on."}],"security":[{"bearer":[]}],"x-should-be-exposed-to-customers":true,"responses":{"200":{"description":"Updated successfully","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"enum":[true]},"identifier":{"type":"string"}},"additionalProperties":false,"required":["ok","identifier"],"description":"Updated successfully"}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}},"413":{"description":"Request body is too large (limit is 1MiB)","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false,"description":"Request body is too large (limit is 1MiB)"}}}},"422":{"description":"The json provided does not match the route's schema","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"The json provided does not match the route's schema"}}}}}},"delete":{"summary":"Delete a page","tags":["Pages"],"description":"This route allows you to delete a specific page in your portal.<br/><br/>To learn more about pages, checkout the [documentation](https://docs.port.io/interface-builder/port-interface/page/catalog-page).","parameters":[{"schema":{"type":"string"},"in":"path","name":"identifier","required":true,"description":"The unique identifier of the resource you want to operate on."}],"security":[{"bearer":[]}],"x-should-be-exposed-to-customers":true,"responses":{"200":{"description":"Deleted successfully","content":{"application/json":{"schema":{"description":"Deleted successfully","type":"object","properties":{"ok":{"enum":[true]}},"additionalProperties":false,"required":["ok"]}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}},"413":{"description":"Request body is too large (limit is 1MiB)","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false,"description":"Request body is too large (limit is 1MiB)"}}}},"422":{"description":"The json provided does not match the route's schema","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"The json provided does not match the route's schema"}}}}}}},"/v1/pages/{identifier}/duplicate":{"post":{"summary":"Duplicate a page","tags":["Pages"],"description":"Creates a copy of an existing page with the same page permissions.","parameters":[{"schema":{"type":"string"},"in":"path","name":"identifier","required":true,"description":"The unique identifier of the resource you want to operate on."}],"security":[{"bearer":[]}],"x-should-be-exposed-to-customers":true,"responses":{"201":{"description":"Duplicated successfully","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"enum":[true]},"identifier":{"type":"string"}},"additionalProperties":false,"required":["ok","identifier"],"description":"Duplicated successfully"}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}},"413":{"description":"Request body is too large (limit is 1MiB)","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false,"description":"Request body is too large (limit is 1MiB)"}}}},"422":{"description":"The json provided does not match the route's schema","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"The json provided does not match the route's schema"}}}}}}},"/v1/pages/{page_identifier}/widgets":{"post":{"summary":"Create a widget","tags":["Pages"],"description":"This route allows you to create a widget in a specific page in your portal. <br/><br/>To learn more about pages, checkout the [documentation](https://docs.port.io/interface-builder/port-interface/page/catalog-page).","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"widget":{"oneOf":[{"type":"object","properties":{"id":{"description":"Unique identifier for the widget. Must be referenced in the layout.","type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"type":"string","enum":["ai-agent"]},"title":{"type":"string"},"description":{"type":"string"},"agentIdentifier":{"type":"string","description":"AI Agent entity identifier"},"icon":{"type":"string"},"useMCP":{"type":"boolean"}},"required":["type","title","agentIdentifier"],"additionalProperties":false},{"type":"object","properties":{"id":{"description":"Unique identifier for the widget. Must be referenced in the layout.","type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"type":"string","enum":["entity-info"]},"title":{"type":"string"},"entity":{"type":"string","description":"Entity identifier"},"blueprint":{"type":"string","description":"Blueprint identifier"},"description":{"type":"string"},"icon":{"type":"string"},"hiddenQuery":{"description":"Property identifiers to hide from display. Use plain identifiers for schema properties (e.g., \"myProperty\") or meta field keys (e.g., \"$identifier\", \"$title\", \"$team\", \"$createdAt\", \"$updatedAt\")","type":"array","items":{"type":"string"}},"order":{"type":"array","items":{"type":"string"}},"showEmptyValues":{"type":"boolean"}},"required":["type","title","entity","blueprint"],"additionalProperties":false},{"type":"object","properties":{"id":{"description":"Unique identifier for the widget. Must be referenced in the layout.","type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"type":"string","enum":["entity-details"]},"title":{"type":"string"},"entity":{"type":"string","description":"Entity identifier"},"blueprint":{"type":"string","description":"Blueprint identifier"},"description":{"type":"string"},"icon":{"type":"string"},"hiddenQuery":{"description":"Property identifiers to hide from display. Use plain identifiers for schema properties (e.g., \"myProperty\") or meta field keys (e.g., \"$identifier\", \"$title\", \"$team\", \"$createdAt\", \"$updatedAt\")","type":"array","items":{"type":"string"}},"order":{"type":"array","items":{"type":"string"}},"showEmptyValues":{"type":"boolean"}},"required":["type","title","entity","blueprint"],"additionalProperties":false},{"type":"object","properties":{"id":{"description":"Unique identifier for the widget. Must be referenced in the layout.","type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"type":"string","enum":["action-runs-table-widget"]},"title":{"type":"string","description":"Display title for the widget"},"action":{"type":"string","description":"The action identifier to show runs for"},"icon":{"description":"Icon for the widget","type":"string"},"description":{"description":"Description of the widget","type":"string"},"displayMode":{"type":"string","enum":["single","widget"]},"tableConfig":{"description":"Table configuration for filtering, sorting, grouping, and property visibility","type":"object","properties":{"filterSettings":{"type":"object","properties":{"filterBy":{"$ref":"#/$defs/__schema0"}},"required":["filterBy"],"additionalProperties":false},"groupSettings":{"type":"object","properties":{"groupBy":{"type":"array","items":{"type":"string"}}},"required":["groupBy"],"additionalProperties":false},"sortSettings":{"type":"object","properties":{"sortBy":{"type":"array","items":{"type":"object","properties":{"property":{"type":"string"},"order":{"type":"string","enum":["asc","desc"]}},"required":["property","order"],"additionalProperties":false}}},"additionalProperties":false},"propertiesSettings":{"type":"object","properties":{"hidden":{"type":"array","items":{"type":"string"}},"order":{"type":"array","items":{"type":"string"}}},"additionalProperties":false}},"additionalProperties":false}},"required":["type","title","action"],"additionalProperties":false},{"type":"object","properties":{"id":{"description":"Unique identifier for the widget. Must be referenced in the layout.","type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"type":"string","enum":["action-card-widget"]},"icon":{"type":"string"},"description":{"type":"string"},"title":{"type":"string"},"actions":{"type":"array","items":{"type":"object","properties":{"action":{"type":"string","description":"Action identifier"}},"required":["action"],"additionalProperties":false}}},"required":["type","title","actions"],"additionalProperties":false},{"type":"object","properties":{"id":{"description":"Unique identifier for the widget. Must be referenced in the layout.","type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"type":"string","enum":["workflow-card-widget"]},"icon":{"type":"string"},"description":{"type":"string"},"title":{"type":"string"},"items":{"minItems":1,"type":"array","items":{"type":"object","properties":{"workflowIdentifier":{"type":"string","description":"Identifier of the workflow"},"triggerIdentifier":{"description":"Identifier of the workflow self-service trigger node, if any","type":"string"}},"required":["workflowIdentifier"],"additionalProperties":false}}},"required":["type","title","items"],"additionalProperties":false},{"type":"object","properties":{"id":{"description":"Unique identifier for the widget. Must be referenced in the layout.","type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"type":"string","enum":["workflow-runs-table-widget"]},"title":{"type":"string","description":"Display title for the widget"},"icon":{"description":"Icon for the widget","type":"string"},"description":{"description":"Description of the widget","type":"string"},"workflowIdentifiers":{"type":"array","items":{"type":"string"},"description":"Identifiers of the workflows to show runs for. An empty list shows runs of all workflows."},"statuses":{"description":"Default status filter. Viewers can change it without saving the widget.","type":"array","items":{"type":"string","enum":["SUCCESS","FAILED","CANCELLED","CANCELLING","WAITING_FOR_INPUT","IN_PROGRESS"]}},"timeRange":{"description":"Default relative date range. When omitted, runs are not limited by date.","type":"object","properties":{"preset":{"type":"string","enum":["today","yesterday","lastDay","lastWeek","last2Weeks","lastMonth","last3Months"]}},"required":["preset"],"additionalProperties":false},"tableConfig":{"description":"Table configuration for filtering, sorting, grouping, and property visibility","type":"object","properties":{"filterSettings":{"type":"object","properties":{"filterBy":{"$ref":"#/$defs/__schema0"}},"required":["filterBy"],"additionalProperties":false},"groupSettings":{"type":"object","properties":{"groupBy":{"type":"array","items":{"type":"string"}}},"required":["groupBy"],"additionalProperties":false},"sortSettings":{"type":"object","properties":{"sortBy":{"type":"array","items":{"type":"object","properties":{"property":{"type":"string"},"order":{"type":"string","enum":["asc","desc"]}},"required":["property","order"],"additionalProperties":false}}},"additionalProperties":false},"propertiesSettings":{"type":"object","properties":{"hidden":{"type":"array","items":{"type":"string"}},"order":{"type":"array","items":{"type":"string"}}},"additionalProperties":false}},"additionalProperties":false}},"required":["type","title","workflowIdentifiers"],"additionalProperties":false},{"type":"object","properties":{"id":{"description":"Unique identifier for the widget. Must be referenced in the layout.","type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"type":"string","enum":["links-widget"]},"title":{"type":"string"},"description":{"type":"string"},"icon":{"type":"string"},"links":{"minItems":1,"type":"array","items":{"type":"object","properties":{"title":{"type":"string","minLength":1},"description":{"type":"string"},"url":{"type":"string","description":"a valid URL to open when the link is clicked"},"icon":{"type":"string"}},"required":["title","url"],"additionalProperties":false}}},"required":["type","title","links"],"additionalProperties":false},{"type":"object","properties":{"id":{"description":"Unique identifier for the widget. Must be referenced in the layout.","type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"type":"string","enum":["table-entities-explorer"]},"icon":{"type":"string"},"description":{"type":"string"},"emptyStateText":{"type":"string"},"title":{"type":"string"},"blueprint":{"type":"string"},"dataset":{"$ref":"#/$defs/__schema0"},"excludedFields":{"type":"array","items":{"type":"string"}},"displayMode":{"type":"string","enum":["tabs","single","widget"]},"entitiesQueryMode":{"type":"string","enum":["standard","optimized"]},"entitiesQueryMaxResults":{"type":"number","enum":[100,1000,10000,100000]},"blueprintConfig":{"type":"object","propertyNames":{"type":"string","pattern":"^(?!\\.{1,2}$)[\\p{L}0-9@_.+:\\\\/='-]+$"},"additionalProperties":{"type":"object","properties":{"filterSettings":{"type":"object","properties":{"filterBy":{"$ref":"#/$defs/__schema0"}},"required":["filterBy"],"additionalProperties":false},"groupSettings":{"type":"object","properties":{"groupBy":{"type":"array","items":{"type":"string"}}},"required":["groupBy"],"additionalProperties":false},"sortSettings":{"type":"object","properties":{"sortBy":{"type":"array","items":{"type":"object","properties":{"property":{"type":"string"},"order":{"type":"string","enum":["asc","desc"]}},"required":["property","order"],"additionalProperties":false}}},"additionalProperties":false},"propertiesSettings":{"type":"object","properties":{"hidden":{"type":"array","items":{"type":"string"}},"shown":{"type":"array","items":{"type":"string"}},"order":{"type":"array","items":{"type":"string"}}},"additionalProperties":false},"columnsOrder":{"type":"array","items":{"type":"string"}},"cardsOrder":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"tabIndex":{"type":"number"},"hidden":{"type":"boolean"},"title":{"type":"string","maxLength":20},"description":{"type":"string"}},"additionalProperties":false}},"showOnlyRelatedEntities":{"type":"boolean"}},"required":["type","dataset"],"additionalProperties":false},{"type":"object","properties":{"id":{"description":"Unique identifier for the widget. Must be referenced in the layout.","type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"type":"string","enum":["board"]},"icon":{"type":"string"},"description":{"type":"string"},"emptyStateText":{"type":"string"},"title":{"type":"string"},"blueprint":{"type":"string"},"dataset":{"$ref":"#/$defs/__schema0"},"excludedFields":{"type":"array","items":{"type":"string"}},"entitiesQueryMode":{"default":"optimized","type":"string","enum":["optimized"]},"entitiesQueryMaxResults":{"type":"number","enum":[100,1000,10000,100000]},"blueprintConfig":{"type":"object","propertyNames":{"type":"string","pattern":"^(?!\\.{1,2}$)[\\p{L}0-9@_.+:\\\\/='-]+$"},"additionalProperties":{"type":"object","properties":{"filterSettings":{"type":"object","properties":{"filterBy":{"$ref":"#/$defs/__schema0"}},"required":["filterBy"],"additionalProperties":false},"groupSettings":{"type":"object","properties":{"groupBy":{"type":"array","items":{"type":"string"}}},"required":["groupBy"],"additionalProperties":false},"sortSettings":{"type":"object","properties":{"sortBy":{"type":"array","items":{"type":"object","properties":{"property":{"type":"string"},"order":{"type":"string","enum":["asc","desc"]}},"required":["property","order"],"additionalProperties":false}}},"additionalProperties":false},"propertiesSettings":{"type":"object","properties":{"hidden":{"type":"array","items":{"type":"string"}},"shown":{"type":"array","items":{"type":"string"}},"order":{"type":"array","items":{"type":"string"}}},"additionalProperties":false},"columnsOrder":{"type":"array","items":{"type":"string"}},"cardsOrder":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"tabIndex":{"type":"number"},"hidden":{"type":"boolean"},"title":{"type":"string","maxLength":20},"description":{"type":"string"}},"additionalProperties":false}},"showOnlyRelatedEntities":{"type":"boolean"},"showEmptyValues":{"type":"boolean"}},"required":["type","dataset"],"additionalProperties":false},{"type":"object","properties":{"id":{"description":"Unique identifier for the widget. Must be referenced in the layout.","type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"type":"string","enum":["table-entities-explorer-by-direction"]},"title":{"type":"string"},"blueprintConfig":{"type":"object","propertyNames":{"type":"string","pattern":"^[A-Za-z0-9@_.:\\\\/=-]*\\$(specificpath|upstream|downstream|custom|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})(\\$[A-Za-z0-9@_.:\\\\/=-]+)*$"},"additionalProperties":{"type":"object","properties":{"filterSettings":{"type":"object","properties":{"filterBy":{"$ref":"#/$defs/__schema0"}},"required":["filterBy"],"additionalProperties":false},"groupSettings":{"type":"object","properties":{"groupBy":{"type":"array","items":{"type":"string"}}},"required":["groupBy"],"additionalProperties":false},"sortSettings":{"type":"object","properties":{"sortBy":{"type":"array","items":{"type":"object","properties":{"property":{"type":"string"},"order":{"type":"string","enum":["asc","desc"]}},"required":["property","order"],"additionalProperties":false}}},"additionalProperties":false},"propertiesSettings":{"type":"object","properties":{"hidden":{"type":"array","items":{"type":"string"}},"shown":{"type":"array","items":{"type":"string"}},"order":{"type":"array","items":{"type":"string"}}},"additionalProperties":false},"tabIndex":{"type":"number"},"hidden":{"type":"boolean"},"title":{"type":"string","maxLength":50},"description":{"type":"string"},"dataset":{"$ref":"#/$defs/__schema0"},"targetBlueprint":{"type":"string"},"relatedProperty":{"type":"string"}},"additionalProperties":false}}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"id":{"description":"Unique identifier for the widget. Must be referenced in the layout.","type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"type":"string","enum":["table-audit-log"]},"title":{"type":"string"},"description":{"type":"string"},"query":{"type":"object","properties":{"identifier":{"type":"string","description":"An identifier of the log event you want to fetch."},"entity":{"type":"string","description":"Fetch all audit logs related to the specified entity."},"include_deleted_entities":{"type":"boolean","description":"Include deleted entities when searching for audit logs. This requires the `entity`, `blueprint`, `status`, `from` and `to` parameters. And the diff between `from` & `to` is limited to 1 day."},"blueprint":{"type":"string","description":"Fetch all audit logs related to the specified blueprint."},"run_id":{"type":"string","description":"Fetch all audit logs related to the specified action run."},"webhookId":{"type":"string","description":"Fetch all audit logs related to the specified webhook."},"webhookEventId":{"type":"string","description":"Fetch all audit logs related to the specified webhook event."},"origin":{"type":"array","items":{"type":"string"},"description":"Fetch all audit logs coming from the specified origin/s. This refers to the integration/s that triggered the log. For operations performed via Port's UI, the origin will be `UI`."},"InstallationId":{"type":"string","description":"Fetch all audit logs related to the specified integration."},"resources":{"anyOf":[{"type":"array","items":{"type":"string","enum":["entity","blueprint_permission","blueprint","run","webhook","action","action_permission","scorecard","integration","secret"]}},{"type":"string","enum":["entity","blueprint_permission","blueprint","run","webhook","action","action_permission","scorecard","integration","secret"]}],"description":"Fetch all audit logs related to the specified resource type/s.<br/>**Possible values**: [`blueprint`, `entity`, `run`, `webhook`, `scorecard`, `action`, `integration`]<br/>The `integration` value is **experimental** and may change in future API versions."},"includes":{"type":"array","items":{"type":"string","enum":["action","context","diff","identifier","resourceType","status","trigger","additionalData","message"]},"description":"The fields you want to include in the response. If used, only the specified fields will be included in the response."},"from":{"type":"string","description":"The starting timestamp of the audit logs you want to fetch, in the ISO format `2022-04-23T18:25:43.511Z`."},"to":{"type":"string","description":"The ending timestamp of the audit logs you want to fetch, in the ISO format `2022-04-23T18:25:43.511Z`."},"action":{"type":"string","description":"Fetch all audit logs with the specified action type - `CREATE`, `UPDATE`, or `DELETE`."},"status":{"type":"string","enum":["SUCCESS","FAILURE"],"description":"Fetch all audit logs with the specified status."},"limit":{"type":"number","description":"The maximum number of logs to return. Optional; defaults to `10000`. The previous default was `100000`, which could cause `504 Gateway Timeout` on large accounts. Use a lower value or narrow `from` and `to` if you still hit timeouts."},"actionType":{"type":"string","enum":["automation","self-service"]}},"additionalProperties":false},"tableConfig":{"type":"object","properties":{"filterSettings":{"type":"object","properties":{"filterBy":{"$ref":"#/$defs/__schema0"}},"required":["filterBy"],"additionalProperties":false},"groupSettings":{"type":"object","properties":{"groupBy":{"type":"array","items":{"type":"string"}}},"required":["groupBy"],"additionalProperties":false},"sortSettings":{"type":"object","properties":{"sortBy":{"type":"array","items":{"type":"object","properties":{"property":{"type":"string"},"order":{"type":"string","enum":["asc","desc"]}},"required":["property","order"],"additionalProperties":false}}},"additionalProperties":false},"propertiesSettings":{"type":"object","properties":{"hidden":{"type":"array","items":{"type":"string"}},"order":{"type":"array","items":{"type":"string"}}},"additionalProperties":false}},"additionalProperties":false}},"required":["type","query"],"additionalProperties":false},{"type":"object","properties":{"id":{"description":"Unique identifier for the widget. Must be referenced in the layout.","type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"type":"string","enum":["users-table"]},"title":{"type":"string"},"tableConfig":{"type":"object","properties":{"filterSettings":{"type":"object","properties":{"filterBy":{"$ref":"#/$defs/__schema0"}},"required":["filterBy"],"additionalProperties":false},"groupSettings":{"type":"object","properties":{"groupBy":{"type":"array","items":{"type":"string"}}},"required":["groupBy"],"additionalProperties":false},"sortSettings":{"type":"object","properties":{"sortBy":{"type":"array","items":{"type":"object","properties":{"property":{"type":"string"},"order":{"type":"string","enum":["asc","desc"]}},"required":["property","order"],"additionalProperties":false}}},"additionalProperties":false},"propertiesSettings":{"type":"object","properties":{"hidden":{"type":"array","items":{"type":"string"}},"order":{"type":"array","items":{"type":"string"}}},"additionalProperties":false}},"additionalProperties":false}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"id":{"description":"Unique identifier for the widget. Must be referenced in the layout.","type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"type":"string","enum":["teams-table"]},"title":{"type":"string"},"tableConfig":{"type":"object","properties":{"filterSettings":{"type":"object","properties":{"filterBy":{"$ref":"#/$defs/__schema0"}},"required":["filterBy"],"additionalProperties":false},"groupSettings":{"type":"object","properties":{"groupBy":{"type":"array","items":{"type":"string"}}},"required":["groupBy"],"additionalProperties":false},"sortSettings":{"type":"object","properties":{"sortBy":{"type":"array","items":{"type":"object","properties":{"property":{"type":"string"},"order":{"type":"string","enum":["asc","desc"]}},"required":["property","order"],"additionalProperties":false}}},"additionalProperties":false},"propertiesSettings":{"type":"object","properties":{"hidden":{"type":"array","items":{"type":"string"}},"order":{"type":"array","items":{"type":"string"}}},"additionalProperties":false}},"additionalProperties":false}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"id":{"description":"Unique identifier for the widget. Must be referenced in the layout.","type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"type":"string","enum":["runs-table"]},"title":{"type":"string"},"query":{"type":"object","properties":{"entity":{"type":"string","description":"The identifier of the entity associated with the action run."},"blueprint":{"type":"string","description":"The identifier of the blueprint associated with the action run."},"active":{"type":"boolean","description":"If `true`, only running action runs will be fetched."},"user_email":{"type":"string","description":"The email of the user who initiated the action run."},"user_id":{"type":"string","description":"The id of the user who initiated the action run."},"limit":{"type":"number","minimum":1,"maximum":1000,"description":"The maximum number of action runs to fetch."},"exclude":{"type":"array","items":{"type":"string"},"description":"The fields to exclude from the response"},"external_run_id":{"type":"string","description":"The run id of your backend, for example the id that GitHub gives the workflow. This can be used to identify the action run instead of the `run_id`."},"action":{"anyOf":[{"type":"string"},{"type":"null"}]},"source":{"type":"array","items":{"type":"string","enum":["UI","API","AUTOMATION"]}},"next":{"type":"string","description":"An opaque cursor for pagination. Pass the `next` value from the previous response to fetch the next page of results."},"version":{"anyOf":[{"type":"string","enum":["v1","v2"],"description":"Specifies the API version to use. Please use `v2` for the latest version of the API."},{"type":"null"}]}},"additionalProperties":false},"tableConfig":{"type":"object","properties":{"filterSettings":{"type":"object","properties":{"filterBy":{"$ref":"#/$defs/__schema0"}},"required":["filterBy"],"additionalProperties":false},"groupSettings":{"type":"object","properties":{"groupBy":{"type":"array","items":{"type":"string"}}},"required":["groupBy"],"additionalProperties":false},"sortSettings":{"type":"object","properties":{"sortBy":{"type":"array","items":{"type":"object","properties":{"property":{"type":"string"},"order":{"type":"string","enum":["asc","desc"]}},"required":["property","order"],"additionalProperties":false}}},"additionalProperties":false},"propertiesSettings":{"type":"object","properties":{"hidden":{"type":"array","items":{"type":"string"}},"order":{"type":"array","items":{"type":"string"}}},"additionalProperties":false}},"additionalProperties":false}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"id":{"description":"Unique identifier for the widget. Must be referenced in the layout.","type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"type":"string","enum":["workflow-runs-history-table"]},"query":{"type":"object","properties":{},"additionalProperties":false},"tableConfig":{"type":"object","properties":{"filterSettings":{"type":"object","properties":{"filterBy":{"$ref":"#/$defs/__schema0"}},"required":["filterBy"],"additionalProperties":false},"groupSettings":{"type":"object","properties":{"groupBy":{"type":"array","items":{"type":"string"}}},"required":["groupBy"],"additionalProperties":false},"sortSettings":{"type":"object","properties":{"sortBy":{"type":"array","items":{"type":"object","properties":{"property":{"type":"string"},"order":{"type":"string","enum":["asc","desc"]}},"required":["property","order"],"additionalProperties":false}}},"additionalProperties":false},"propertiesSettings":{"type":"object","properties":{"hidden":{"type":"array","items":{"type":"string"}},"order":{"type":"array","items":{"type":"string"}}},"additionalProperties":false}},"additionalProperties":false}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"id":{"description":"Unique identifier for the widget. Must be referenced in the layout.","type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"type":"string","enum":["run-info"]},"title":{"type":"string"},"runId":{"type":"string"}},"required":["type","runId"],"additionalProperties":false},{"type":"object","properties":{"id":{"description":"Unique identifier for the widget. Must be referenced in the layout.","type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"type":"string","enum":["user-info"]},"title":{"type":"string"},"user_email":{"type":"string"}},"required":["type","user_email"],"additionalProperties":false},{"type":"object","properties":{"id":{"description":"Unique identifier for the widget. Must be referenced in the layout.","type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"type":"string","enum":["graph-entities-explorer"]},"title":{"type":"string"},"dataset":{"$ref":"#/$defs/__schema0"},"hiddenBlueprints":{"type":"array","items":{"type":"string"}}},"required":["type","dataset"],"additionalProperties":false},{"type":"object","properties":{"id":{"description":"Unique identifier for the widget. Must be referenced in the layout.","type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"type":"string","enum":["bar-chart"]},"icon":{"type":"string"},"title":{"type":"string"},"blueprint":{"type":"string"},"property":{"type":"string","pattern":"^((property#|mirror-property#|calculation-property#|aggregation-property#|relation#|scorecard#|scorecard-rule#).+|\\$(identifier|title|team))$","description":"Property to group by for bars. Use prefixed format: \"property#<name>\", \"mirror-property#<name>\", \"calculation-property#<name>\", \"aggregation-property#<name>\", \"relation#<name>\", \"scorecard#<name>\", \"scorecard-rule#<scorecardId>#<ruleId>\". Or use meta fields: \"$identifier\", \"$title\", \"$team\"."},"description":{"type":"string"},"dataset":{"$ref":"#/$defs/__schema0"},"emptyStateText":{"type":"string"},"segmentTableViewConfig":{"description":"Configuration for segment table views","type":"object","propertyNames":{"type":"string","pattern":"^(?!\\.{1,2}$)[\\p{L}0-9@_.+:\\\\/='-]+$"},"additionalProperties":{"type":"object","properties":{"filterSettings":{"type":"object","properties":{"filterBy":{"$ref":"#/$defs/__schema0"}},"required":["filterBy"],"additionalProperties":false},"groupSettings":{"type":"object","properties":{"groupBy":{"type":"array","items":{"type":"string"}}},"required":["groupBy"],"additionalProperties":false},"sortSettings":{"type":"object","properties":{"sortBy":{"type":"array","items":{"type":"object","properties":{"property":{"type":"string"},"order":{"type":"string","enum":["asc","desc"]}},"required":["property","order"],"additionalProperties":false}}},"additionalProperties":false},"propertiesSettings":{"type":"object","properties":{"hidden":{"type":"array","items":{"type":"string"}},"shown":{"type":"array","items":{"type":"string"}},"order":{"type":"array","items":{"type":"string"}}},"additionalProperties":false},"columnsOrder":{"type":"array","items":{"type":"string"}},"cardsOrder":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"tabIndex":{"type":"number"},"hidden":{"type":"boolean"},"title":{"type":"string","maxLength":20},"description":{"type":"string"}},"additionalProperties":false}},"showOnlyRelatedEntities":{"type":"boolean"}},"required":["type","title","blueprint","property","dataset"],"additionalProperties":false},{"type":"object","properties":{"id":{"description":"Unique identifier for the widget. Must be referenced in the layout.","type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"type":"string","enum":["entities-pie-chart"]},"icon":{"type":"string"},"title":{"type":"string"},"blueprint":{"type":"string"},"property":{"type":"string","pattern":"^((property#|mirror-property#|calculation-property#|aggregation-property#|relation#|scorecard#|scorecard-rule#).+|\\$(identifier|title|team))$","description":"Property to group by for pie slices. Use prefixed format: \"property#<name>\", \"mirror-property#<name>\", \"calculation-property#<name>\", \"aggregation-property#<name>\", \"relation#<name>\", \"scorecard#<name>\", \"scorecard-rule#<scorecardId>#<ruleId>\". Or use meta fields: \"$identifier\", \"$title\", \"$team\"."},"description":{"type":"string"},"dataset":{"$ref":"#/$defs/__schema0"},"emptyStateText":{"type":"string"},"segmentTableViewConfig":{"description":"Configuration for segment table views","type":"object","propertyNames":{"type":"string","pattern":"^(?!\\.{1,2}$)[\\p{L}0-9@_.+:\\\\/='-]+$"},"additionalProperties":{"type":"object","properties":{"filterSettings":{"type":"object","properties":{"filterBy":{"$ref":"#/$defs/__schema0"}},"required":["filterBy"],"additionalProperties":false},"groupSettings":{"type":"object","properties":{"groupBy":{"type":"array","items":{"type":"string"}}},"required":["groupBy"],"additionalProperties":false},"sortSettings":{"type":"object","properties":{"sortBy":{"type":"array","items":{"type":"object","properties":{"property":{"type":"string"},"order":{"type":"string","enum":["asc","desc"]}},"required":["property","order"],"additionalProperties":false}}},"additionalProperties":false},"propertiesSettings":{"type":"object","properties":{"hidden":{"type":"array","items":{"type":"string"}},"shown":{"type":"array","items":{"type":"string"}},"order":{"type":"array","items":{"type":"string"}}},"additionalProperties":false},"columnsOrder":{"type":"array","items":{"type":"string"}},"cardsOrder":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"tabIndex":{"type":"number"},"hidden":{"type":"boolean"},"title":{"type":"string","maxLength":20},"description":{"type":"string"}},"additionalProperties":false}},"showOnlyRelatedEntities":{"type":"boolean"}},"required":["type","title","property","dataset"],"additionalProperties":false},{"type":"object","properties":{"id":{"description":"Unique identifier for the widget. Must be referenced in the layout.","type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"type":"string","enum":["line-chart"]},"icon":{"type":"string"},"title":{"type":"string"},"blueprint":{"type":"string"},"chartType":{"type":"string","enum":["propertiesValueHistory","aggregatePropertiesValues","countEntities"]},"xAxisTitle":{"type":"string"},"yAxisTitle":{"type":"string"},"timeInterval":{"type":"string","enum":["hour","day","isoWeek","month","quarter"]},"timeRange":{"type":"object","properties":{"preset":{"type":"string","enum":["today","yesterday","lastDay","lastWeek","last2Weeks","lastMonth","last3Months","last6Months","last12Months","last2Years","last3Years"]}},"required":["preset"],"additionalProperties":false},"description":{"type":"string"},"emptyStateText":{"type":"string"},"entity":{"type":"string"},"properties":{"minItems":1,"type":"array","items":{"type":"string","pattern":"^(properties\\.|relations\\.).+$"}},"func":{"type":"string","enum":["sum","average","min","max","median","last","count"]},"measureTimeBy":{"description":"Property identifier for time measurement (no prefix needed; e.g. \"deploymentDate\" or \"$createdAt\")","type":"string"},"dataset":{"$ref":"#/$defs/__schema0"},"breakdownProperty":{"description":"Property identifier for breakdown (no prefix needed)","type":"string"}},"required":["type","title","blueprint","chartType"],"additionalProperties":false,"title":"Line chart"},{"type":"object","properties":{"id":{"description":"Unique identifier for the widget. Must be referenced in the layout.","type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"type":"string","enum":["multi-line-chart"]},"icon":{"type":"string"},"title":{"type":"string"},"xAxisTitle":{"type":"string"},"yAxisTitle":{"type":"string"},"timeInterval":{"type":"string","enum":["hour","day","isoWeek","month","quarter"]},"timeRange":{"type":"object","properties":{"preset":{"type":"string","enum":["today","yesterday","lastDay","lastWeek","last2Weeks","lastMonth","last3Months","last6Months","last12Months","last2Years","last3Years"]}},"required":["preset"],"additionalProperties":false},"description":{"type":"string"},"emptyStateText":{"type":"string"},"lines":{"minItems":1,"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"blueprint":{"type":"string"},"chartType":{"type":"string","enum":["propertiesValueHistory","aggregatePropertiesValues","countEntities"]},"entity":{"type":"string"},"properties":{"minItems":1,"type":"array","items":{"type":"string","pattern":"^(properties\\.|relations\\.).+$"}},"func":{"type":"string","enum":["sum","average","min","max","median","last","count"]},"measureTimeBy":{"description":"Property identifier for time measurement (no prefix needed; e.g. \"deploymentDate\" or \"$createdAt\")","type":"string"},"dataset":{"$ref":"#/$defs/__schema0"},"breakdownProperty":{"description":"Property identifier for breakdown (no prefix needed)","type":"string"}},"required":["title","blueprint","chartType"],"additionalProperties":false},"description":"Array of line configurations"},"baselines":{"description":"Horizontal reference lines","type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"value":{"type":"number"},"color":{"type":"string"}},"required":["value"],"additionalProperties":false}},"nullValueDisplayMode":{"type":"string","enum":["zero","null"]}},"required":["type","title","timeInterval","timeRange","lines"],"additionalProperties":false},{"type":"object","properties":{"id":{"description":"Unique identifier for the widget. Must be referenced in the layout.","type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"type":"string","enum":["entities-number-chart"]},"title":{"type":"string"},"icon":{"type":"string"},"description":{"type":"string"},"emptyStateText":{"type":"string"},"unit":{"type":"string","enum":["none","$","€","£","%","custom"]},"unitAlignment":{"type":"string","enum":["left","right"]},"conditionalFormatting":{"type":"array","items":{"type":"object","properties":{"operator":{"type":"string","enum":[">",">=","<","<=","=","!="]},"value":{"type":"number"},"message":{"type":"string","maxLength":50},"description":{"type":"string","maxLength":200},"color":{"type":"string","enum":["blue","turquoise","orange","purple","pink","yellow","green","red","gold","silver","paleBlue","darkGray","lightGray","bronze","lime","olive","brown"]}},"required":["operator","value"],"additionalProperties":false}},"displayFormatting":{"type":"string","enum":["none","round","custom"]},"decimalPlaces":{"type":"string","enum":[".0",".00",".000",".0000",".00000"]},"chartType":{"type":"string","enum":["aggregateByProperty","countEntities","displaySingleProperty"]},"blueprint":{"type":"string"},"calculationBy":{"type":"string","enum":["entities","property"]},"dataset":{"anyOf":[{"type":"array","items":{}},{"$ref":"#/$defs/__schema0"}]},"segmentTableViewConfig":{"type":"object","propertyNames":{"type":"string","pattern":"^(?!\\.{1,2}$)[\\p{L}0-9@_.+:\\\\/='-]+$"},"additionalProperties":{"type":"object","properties":{"filterSettings":{"type":"object","properties":{"filterBy":{"$ref":"#/$defs/__schema0"}},"required":["filterBy"],"additionalProperties":false},"groupSettings":{"type":"object","properties":{"groupBy":{"type":"array","items":{"type":"string"}}},"required":["groupBy"],"additionalProperties":false},"sortSettings":{"type":"object","properties":{"sortBy":{"type":"array","items":{"type":"object","properties":{"property":{"type":"string"},"order":{"type":"string","enum":["asc","desc"]}},"required":["property","order"],"additionalProperties":false}}},"additionalProperties":false},"propertiesSettings":{"type":"object","properties":{"hidden":{"type":"array","items":{"type":"string"}},"shown":{"type":"array","items":{"type":"string"}},"order":{"type":"array","items":{"type":"string"}}},"additionalProperties":false},"columnsOrder":{"type":"array","items":{"type":"string"}},"cardsOrder":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"tabIndex":{"type":"number"},"hidden":{"type":"boolean"},"title":{"type":"string","maxLength":20},"description":{"type":"string"}},"additionalProperties":false}},"showOnlyRelatedEntities":{"type":"boolean"},"property":{"description":"Property identifier (no prefix needed)","type":"string"},"entity":{"type":"string"},"func":{"type":"string","enum":["sum","average","min","max","median","count"]},"averageOf":{"type":"string","enum":["hour","day","week","month","total"]},"measureTimeBy":{"type":"string"},"unitCustom":{"type":"string"}},"required":["type","title","unit","blueprint"],"additionalProperties":false},{"type":"object","properties":{"id":{"description":"Unique identifier for the widget. Must be referenced in the layout.","type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"type":"string","enum":["iframe-widget"]},"title":{"type":"string"},"icon":{"type":"string"},"description":{"type":"string"},"url":{"anyOf":[{"type":"string","format":"uri"},{"type":"string","pattern":"^\\/(?!\\/)"}],"description":"Absolute URL or org-relative path to embed (e.g. /organization/home)"},"urlType":{"type":"string","enum":["public","protected"]},"popupAuth":{"type":"boolean"},"tokenUrl":{"type":"string","format":"uri"},"authorizationUrl":{"type":"string","format":"uri"},"clientId":{"type":"string"},"scopes":{"type":"array","items":{"type":"string"}}},"required":["type","title","url","urlType"],"additionalProperties":false},{"type":"object","properties":{"id":{"description":"Unique identifier for the widget. Must be referenced in the layout.","type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"type":"string","enum":["markdown"]},"title":{"type":"string"},"description":{"type":"string"},"icon":{"type":"string"},"source":{"type":"string","enum":["custom","property"]},"markdown":{"description":"Markdown content to render","type":"string"},"blueprintIdentifier":{"description":"Blueprint identifier containing the markdown property","type":"string"},"propertyIdentifier":{"description":"Property identifier containing the markdown content","type":"string"},"entityIdentifier":{"description":"Entity identifier to read the markdown property from","type":"string"}},"required":["type","title"],"additionalProperties":false},{"type":"object","properties":{"id":{"description":"Unique identifier for the widget. Must be referenced in the layout.","type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"type":"string","enum":["team-info"]},"title":{"type":"string"},"team_name":{"type":"string"}},"required":["type","team_name"],"additionalProperties":false},{"type":"object","properties":{"id":{"description":"Unique identifier for the widget. Must be referenced in the layout.","type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"type":"string","enum":["recently-viewed-entities"]},"title":{"type":"string"},"icon":{"type":"string"},"description":{"type":"string"}},"required":["type","title"],"additionalProperties":false},{"type":"object","properties":{"id":{"description":"Unique identifier for the widget. Must be referenced in the layout.","type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"type":"string","enum":["recently-used-actions"]},"title":{"type":"string"},"icon":{"type":"string"},"description":{"type":"string"}},"required":["type","title"],"additionalProperties":false},{"type":"object","properties":{"id":{"description":"Unique identifier for the widget. Must be referenced in the layout.","type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"type":"string","enum":["my-entities"]},"title":{"type":"string"},"description":{"type":"string"},"icon":{"type":"string"}},"required":["type","title"],"additionalProperties":false},{"type":"object","properties":{"id":{"description":"Unique identifier for the widget. Must be referenced in the layout.","type":"string"},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"type":{"type":"string","enum":["custom-widget"]},"title":{"type":"string"},"icon":{"type":"string"},"description":{"type":"string"},"pluginId":{"type":"string"},"paramValues":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"type":{"type":"string","enum":["string","number","boolean","array","object","blueprint"]},"value":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"array","items":{}},{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}]}},"required":["type","value"],"additionalProperties":false}}},"required":["type","title","pluginId"],"additionalProperties":false}]},"parentWidgetId":{"type":"string"}},"required":["widget","parentWidgetId"],"additionalProperties":false,"$defs":{"__schema0":{"type":"object","properties":{"combinator":{"type":"string","enum":["and","or"],"description":"The combinator to use for the rules."},"rules":{"type":"array","items":{"anyOf":[{"type":"object","properties":{"property":{"anyOf":[{"type":"string"},{"type":"object","properties":{"property":{"type":"string"},"context":{"type":"string","enum":["user","userTeams"]}},"required":["property","context"],"additionalProperties":false,"title":"User-context field"}],"title":"Contexted property"},"operator":{"type":"string","enum":["between","notBetween","="]},"value":{"anyOf":[{"type":"object","properties":{"from":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"to":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"}},"required":["from","to"],"additionalProperties":false,"description":"Date Range"},{"type":"object","properties":{"preset":{"type":"string","enum":["today","tomorrow","yesterday","lastDay","lastWeek","last2Weeks","lastMonth","last3Months","last6Months","last12Months","last2Years","last3Years","nextDay","nextWeek","next2Weeks","nextMonth","next3Months","next6Months","next12Months"]}},"required":["preset"],"additionalProperties":false,"description":"Date Preset"},{"type":"object","properties":{"property":{"type":"string"},"context":{"type":"string","enum":["user","userTeams"]}},"required":["property","context"],"additionalProperties":false,"title":"User-context field"}]}},"required":["property","operator","value"],"additionalProperties":false},{"type":"object","properties":{"operator":{"type":"string","enum":["isEmpty","isNotEmpty"]},"property":{"type":"string"}},"required":["operator","property"],"additionalProperties":false},{"type":"object","properties":{"property":{"anyOf":[{"type":"string"},{"type":"object","properties":{"property":{"type":"string"},"context":{"type":"string","enum":["user","userTeams"]}},"required":["property","context"],"additionalProperties":false,"title":"User-context field"}],"title":"Contexted property"},"operator":{"type":"string","enum":[">",">=","<","<="]},"value":{"anyOf":[{"type":"number","description":"number"},{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","description":"date-time"},{"type":"object","properties":{"property":{"type":"string"},"context":{"type":"string","enum":["user","userTeams"]}},"required":["property","context"],"additionalProperties":false,"title":"User-context field"}]}},"required":["property","operator","value"],"additionalProperties":false},{"type":"object","properties":{"operator":{"type":"string","enum":["isExpired","isNotExpired"]},"property":{"type":"string"}},"required":["operator","property"],"additionalProperties":false},{"type":"object","properties":{"property":{"anyOf":[{"type":"string"},{"type":"object","properties":{"property":{"type":"string"},"context":{"type":"string","enum":["user","userTeams"]}},"required":["property","context"],"additionalProperties":false,"title":"User-context field"}],"title":"Contexted property"},"operator":{"type":"string","enum":["=","!=","containsAny","contains","doesNotContains","beginsWith","doesNotBeginsWith","endsWith","doesNotEndsWith","in","notIn"]},"value":{"anyOf":[{"type":"null","description":"null"},{"type":"string","description":"string"},{"type":"number","description":"number"},{"type":"boolean","description":"boolean"},{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","description":"date-time"},{"type":"array","items":{"type":"string"},"description":"array"},{"type":"array","items":{"type":"number"},"description":"array"},{"type":"array","items":{"type":"boolean"},"description":"array"},{"type":"array","items":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"description":"array"},{"type":"object","properties":{"property":{"type":"string"},"context":{"type":"string","enum":["user","userTeams"]}},"required":["property","context"],"additionalProperties":false,"title":"User-context field"}]}},"required":["property","operator","value"],"additionalProperties":false},{"type":"object","properties":{"operator":{"type":"string","enum":["relatedTo"]},"blueprint":{"type":"string"},"value":{"anyOf":[{"type":"string","description":"string"},{"type":"array","items":{"type":"string"},"description":"array"}]},"direction":{"type":"string","enum":["upstream","downstream"]},"required":{"type":"boolean"}},"required":["operator","blueprint","value"],"additionalProperties":false},{"type":"object","properties":{"propertySchema":{"type":"object","properties":{"type":{"type":"string"},"format":{"type":"string"},"items":{"type":"object","properties":{"type":{"type":"string"},"format":{"type":"string"}},"required":["type"],"additionalProperties":false}},"required":["type"],"additionalProperties":false},"operator":{"type":"string","enum":["=","!=","contains"]},"value":{"anyOf":[{"type":"null","description":"null"},{"type":"string","description":"string"},{"type":"number","description":"number"},{"type":"boolean","description":"boolean"}]}},"required":["propertySchema","operator"],"additionalProperties":false},{"type":"object","properties":{"property":{"anyOf":[{"type":"object","properties":{"path":{"minItems":1,"type":"array","items":{"anyOf":[{"type":"string","title":"Relation identifier"},{"type":"object","properties":{"relation":{"type":"string"},"maxHops":{"type":"number","minimum":1,"maximum":15}},"additionalProperties":false,"title":"Relation with max hops"}]}},"fromBlueprint":{"type":"string"}},"required":["path"],"additionalProperties":false,"title":"Path filter property"},{"anyOf":[{"type":"string"},{"type":"object","properties":{"property":{"type":"string"},"context":{"type":"string","enum":["user","userTeams"]}},"required":["property","context"],"additionalProperties":false,"title":"User-context field"}],"title":"Contexted property"}]},"operator":{"type":"string","enum":["matchAny"]},"value":{"anyOf":[{"type":"array","items":{"type":"string"}},{"anyOf":[{"type":"string"},{"type":"object","properties":{"property":{"type":"string"},"context":{"type":"string","enum":["user","userTeams"]}},"required":["property","context"],"additionalProperties":false,"title":"User-context field"}],"title":"Contexted property"}]}},"required":["property","operator","value"],"additionalProperties":false,"description":"matchAny Rule"},{"$ref":"#/$defs/__schema0"}]}}},"required":["combinator","rules"],"additionalProperties":false,"title":"Entities query"}}}}},"required":true},"parameters":[{"schema":{"type":"string","minLength":1},"in":"path","name":"page_identifier","required":true}],"security":[{"bearer":[]}],"x-should-be-exposed-to-customers":true,"responses":{"201":{"description":"Created successfully"},"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}},"413":{"description":"Request body is too large (limit is 1MiB)","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false,"description":"Request body is too large (limit is 1MiB)"}}}},"422":{"description":"The json provided does not match the route's schema","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"The json provided does not match the route's schema"}}}}}}},"/v1/pages/{page_identifier}/widgets/{widget_id}":{"patch":{"summary":"Update a widget","tags":["Pages"],"description":"This route allows you to update a specific widget in your portal. <br/><br/>To learn more about pages, checkout the [documentation](https://docs.port.io/interface-builder/port-interface/page/catalog-page).","requestBody":{"content":{"application/json":{"schema":{"type":"object","description":"Partial update for an existing widget. Allowed keys depend on the stored widget type; you can check the schema for each widget in the POST widget route. `id` cannot be changed. `type` cannot be changed except between `table-entities-explorer` and `board`. Use `null` to clear a property.","example":{"title":"Updated widget title"}}}}},"parameters":[{"schema":{"type":"string","minLength":1},"in":"path","name":"page_identifier","required":true},{"schema":{"type":"string","minLength":1},"in":"path","name":"widget_id","required":true}],"security":[{"bearer":[]}],"x-should-be-exposed-to-customers":true,"responses":{"200":{"description":"Updated successfully","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"enum":[true]},"identifier":{"type":"string"}},"additionalProperties":false,"required":["ok","identifier"],"description":"Updated successfully"}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}},"413":{"description":"Request body is too large (limit is 1MiB)","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false,"description":"Request body is too large (limit is 1MiB)"}}}},"422":{"description":"The json provided does not match the route's schema","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"The json provided does not match the route's schema"}}}}}},"delete":{"summary":"Delete a widget","tags":["Pages"],"description":"This route allows you to delete a specific widget in your portal. <br/><br/>To learn more about pages, checkout the [documentation](https://docs.port.io/interface-builder/port-interface/page/catalog-page).","parameters":[{"schema":{"type":"string","minLength":1},"in":"path","name":"page_identifier","required":true},{"schema":{"type":"string","minLength":1},"in":"path","name":"widget_id","required":true}],"security":[{"bearer":[]}],"x-should-be-exposed-to-customers":true,"responses":{"200":{"description":"Deleted successfully","content":{"application/json":{"schema":{"description":"Deleted successfully","type":"object","properties":{"ok":{"enum":[true]}},"additionalProperties":false,"required":["ok"]}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}},"413":{"description":"Request body is too large (limit is 1MiB)","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false,"description":"Request body is too large (limit is 1MiB)"}}}},"422":{"description":"The json provided does not match the route's schema","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"The json provided does not match the route's schema"}}}}}}},"/v1/organization":{"get":{"summary":"Get organization details","tags":["Organization"],"description":"This route allows you to fetch the details of your Port organization, such as its name, id, and hidden blueprints.","security":[{"bearer":[]}],"x-should-be-exposed-to-customers":true,"responses":{"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}}}},"put":{"summary":"Change organization details","tags":["Organization"],"description":"This route allows you to change the details of your Port organization, such as its name and hidden blueprints.","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"The name of the organization."},"settings":{"type":"object","properties":{"hiddenBlueprints":{"type":"array","items":{"type":"string"},"description":"An array of blueprint identifiers that should be hidden."},"federatedLogout":{"type":"boolean"},"portalIcon":{"type":["string","null"]},"portalTitle":{"type":"string","maxLength":30}}},"announcement":{"type":"object","required":["content"],"properties":{"enabled":{"type":"boolean"},"content":{"type":"string","maxLength":300,"minLength":1},"link":{"type":["string","null"],"maxLength":300},"color":{"type":"string","enum":["blue","red","green","yellow","orange","pink","purple","turquoise"]}}}},"additionalProperties":false,"required":["name"]}}},"required":true},"security":[{"bearer":["update:organization"]}],"x-should-be-exposed-to-customers":true,"responses":{"200":{"description":"Updated successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"enum":[true]}},"additionalProperties":false,"required":["ok"],"description":"Updated successfully."}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}},"413":{"description":"Request body is too large (limit is 1MiB)","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false,"description":"Request body is too large (limit is 1MiB)"}}}},"422":{"description":"The json provided does not match the route's schema","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"The json provided does not match the route's schema"}}}}}},"patch":{"summary":"Update organization details","tags":["Organization"],"description":"This route allows you to update the details of your Port organization, such as its name and hidden blueprints.","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"The name of the organization."},"settings":{"type":"object","properties":{"hiddenBlueprints":{"type":"array","items":{"type":"string"},"description":"An array of blueprint identifiers that should be hidden."},"federatedLogout":{"type":"boolean"},"portalIcon":{"type":["string","null"]},"portalTitle":{"type":"string","maxLength":30},"supportUserPermission":{"type":"string","enum":["OPT_OUT","OPT_IN"],"description":"Permission level for Port support users accessing this organization"},"supportUserTTL":{"type":"string","enum":["ONE_DAY","ONE_WEEK","ONE_MONTH","FOREVER"],"description":"Time-to-live for Port support user access"},"supportUserExpiresAt":{"type":"string","format":"date-time","description":"Expiration date for Port support user access"},"portAgentStreamerName":{"type":"string","enum":["KAFKA","POLLING"],"description":"Streamer name for Port agent (KAFKA or POLLING)."},"includeBlueprintsInGlobalSearchByDefault":{"type":"boolean","description":"The org-level default for whether blueprints are included in global search. Individual blueprints can override this via includeInGlobalSearch."},"forceNewLayout":{"type":"boolean","description":"Force the new layout for all users in the organization."},"disableClassicActions":{"type":"boolean","description":"Hide classic actions and automations from the UI in favor of workflows."},"hiddenGlobalSearchTabs":{"type":"array","items":{"type":"string","enum":["all","blueprint","page","action","workflow","entity","markdown"]},"description":"Global search tabs that should be hidden from the spotlight search UI. At least one content tab must remain visible; All cannot be the only visible tab."},"themeColor":{"type":"string","enum":["neutral","green","pink","blue","purple","orange"],"description":"The theme color applied to the UI for all users in the organization."}}},"isOnboarded":{"type":"boolean"},"toolSelectionProvisioning":{"type":"object","properties":{"status":{"type":"string","enum":["IN_PROGRESS","DONE"]}},"additionalProperties":false,"required":["status"]},"announcement":{"type":"object","properties":{"enabled":{"type":"boolean"},"content":{"type":"string","maxLength":300,"minLength":1},"link":{"type":["string","null"],"maxLength":300},"color":{"type":"string","enum":["blue","red","green","yellow","orange","pink","purple","turquoise"]}}}},"additionalProperties":false}}}},"security":[{"bearer":["update:organization"]}],"x-should-be-exposed-to-customers":true,"responses":{"200":{"description":"Updated successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"enum":[true]}},"additionalProperties":false,"required":["ok"],"description":"Updated successfully."}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}},"413":{"description":"Request body is too large (limit is 1MiB)","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false,"description":"Request body is too large (limit is 1MiB)"}}}},"422":{"description":"The json provided does not match the route's schema","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"The json provided does not match the route's schema"}}}}}}},"/v1/organization/secrets":{"get":{"summary":"Get all organization secrets' metadata","tags":["Organization"],"description":"This route allows you to retrieve metadata about all secrets in your organization. Note that this endpoint returns only the metadata of the secrets, not the secret content itself.<br/><br/>To learn more about secrets management in Port, check out the [documentation](https://docs.port.io/platform-administration/secrets-management/port-secrets).","security":[{"bearer":["read:secrets"]}],"x-should-be-exposed-to-customers":true,"responses":{"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}}}},"post":{"summary":"Create an organization secret","tags":["Organization"],"description":"This route allows you to create an organization secret.<br/><br/>To learn more about secrets management in Port, check out the [documentation](https://docs.port.io/platform-administration/secrets-management/port-secrets).","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"secretName":{"type":"string","maxLength":100,"minLength":1,"pattern":"^[A-Za-z0-9-_]*$","description":"The name of the new secret."},"secretValue":{"type":"string","description":"The value of the new secret."},"description":{"type":"string","maxLength":200,"description":"An optional description of the new secret."}},"additionalProperties":false,"required":["secretName","secretValue"]}}},"required":true},"security":[{"bearer":["create:secrets"]}],"x-should-be-exposed-to-customers":true,"responses":{"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}},"413":{"description":"Request body is too large (limit is 1MiB)","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false,"description":"Request body is too large (limit is 1MiB)"}}}},"422":{"description":"The json provided does not match the route's schema","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"The json provided does not match the route's schema"}}}}}}},"/v1/organization/secrets/{secret_name}":{"get":{"summary":"Get an organization secret's metadata","tags":["Organization"],"description":"This route allows you to retrieve metadata about a specific secret in your organization. Note that this endpoint returns only the metadata of the secret, not the secret content itself.<br/><br/>To learn more about secrets management in Port, check out the [documentation](https://docs.port.io/platform-administration/secrets-management/port-secrets).","parameters":[{"schema":{"type":"string"},"in":"path","name":"secret_name","required":true,"description":"The name of the secret you want to operate on."}],"security":[{"bearer":["read:secrets"]}],"x-should-be-exposed-to-customers":true,"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"secret":{"type":"object","properties":{"secretName":{"type":"string"},"description":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}}}},"required":["ok","secret"]}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}}}},"patch":{"summary":"Update an organization secret","tags":["Organization"],"description":"This route allows you to update an organization secret.<br/><br/>To learn more about secrets management, check out the [documentation](https://docs.port.io/platform-administration/secrets-management/port-secrets).","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"secretValue":{"type":"string","description":"The new value of the secret."},"description":{"type":"string","maxLength":200,"description":"The new description of the secret."}},"additionalProperties":false,"required":[]}}}},"parameters":[{"schema":{"type":"string"},"in":"path","name":"secret_name","required":true,"description":"The name of the secret you want to operate on."}],"security":[{"bearer":["update:secrets"]}],"x-should-be-exposed-to-customers":true,"responses":{"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}},"413":{"description":"Request body is too large (limit is 1MiB)","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false,"description":"Request body is too large (limit is 1MiB)"}}}},"422":{"description":"The json provided does not match the route's schema","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"The json provided does not match the route's schema"}}}}}},"delete":{"summary":"Delete an organization secret","tags":["Organization"],"description":"This route allows you to delete an organization secret.<br/><br/>To learn more about secrets management in Port, check out the [documentation](https://docs.port.io/platform-administration/secrets-management/port-secrets).","parameters":[{"schema":{"type":"string"},"in":"path","name":"secret_name","required":true,"description":"The name of the secret you want to operate on."}],"security":[{"bearer":["delete:secrets"]}],"x-should-be-exposed-to-customers":true,"responses":{"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}},"413":{"description":"Request body is too large (limit is 1MiB)","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false,"description":"Request body is too large (limit is 1MiB)"}}}},"422":{"description":"The json provided does not match the route's schema","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"The json provided does not match the route's schema"}}}}}}},"/v1/integration/metadata":{"get":{"summary":"Get all integrations meta-data (member view)","tags":["Integrations"],"description":"This route allows members to fetch meta-data on all integrations in their Port organization.<br></br>The response includes each integration's identifier, installation ID, integration type, and last update timestamp.","security":[{"bearer":["read:integrations:basic"]}],"x-should-be-exposed-to-customers":true,"responses":{"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}}}}},"/v1/integration":{"get":{"summary":"Get all integrations","tags":["Integrations"],"description":"This route allows you to fetch all integrations in your Port organization.<br/>To learn more about integrations, check out the [documentation](https://docs.port.io/context-lake/ingestion/ingest-data-into-port/native-integrations/overview).<br/><br/>**Permission requirements**<br/>To use this endpoint, you must have a `moderator` or `admin` role in your Port organization.<br/>To learn more about the different roles and permissions, please refer to the [documentation](https://docs.port.io/platform-administration/users-and-teams/manage-users-teams/#roles--permissions).","parameters":[{"schema":{"type":"boolean"},"in":"query","name":"actionsProcessingEnabled","required":false,"description":"filter by integrations that has actions processing enabled"}],"security":[{"bearer":["read:integrations"]}],"x-should-be-exposed-to-customers":true,"responses":{"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}}}},"post":{"summary":"Create an integration","tags":["Integrations"],"description":"This route allows you to create an integration in your Port organization.<br/><br/>To learn more about integrations, check out the [documentation](https://docs.port.io/context-lake/ingestion/ingest-data-into-port/native-integrations/overview).<br/><br/>Port-hosted integrations return `202 Accepted` because the integration is not fully up until it is applied.<br/><br/>For self-hosted integrations, this endpoint only registers the integration resource in Port and returns `201 Created`. It does not deploy or run the integration application; you must deploy it separately for the integration to ingest data.","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"installationId":{"type":"string","minLength":1,"maxLength":53,"description":"A unique identifier which will be used to identify the integration when using the Port API. Must match the pattern ^[a-z0-9-_]+$.","pattern":"^[a-z0-9-_]+$"},"title":{"type":"string","nullable":true,"description":"The title of the integration. This will be displayed in the [connectors page](https://app.port.io/settings/data-sources) of your Port account."},"installationType":{"type":"string","enum":["OnPrem","Saas","SaasOAuth2","CustomGithubApp","EnterpriseGithubApp"],"default":"OnPrem"},"installationAppType":{"type":"string","description":"The name of the integrated tool/platform (e.g. `kubernetes`,`pagerduty`)."},"version":{"type":"string","description":"The version of the integration."},"pinnedVersion":{"type":"string","description":"The pinned version of the integration. If provided, the integration will be pinned to this specific version in the Kubernetes manifest."},"spec":{"type":"object","properties":{"appSpec":{"type":"object","additionalProperties":true},"integrationSpec":{"type":"object","additionalProperties":true}},"additionalProperties":false},"actionsProcessingEnabled":{"type":"boolean","description":"If `true`, This integration will be able to process actions runs"},"incrementalSyncEnabled":{"type":"boolean","description":"If `true`, This integration will run incremental syncs on a schedule"},"processingMode":{"type":"string","enum":["ocean-core","dsp"],"description":"The processing mode for the integration. `ocean_core` uses Ocean core processing, `dsp` uses the data source processor."},"createPortResourcesOrigin":{"type":"string","enum":["Empty","Port","Ocean","Default"],"description":"Specifies where the Port's resources creation originates from"},"config":{"type":["object","null"],"additionalProperties":true,"description":"Various configuration options for the integration.","properties":{"deleteDependentEntities":{"type":"boolean","description":"If `true`, deleting an entity will also delete its dependent entities."},"createMissingRelatedEntities":{"type":"boolean","description":"If `true`, creating an entity with a relation to a non-existing entity will also create the related entity."},"resources":{"type":"array","description":"The mapping definition of resources from the integrated tool/platform into Port. For more information and examples, check out the [documentation](https://docs.port.io/context-lake/ingestion/configure-mapping/overview).","items":{"type":"object","required":["kind","selector","port"],"properties":{"kind":{"type":"string","description":"The kind of resource to map, as defined in API of the integrated tool/platorm."},"selector":{"type":"object","properties":{"query":{"type":"string","description":"A `jq` query used to specify which resources to fetch from the integrated tool/platform. If set to `\"true\"`, all resources of the specified `kind` will be ingested. For more information and examples, check out the [documentation](https://docs.port.io/context-lake/ingestion/configure-mapping/overview#how-does-mapping-work)."}}},"port":{"type":"object","required":["entity"],"description":"An object containing the mapping definitions of the `kind` resource into Port.","properties":{"entity":{"type":"object","required":["mappings"],"properties":{"mappings":{"description":"The mapping definitions used to map the resource fields into Port entities. For more information and examples, check out the [documentation](https://docs.port.io/context-lake/ingestion/configure-mapping/overview#mapping-concepts).","oneOf":[{"type":"array","title":"array","items":{"type":"object","required":["identifier","blueprint"],"properties":{"identifier":{"oneOf":[{"type":"string","title":"String identifier","description":"A `jq` expression used to get data from the integrated tool's API, to be used as an identifier for the entity."},{"type":"object","properties":{"combinator":{"type":"string"},"rules":{"type":"array","items":{"type":"object","additionalProperties":true}}},"additionalProperties":false,"required":["combinator","rules"],"title":"Search query identifier","description":"A search query to define the entity's identifier based on a property of the entity.<br/>Read more [here](https://docs.port.io/context-lake/ingestion/configure-mapping/overview#map-by-property)."}]},"title":{"type":"string","description":"A `jq` expression used to get data from the integrated tool's API, to be used as the title of the entity."},"icon":{"type":"string","description":"A `jq` expression used to get data from the integrated tool's API, to be used as the icon of the entity."},"team":{"oneOf":[{"type":"string","description":"A `jq` expression used to get data from the integrated tool's API, to be used as the team of the entity."},{"type":"object","properties":{"combinator":{"type":"string"},"rules":{"type":"array","items":{"type":"object","additionalProperties":true}}},"additionalProperties":false,"required":["combinator","rules"],"title":"Search query team"}]},"blueprint":{"type":"string","description":"The identifier of the blueprint to map the data into."},"properties":{"type":"object","additionalProperties":true,"description":"An object containing the properties of the entity and their values. For more information and examples, check out the [documentation](https://docs.port.io/context-lake/ingestion/configure-mapping/overview#mapping-concepts)."},"relations":{"type":"object","additionalProperties":true,"description":"An object containing the relations of the entity and their values. For more information and examples, check out the [documentation](https://docs.port.io/context-lake/ingestion/configure-mapping/overview#mapping-concepts)."}}}},{"type":"object","required":["identifier","blueprint"],"properties":{"identifier":{"oneOf":[{"type":"string","title":"String identifier","description":"A `jq` expression used to get data from the integrated tool's API, to be used as an identifier for the entity."},{"type":"object","properties":{"combinator":{"type":"string"},"rules":{"type":"array","items":{"type":"object","additionalProperties":true}}},"additionalProperties":false,"required":["combinator","rules"],"title":"Search query identifier","description":"A search query to define the entity's identifier based on a property of the entity.<br/>Read more [here](https://docs.port.io/context-lake/ingestion/configure-mapping/overview#map-by-property)."}]},"title":{"type":"string","description":"A `jq` expression used to get data from the integrated tool's API, to be used as the title of the entity."},"icon":{"type":"string","description":"A `jq` expression used to get data from the integrated tool's API, to be used as the icon of the entity."},"team":{"oneOf":[{"type":"string","description":"A `jq` expression used to get data from the integrated tool's API, to be used as the team of the entity."},{"type":"object","properties":{"combinator":{"type":"string"},"rules":{"type":"array","items":{"type":"object","additionalProperties":true}}},"additionalProperties":false,"required":["combinator","rules"],"title":"Search query team"}]},"blueprint":{"type":"string","description":"The identifier of the blueprint to map the data into."},"properties":{"type":"object","additionalProperties":true,"description":"An object containing the properties of the entity and their values. For more information and examples, check out the [documentation](https://docs.port.io/context-lake/ingestion/configure-mapping/overview#mapping-concepts)."},"relations":{"type":"object","additionalProperties":true,"description":"An object containing the relations of the entity and their values. For more information and examples, check out the [documentation](https://docs.port.io/context-lake/ingestion/configure-mapping/overview#mapping-concepts)."}},"title":"object"}]}}}}}}}}}},"oauthBrokerUrl":{"type":"string","format":"uri","description":"The base URL of the OAuth broker hosted by this integration. Port uses this URL to build the re-authentication link sent to users when the integration requires a new token."},"changelogDestination":{"type":"object","description":"The destination of the integration's changelog.","properties":{"type":{"type":"string","enum":["WEBHOOK","KAFKA"]}},"oneOf":[{"type":"object","properties":{},"additionalProperties":false},{"type":"object","title":"Kafka","description":"The changelog will be sent to the Kafka topic connected to your Port account.","properties":{"type":{"type":"string","enum":["KAFKA"]}},"required":["type"],"additionalProperties":false},{"type":"object","title":"Webhook","description":"The changelog will be sent to the specified webhook.","properties":{"type":{"type":"string","enum":["WEBHOOK"]},"agent":{"type":"boolean","description":"If `true`, Port's execution agent will be used to send the changelog."},"url":{"type":"string","format":"uri","description":"The URL of the webhook."}},"required":["url","type"],"additionalProperties":false}]}},"additionalProperties":false,"required":["installationId"],"if":{"properties":{"installationType":{"enum":["Saas","SaasOAuth2"]}},"required":["installationType"]},"then":{"properties":{"installationId":{"type":"string","minLength":1,"maxLength":20,"pattern":"^[a-z][a-z0-9-]*[a-z0-9]$"}}}}}},"required":true},"parameters":[{"schema":{"type":"boolean","default":false},"in":"query","name":"upsert","required":false,"description":"If `true`, the integration will be updated if it already exists."},{"schema":{"type":"array","items":{"type":"string","enum":["create_resources"]},"default":[]},"in":"query","name":"integration_modes","required":false}],"security":[{"bearer":["create:integrations"]}],"x-should-be-exposed-to-customers":true,"responses":{"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}},"413":{"description":"Request body is too large (limit is 1MiB)","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false,"description":"Request body is too large (limit is 1MiB)"}}}},"422":{"description":"The json provided does not match the route's schema","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"The json provided does not match the route's schema"}}}}}}},"/v1/integration/{identifier}":{"get":{"summary":"Get an integration","tags":["Integrations"],"description":"This route allows you to fetch a specific integration in your Port organization.<br/>To learn more about integrations, check out the [documentation](https://docs.port.io/context-lake/ingestion/ingest-data-into-port/native-integrations/overview).<br/><br/>**Permission requirements**<br/>To use this endpoint, you must have a `moderator` or `admin` role in your Port organization.<br/>To learn more about the different roles and permissions, please refer to the [documentation](https://docs.port.io/platform-administration/users-and-teams/manage-users-teams/#roles--permissions).","parameters":[{"schema":{"type":"string","default":"installationId","enum":["installationId","logIngestId"]},"in":"query","name":"byField","required":false,"description":"The field used to identify the integration. When set to `logIngestId`, the `identifier` parameter should be changed accordingly."},{"schema":{"type":"boolean"},"in":"query","name":"isPolling","required":false,"description":"Whether to return the integration in polling mode."},{"schema":{"type":"string"},"in":"query","name":"oceanCoreVersion","required":false,"description":"The version of the core to use."},{"schema":{"type":"string"},"in":"path","name":"identifier","required":true,"description":"The unique identifier of the resource you want to operate on."}],"security":[{"bearer":["read:integrations"]}],"x-should-be-exposed-to-customers":true,"responses":{"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}}}},"patch":{"summary":"Update an integration","tags":["Integrations"],"description":"This route allows you to modify an integration in your Port organization.<br/><br/>To learn more about integrations, check out the [documentation](https://docs.port.io/context-lake/ingestion/ingest-data-into-port/native-integrations/overview).<br/><br/>**Permission requirements**<br/>To use this endpoint, you must have an `admin` role in your Port organization.<br/>**Note:** The `moderator` role does not include the required `update:integrations` scope. Requests without this scope return `403 Forbidden`.<br/>To learn more about the different roles and permissions, please refer to the [documentation](https://docs.port.io/platform-administration/users-and-teams/manage-users-teams/#roles--permissions).<br/><br/>**Note:** To trigger a resync of an integration without changing its mapping, simply provide its identifier and leave the body empty.<br/><br/>Port-hosted spec updates return `202 Accepted` while the change is applied. Other updates return `200`.","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"type":"string","nullable":true,"description":"The title of the integration. This will be displayed in the [connectors page](https://app.port.io/settings/data-sources) of your Port account."},"installationAppType":{"type":"string","description":"The name of the integrated tool/platform (e.g. `kubernetes`,`pagerduty`)."},"version":{"type":"string","description":"The version of the integration."},"pinnedVersion":{"type":["string","null"],"description":"The pinned version of the integration. Set to `null` to remove the pin and run the latest version."},"spec":{"type":"object","properties":{"appSpec":{"type":"object","additionalProperties":true},"integrationSpec":{"type":"object","additionalProperties":true}},"additionalProperties":false},"actionsProcessingEnabled":{"type":"boolean","description":"If `true`, This integration will be able to process actions runs"},"incrementalSyncEnabled":{"type":"boolean","description":"If `true`, This integration will run incremental syncs on a schedule"},"processingMode":{"type":"string","enum":["ocean-core","dsp"],"description":"The processing mode for the integration. `ocean_core` uses Ocean core processing, `dsp` uses the data source processor."},"config":{"type":["object","null"],"additionalProperties":true,"description":"Various configuration options for the integration.","properties":{"deleteDependentEntities":{"type":"boolean","description":"If `true`, deleting an entity will also delete its dependent entities."},"createMissingRelatedEntities":{"type":"boolean","description":"If `true`, creating an entity with a relation to a non-existing entity will also create the related entity."},"resources":{"type":"array","description":"The mapping definition of resources from the integrated tool/platform into Port. For more information and examples, check out the [documentation](https://docs.port.io/context-lake/ingestion/configure-mapping/overview).","items":{"type":"object","required":["kind","selector","port"],"properties":{"kind":{"type":"string","description":"The kind of resource to map, as defined in API of the integrated tool/platorm."},"selector":{"type":"object","properties":{"query":{"type":"string","description":"A `jq` query used to specify which resources to fetch from the integrated tool/platform. If set to `\"true\"`, all resources of the specified `kind` will be ingested. For more information and examples, check out the [documentation](https://docs.port.io/context-lake/ingestion/configure-mapping/overview#how-does-mapping-work)."}}},"port":{"type":"object","required":["entity"],"description":"An object containing the mapping definitions of the `kind` resource into Port.","properties":{"entity":{"type":"object","required":["mappings"],"properties":{"mappings":{"description":"The mapping definitions used to map the resource fields into Port entities. For more information and examples, check out the [documentation](https://docs.port.io/context-lake/ingestion/configure-mapping/overview#mapping-concepts).","oneOf":[{"type":"array","title":"array","items":{"type":"object","required":["identifier","blueprint"],"properties":{"identifier":{"oneOf":[{"type":"string","title":"String identifier","description":"A `jq` expression used to get data from the integrated tool's API, to be used as an identifier for the entity."},{"type":"object","properties":{"combinator":{"type":"string"},"rules":{"type":"array","items":{"type":"object","additionalProperties":true}}},"additionalProperties":false,"required":["combinator","rules"],"title":"Search query identifier","description":"A search query to define the entity's identifier based on a property of the entity.<br/>Read more [here](https://docs.port.io/context-lake/ingestion/configure-mapping/overview#map-by-property)."}]},"title":{"type":"string","description":"A `jq` expression used to get data from the integrated tool's API, to be used as the title of the entity."},"icon":{"type":"string","description":"A `jq` expression used to get data from the integrated tool's API, to be used as the icon of the entity."},"team":{"oneOf":[{"type":"string","description":"A `jq` expression used to get data from the integrated tool's API, to be used as the team of the entity."},{"type":"object","properties":{"combinator":{"type":"string"},"rules":{"type":"array","items":{"type":"object","additionalProperties":true}}},"additionalProperties":false,"required":["combinator","rules"],"title":"Search query team"}]},"blueprint":{"type":"string","description":"The identifier of the blueprint to map the data into."},"properties":{"type":"object","additionalProperties":true,"description":"An object containing the properties of the entity and their values. For more information and examples, check out the [documentation](https://docs.port.io/context-lake/ingestion/configure-mapping/overview#mapping-concepts)."},"relations":{"type":"object","additionalProperties":true,"description":"An object containing the relations of the entity and their values. For more information and examples, check out the [documentation](https://docs.port.io/context-lake/ingestion/configure-mapping/overview#mapping-concepts)."}}}},{"type":"object","required":["identifier","blueprint"],"properties":{"identifier":{"oneOf":[{"type":"string","title":"String identifier","description":"A `jq` expression used to get data from the integrated tool's API, to be used as an identifier for the entity."},{"type":"object","properties":{"combinator":{"type":"string"},"rules":{"type":"array","items":{"type":"object","additionalProperties":true}}},"additionalProperties":false,"required":["combinator","rules"],"title":"Search query identifier","description":"A search query to define the entity's identifier based on a property of the entity.<br/>Read more [here](https://docs.port.io/context-lake/ingestion/configure-mapping/overview#map-by-property)."}]},"title":{"type":"string","description":"A `jq` expression used to get data from the integrated tool's API, to be used as the title of the entity."},"icon":{"type":"string","description":"A `jq` expression used to get data from the integrated tool's API, to be used as the icon of the entity."},"team":{"oneOf":[{"type":"string","description":"A `jq` expression used to get data from the integrated tool's API, to be used as the team of the entity."},{"type":"object","properties":{"combinator":{"type":"string"},"rules":{"type":"array","items":{"type":"object","additionalProperties":true}}},"additionalProperties":false,"required":["combinator","rules"],"title":"Search query team"}]},"blueprint":{"type":"string","description":"The identifier of the blueprint to map the data into."},"properties":{"type":"object","additionalProperties":true,"description":"An object containing the properties of the entity and their values. For more information and examples, check out the [documentation](https://docs.port.io/context-lake/ingestion/configure-mapping/overview#mapping-concepts)."},"relations":{"type":"object","additionalProperties":true,"description":"An object containing the relations of the entity and their values. For more information and examples, check out the [documentation](https://docs.port.io/context-lake/ingestion/configure-mapping/overview#mapping-concepts)."}},"title":"object"}]}}}}}}}}}},"oauthBrokerUrl":{"type":"string","format":"uri","description":"The base URL of the OAuth broker hosted by this integration. Port uses this URL to build the re-authentication link sent to users when the integration requires a new token."},"changelogDestination":{"type":"object","description":"The destination of the integration's changelog.","properties":{"type":{"type":"string","enum":["WEBHOOK","KAFKA"]}},"oneOf":[{"type":"object","properties":{},"additionalProperties":false},{"type":"object","title":"Kafka","description":"The changelog will be sent to the Kafka topic connected to your Port account.","properties":{"type":{"type":"string","enum":["KAFKA"]}},"required":["type"],"additionalProperties":false},{"type":"object","title":"Webhook","description":"The changelog will be sent to the specified webhook.","properties":{"type":{"type":"string","enum":["WEBHOOK"]},"agent":{"type":"boolean","description":"If `true`, Port's execution agent will be used to send the changelog."},"url":{"type":"string","format":"uri","description":"The URL of the webhook."}},"required":["url","type"],"additionalProperties":false}]},"arePortResourcesInitialized":{"type":"boolean","description":"Whether the Port resources are initialized for the integration."}},"additionalProperties":true}}}},"parameters":[{"schema":{"type":"string"},"in":"path","name":"identifier","required":true,"description":"The unique identifier of the resource you want to operate on."}],"security":[{"bearer":["update:integrations"]}],"x-should-be-exposed-to-customers":true,"responses":{"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}},"413":{"description":"Request body is too large (limit is 1MiB)","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false,"description":"Request body is too large (limit is 1MiB)"}}}},"422":{"description":"The json provided does not match the route's schema","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"The json provided does not match the route's schema"}}}}}},"delete":{"summary":"Delete an integration","tags":["Integrations"],"description":"This route allows you to delete an integration in your Port organization.<br/><br/>To learn more about integrations, check out the [documentation](https://docs.port.io/context-lake/ingestion/ingest-data-into-port/native-integrations/overview).<br/><br/>Port-hosted deletions return `202 Accepted` while the integration is removed. Self-hosted deletions return `200`.","parameters":[{"schema":{"type":"string"},"in":"path","name":"identifier","required":true,"description":"The unique identifier of the resource you want to operate on."}],"security":[{"bearer":["delete:integrations"]}],"x-should-be-exposed-to-customers":true,"responses":{"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}},"413":{"description":"Request body is too large (limit is 1MiB)","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false,"description":"Request body is too large (limit is 1MiB)"}}}},"422":{"description":"The json provided does not match the route's schema","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"The json provided does not match the route's schema"}}}}}}},"/v1/integration/{identifier}/config":{"patch":{"summary":"Update an integration's config","tags":["Integrations"],"description":"This route allows you to modify an integration's configuration in your Port organization.<br/><br/>To learn more about integrations, check out the [documentation](https://docs.port.io/context-lake/ingestion/ingest-data-into-port/native-integrations/overview).<br/><br/>**Permission requirements**<br/>To use this endpoint, you must have an `admin` role in your Port organization.<br/>**Note:** The `moderator` role does not include the required `update:integrations` scope. Requests without this scope return `403 Forbidden`.<br/>To learn more about the different roles and permissions, please refer to the [documentation](https://docs.port.io/platform-administration/users-and-teams/manage-users-teams/#roles--permissions).","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"config":{"type":["object","null"],"additionalProperties":true,"description":"Various configuration options for the integration.","properties":{"deleteDependentEntities":{"type":"boolean","description":"If `true`, deleting an entity will also delete its dependent entities."},"createMissingRelatedEntities":{"type":"boolean","description":"If `true`, creating an entity with a relation to a non-existing entity will also create the related entity."},"resources":{"type":"array","description":"The mapping definition of resources from the integrated tool/platform into Port. For more information and examples, check out the [documentation](https://docs.port.io/context-lake/ingestion/configure-mapping/overview).","items":{"type":"object","required":["kind","selector","port"],"properties":{"kind":{"type":"string","description":"The kind of resource to map, as defined in API of the integrated tool/platorm."},"selector":{"type":"object","properties":{"query":{"type":"string","description":"A `jq` query used to specify which resources to fetch from the integrated tool/platform. If set to `\"true\"`, all resources of the specified `kind` will be ingested. For more information and examples, check out the [documentation](https://docs.port.io/context-lake/ingestion/configure-mapping/overview#how-does-mapping-work)."}}},"port":{"type":"object","required":["entity"],"description":"An object containing the mapping definitions of the `kind` resource into Port.","properties":{"entity":{"type":"object","required":["mappings"],"properties":{"mappings":{"description":"The mapping definitions used to map the resource fields into Port entities. For more information and examples, check out the [documentation](https://docs.port.io/context-lake/ingestion/configure-mapping/overview#mapping-concepts).","oneOf":[{"type":"array","title":"array","items":{"type":"object","required":["identifier","blueprint"],"properties":{"identifier":{"oneOf":[{"type":"string","title":"String identifier","description":"A `jq` expression used to get data from the integrated tool's API, to be used as an identifier for the entity."},{"type":"object","properties":{"combinator":{"type":"string"},"rules":{"type":"array","items":{"type":"object","additionalProperties":true}}},"additionalProperties":false,"required":["combinator","rules"],"title":"Search query identifier","description":"A search query to define the entity's identifier based on a property of the entity.<br/>Read more [here](https://docs.port.io/context-lake/ingestion/configure-mapping/overview#map-by-property)."}]},"title":{"type":"string","description":"A `jq` expression used to get data from the integrated tool's API, to be used as the title of the entity."},"icon":{"type":"string","description":"A `jq` expression used to get data from the integrated tool's API, to be used as the icon of the entity."},"team":{"oneOf":[{"type":"string","description":"A `jq` expression used to get data from the integrated tool's API, to be used as the team of the entity."},{"type":"object","properties":{"combinator":{"type":"string"},"rules":{"type":"array","items":{"type":"object","additionalProperties":true}}},"additionalProperties":false,"required":["combinator","rules"],"title":"Search query team"}]},"blueprint":{"type":"string","description":"The identifier of the blueprint to map the data into."},"properties":{"type":"object","additionalProperties":true,"description":"An object containing the properties of the entity and their values. For more information and examples, check out the [documentation](https://docs.port.io/context-lake/ingestion/configure-mapping/overview#mapping-concepts)."},"relations":{"type":"object","additionalProperties":true,"description":"An object containing the relations of the entity and their values. For more information and examples, check out the [documentation](https://docs.port.io/context-lake/ingestion/configure-mapping/overview#mapping-concepts)."}}}},{"type":"object","required":["identifier","blueprint"],"properties":{"identifier":{"oneOf":[{"type":"string","title":"String identifier","description":"A `jq` expression used to get data from the integrated tool's API, to be used as an identifier for the entity."},{"type":"object","properties":{"combinator":{"type":"string"},"rules":{"type":"array","items":{"type":"object","additionalProperties":true}}},"additionalProperties":false,"required":["combinator","rules"],"title":"Search query identifier","description":"A search query to define the entity's identifier based on a property of the entity.<br/>Read more [here](https://docs.port.io/context-lake/ingestion/configure-mapping/overview#map-by-property)."}]},"title":{"type":"string","description":"A `jq` expression used to get data from the integrated tool's API, to be used as the title of the entity."},"icon":{"type":"string","description":"A `jq` expression used to get data from the integrated tool's API, to be used as the icon of the entity."},"team":{"oneOf":[{"type":"string","description":"A `jq` expression used to get data from the integrated tool's API, to be used as the team of the entity."},{"type":"object","properties":{"combinator":{"type":"string"},"rules":{"type":"array","items":{"type":"object","additionalProperties":true}}},"additionalProperties":false,"required":["combinator","rules"],"title":"Search query team"}]},"blueprint":{"type":"string","description":"The identifier of the blueprint to map the data into."},"properties":{"type":"object","additionalProperties":true,"description":"An object containing the properties of the entity and their values. For more information and examples, check out the [documentation](https://docs.port.io/context-lake/ingestion/configure-mapping/overview#mapping-concepts)."},"relations":{"type":"object","additionalProperties":true,"description":"An object containing the relations of the entity and their values. For more information and examples, check out the [documentation](https://docs.port.io/context-lake/ingestion/configure-mapping/overview#mapping-concepts)."}},"title":"object"}]}}}}}}}}}},"arePortResourcesInitialized":{"type":"boolean","description":"Whether the Port resources are initialized for the integration."}},"additionalProperties":false,"required":["config"]}}},"required":true},"parameters":[{"schema":{"type":"string"},"in":"path","name":"identifier","required":true,"description":"The unique identifier of the resource you want to operate on."}],"security":[{"bearer":["update:integrations"]}],"x-should-be-exposed-to-customers":true,"responses":{"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}},"413":{"description":"Request body is too large (limit is 1MiB)","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false,"description":"Request body is too large (limit is 1MiB)"}}}},"422":{"description":"The json provided does not match the route's schema","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"The json provided does not match the route's schema"}}}}}}},"/v1/webhooks":{"post":{"summary":"Create a webhook","tags":["Webhook"],"description":"This route allows you to create a webhook in your Port organization. You can also create it via the [connectors page](https://app.port.io/settings/data-sources) of your Port account.<br/><br/>To learn more about webhooks, check out the [documentation](https://docs.port.io/context-lake/ingestion/ingest-data-into-port/webhook/ingest-via-webhooks-overview).","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"identifier":{"type":"string","maxLength":30,"description":"The identifier of the webhook."},"title":{"type":"string","maxLength":30,"description":"The title of the webhook, which will be displayed in the [connectors page](https://app.port.io/settings/data-sources) of your Port account."},"description":{"type":"string","maxLength":200,"description":"A description for the webhook."},"icon":{"type":"string","description":"The icon of the webhook."},"mappings":{"type":"array","items":{"type":"object","properties":{"operation":{"oneOf":[{"title":"Advanced create","description":"If the operation is `create`, the [entity JSON](https://docs.port.io/context-lake/ingestion/ingest-data-into-port/native-integrations/overview/#json-structure) properties must be provided. For example:\n```json\n{\n  \"operation\": \"create\",\n  \"blueprint\": \"blueprint_identifier\",\n  \"filter\": \"true\",\n  \"itemsToParse\": \"true\",\n  \"entity\": {\n      \"identifier\": \"new-webhook\",\n      \"title\": \"MyNewWebhook\",\n      \"icon\": \"webhook\",\n      \"team\": [],\n      \"properties\": {\n        \"content\": \"my content\"\n      },\n      \"relations\": {}\n  }\n}\n```","enum":["create"]},{"type":"object","title":"Create","properties":{"type":{"enum":["create"]}},"required":["type"],"additionalProperties":false},{"title":"Delete","description":"If the selected operation is `delete`, a blueprint identifier, and entity identifier must be provided, for example:\n```json\n{\n  \"operation\": \"delete\",\n  \"filter\": \"true\",\n  \"itemsToParse\": \"true\",\n  \"blueprint\": \"blueprint_identifier\",\n  \"entity\": {\n    \"identifier\": \"entity_identifier\"\n  }\n}\n```","enum":["delete"]},{"type":"object","title":"Advanced delete","properties":{"type":{"enum":["delete"]},"deleteDependents":{"type":"boolean"}},"required":["type"],"additionalProperties":false}],"description":"If the selected operation is `delete`, a blueprint identifier, and entity identifier must be provided. If the operation is `create`, the [entity JSON](https://docs.port.io/context-lake/ingestion/ingest-data-into-port/native-integrations/overview/#json-structure) properties must be provided."}},"if":{"properties":{"operation":{"oneOf":[{"title":"Delete","description":"If the selected operation is `delete`, a blueprint identifier, and entity identifier must be provided, for example:\n```json\n{\n  \"operation\": \"delete\",\n  \"filter\": \"true\",\n  \"itemsToParse\": \"true\",\n  \"blueprint\": \"blueprint_identifier\",\n  \"entity\": {\n    \"identifier\": \"entity_identifier\"\n  }\n}\n```","enum":["delete"]},{"type":"object","title":"Advanced delete","properties":{"type":{"enum":["delete"]},"deleteDependents":{"type":"boolean"}},"required":["type"],"additionalProperties":false}]}},"required":["operation"]},"then":{"properties":{"operation":{"oneOf":[{"title":"Delete","description":"If the selected operation is `delete`, a blueprint identifier, and entity identifier must be provided, for example:\n```json\n{\n  \"operation\": \"delete\",\n  \"filter\": \"true\",\n  \"itemsToParse\": \"true\",\n  \"blueprint\": \"blueprint_identifier\",\n  \"entity\": {\n    \"identifier\": \"entity_identifier\"\n  }\n}\n```","enum":["delete"]},{"type":"object","title":"Advanced delete","properties":{"type":{"enum":["delete"]},"deleteDependents":{"type":"boolean"}},"required":["type"],"additionalProperties":false}]},"blueprint":{"type":"string","description":"The identifier of the blueprint to map the data into."},"filter":{"type":"string","description":"A `jq` query used to filter exactly which payloads sent to the webhook are processed. If set to `\"true\"`, all payloads will be processed."},"itemsToParse":{"type":"string","description":"A `jq` query that evaluates to an array of items, used to create multiple entities from a single webhook event."},"entity":{"type":"object","properties":{"identifier":{"type":"string"}},"additionalProperties":false,"required":["identifier"]}},"required":["blueprint","entity"],"additionalProperties":true},"else":{"properties":{"operation":{"oneOf":[{"title":"Advanced create","description":"If the operation is `create`, the [entity JSON](https://docs.port.io/context-lake/ingestion/ingest-data-into-port/native-integrations/overview/#json-structure) properties must be provided. For example:\n```json\n{\n  \"operation\": \"create\",\n  \"blueprint\": \"blueprint_identifier\",\n  \"filter\": \"true\",\n  \"itemsToParse\": \"true\",\n  \"entity\": {\n      \"identifier\": \"new-webhook\",\n      \"title\": \"MyNewWebhook\",\n      \"icon\": \"webhook\",\n      \"team\": [],\n      \"properties\": {\n        \"content\": \"my content\"\n      },\n      \"relations\": {}\n  }\n}\n```","enum":["create"]},{"type":"object","title":"Create","properties":{"type":{"enum":["create"]}},"required":["type"],"additionalProperties":false}]},"blueprint":{"type":"string","description":"The identifier of the blueprint to map the data into."},"filter":{"type":"string","description":"A `jq` query used to filter exactly which payloads sent to the webhook are processed. If set to `\"true\"`, all payloads will be processed."},"itemsToParse":{"type":"string","description":"A `jq` query that evaluates to an array of items, used to create multiple entities from a single webhook event."},"entity":{"type":"object","description":"An object defining how to map the data from the webhook payload into Port entities.","properties":{"identifier":{"oneOf":[{"type":"string","description":"A `jq` expression used to get data from the webhook payload, to be used as an identifier for the entity."},{"type":"object","properties":{"combinator":{"type":"string"},"rules":{"type":"array","items":{"type":"object","additionalProperties":true}}},"additionalProperties":false,"required":["combinator","rules"]}]},"title":{"type":"string","description":"A `jq` expression used to get data from the webhook payload, to be used as the title of the entity."},"icon":{"type":"string","description":"The icon of the entity."},"team":{"oneOf":[{"type":"string"},{"type":"object","properties":{"combinator":{"type":"string"},"rules":{"type":"array","items":{"type":"object","additionalProperties":true}}},"additionalProperties":false,"required":["combinator","rules"]}]},"properties":{"type":"object","description":"An object containing the properties of the entity and their values. For more information and examples, check out the [documentation](https://docs.port.io/context-lake/ingestion/ingest-data-into-port/webhook/ingest-via-webhooks-overview).","propertyNames":{"type":"string"}},"relations":{"type":"object","description":"An object containing the relations of the entity and their values. For more information and examples, check out the [documentation](https://docs.port.io/context-lake/ingestion/ingest-data-into-port/webhook/ingest-via-webhooks-overview).","propertyNames":{"type":"string"}}},"additionalProperties":false,"required":["identifier"]}},"required":["blueprint","entity"],"additionalProperties":false}},"description":"The mapping definitions used to map the data from the webhook into Port entities. For more information and examples, check out the [documentation](https://docs.port.io/context-lake/ingestion/ingest-data-into-port/webhook/ingest-via-webhooks-overview)."},"enabled":{"type":"boolean","default":true,"description":"Determines whether the webhook is active or not. If `false`, any incoming events will be dropped."},"security":{"type":"object","properties":{"secret":{"type":"string","nullable":true},"signatureHeaderName":{"type":"string","nullable":true},"signatureAlgorithm":{"anyOf":[{"type":"string","enum":["sha1","sha256","plain"]},{"type":"null"}]},"signaturePrefix":{"type":"string","nullable":true},"requestIdentifierPath":{"type":"string","nullable":true}},"additionalProperties":false,"description":"The security configuration of the webhook, used to tell Port how to verify the hashed signature sent with incoming requests.<br/>For more information and examples, check out the [documentation](https://docs.port.io/context-lake/ingestion/ingest-data-into-port/webhook/ingest-via-webhooks-overview#security-configuration)."},"integrationType":{"type":"string","enum":["custom","template"]}},"additionalProperties":false,"required":["title","enabled"]}}},"required":true},"security":[{"bearer":["create:integrations"]}],"x-should-be-exposed-to-customers":true,"responses":{"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}},"413":{"description":"Request body is too large (limit is 1MiB)","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false,"description":"Request body is too large (limit is 1MiB)"}}}},"422":{"description":"The json provided does not match the route's schema","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"The json provided does not match the route's schema"}}}}}},"get":{"summary":"Get all webhooks","tags":["Webhook"],"description":"This route allows you to fetch all webhooks configured in your Port organization. You can also see them in the [connectors page](https://app.port.io/settings/data-sources) of your Port account.<br/>To learn more about webhooks, check out the [documentation](https://docs.port.io/context-lake/ingestion/ingest-data-into-port/webhook/ingest-via-webhooks-overview).<br/><br/>**Permission requirements**<br/>To use this endpoint, you must have a `moderator` or `admin` role in your Port organization.<br/>To learn more about the different roles and permissions, please refer to the [documentation](https://docs.port.io/platform-administration/users-and-teams/manage-users-teams/#roles--permissions).","security":[{"bearer":["read:integrations"]}],"x-should-be-exposed-to-customers":true,"responses":{"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}}}}},"/v1/webhooks/{identifier}":{"patch":{"summary":"Update a webhook","tags":["Webhook"],"description":"This route allows you to modify a webhook in your Port organization. You can also modify it via the [connectors page](https://app.port.io/settings/data-sources) of your Port account.<br/><br/>To learn more about webhooks, check out the [documentation](https://docs.port.io/context-lake/ingestion/ingest-data-into-port/webhook/ingest-via-webhooks-overview).","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"identifier":{"type":"string","maxLength":30,"description":"The identifier of the webhook."},"title":{"type":"string","maxLength":30,"description":"The title of the webhook, which will be displayed in the [connectors page](https://app.port.io/settings/data-sources) of your Port account."},"description":{"type":"string","maxLength":200,"description":"A description for the webhook."},"icon":{"type":"string","description":"The icon of the webhook."},"mappings":{"type":"array","items":{"type":"object","properties":{"operation":{"oneOf":[{"title":"Advanced create","description":"If the operation is `create`, the [entity JSON](https://docs.port.io/context-lake/ingestion/ingest-data-into-port/native-integrations/overview/#json-structure) properties must be provided. For example:\n```json\n{\n  \"operation\": \"create\",\n  \"blueprint\": \"blueprint_identifier\",\n  \"filter\": \"true\",\n  \"itemsToParse\": \"true\",\n  \"entity\": {\n      \"identifier\": \"new-webhook\",\n      \"title\": \"MyNewWebhook\",\n      \"icon\": \"webhook\",\n      \"team\": [],\n      \"properties\": {\n        \"content\": \"my content\"\n      },\n      \"relations\": {}\n  }\n}\n```","enum":["create"]},{"type":"object","title":"Create","properties":{"type":{"enum":["create"]}},"required":["type"],"additionalProperties":false},{"title":"Delete","description":"If the selected operation is `delete`, a blueprint identifier, and entity identifier must be provided, for example:\n```json\n{\n  \"operation\": \"delete\",\n  \"filter\": \"true\",\n  \"itemsToParse\": \"true\",\n  \"blueprint\": \"blueprint_identifier\",\n  \"entity\": {\n    \"identifier\": \"entity_identifier\"\n  }\n}\n```","enum":["delete"]},{"type":"object","title":"Advanced delete","properties":{"type":{"enum":["delete"]},"deleteDependents":{"type":"boolean"}},"required":["type"],"additionalProperties":false}],"description":"If the selected operation is `delete`, a blueprint identifier, and entity identifier must be provided. If the operation is `create`, the [entity JSON](https://docs.port.io/context-lake/ingestion/ingest-data-into-port/native-integrations/overview/#json-structure) properties must be provided."}},"if":{"properties":{"operation":{"oneOf":[{"title":"Delete","description":"If the selected operation is `delete`, a blueprint identifier, and entity identifier must be provided, for example:\n```json\n{\n  \"operation\": \"delete\",\n  \"filter\": \"true\",\n  \"itemsToParse\": \"true\",\n  \"blueprint\": \"blueprint_identifier\",\n  \"entity\": {\n    \"identifier\": \"entity_identifier\"\n  }\n}\n```","enum":["delete"]},{"type":"object","title":"Advanced delete","properties":{"type":{"enum":["delete"]},"deleteDependents":{"type":"boolean"}},"required":["type"],"additionalProperties":false}]}},"required":["operation"]},"then":{"properties":{"operation":{"oneOf":[{"title":"Delete","description":"If the selected operation is `delete`, a blueprint identifier, and entity identifier must be provided, for example:\n```json\n{\n  \"operation\": \"delete\",\n  \"filter\": \"true\",\n  \"itemsToParse\": \"true\",\n  \"blueprint\": \"blueprint_identifier\",\n  \"entity\": {\n    \"identifier\": \"entity_identifier\"\n  }\n}\n```","enum":["delete"]},{"type":"object","title":"Advanced delete","properties":{"type":{"enum":["delete"]},"deleteDependents":{"type":"boolean"}},"required":["type"],"additionalProperties":false}]},"blueprint":{"type":"string","description":"The identifier of the blueprint to map the data into."},"filter":{"type":"string","description":"A `jq` query used to filter exactly which payloads sent to the webhook are processed. If set to `\"true\"`, all payloads will be processed."},"itemsToParse":{"type":"string","description":"A `jq` query that evaluates to an array of items, used to create multiple entities from a single webhook event."},"entity":{"type":"object","properties":{"identifier":{"type":"string"}},"additionalProperties":false,"required":["identifier"]}},"required":["blueprint","entity"],"additionalProperties":true},"else":{"properties":{"operation":{"oneOf":[{"title":"Advanced create","description":"If the operation is `create`, the [entity JSON](https://docs.port.io/context-lake/ingestion/ingest-data-into-port/native-integrations/overview/#json-structure) properties must be provided. For example:\n```json\n{\n  \"operation\": \"create\",\n  \"blueprint\": \"blueprint_identifier\",\n  \"filter\": \"true\",\n  \"itemsToParse\": \"true\",\n  \"entity\": {\n      \"identifier\": \"new-webhook\",\n      \"title\": \"MyNewWebhook\",\n      \"icon\": \"webhook\",\n      \"team\": [],\n      \"properties\": {\n        \"content\": \"my content\"\n      },\n      \"relations\": {}\n  }\n}\n```","enum":["create"]},{"type":"object","title":"Create","properties":{"type":{"enum":["create"]}},"required":["type"],"additionalProperties":false}]},"blueprint":{"type":"string","description":"The identifier of the blueprint to map the data into."},"filter":{"type":"string","description":"A `jq` query used to filter exactly which payloads sent to the webhook are processed. If set to `\"true\"`, all payloads will be processed."},"itemsToParse":{"type":"string","description":"A `jq` query that evaluates to an array of items, used to create multiple entities from a single webhook event."},"entity":{"type":"object","description":"An object defining how to map the data from the webhook payload into Port entities.","properties":{"identifier":{"oneOf":[{"type":"string","description":"A `jq` expression used to get data from the webhook payload, to be used as an identifier for the entity."},{"type":"object","properties":{"combinator":{"type":"string"},"rules":{"type":"array","items":{"type":"object","additionalProperties":true}}},"additionalProperties":false,"required":["combinator","rules"]}]},"title":{"type":"string","description":"A `jq` expression used to get data from the webhook payload, to be used as the title of the entity."},"icon":{"type":"string","description":"The icon of the entity."},"team":{"oneOf":[{"type":"string"},{"type":"object","properties":{"combinator":{"type":"string"},"rules":{"type":"array","items":{"type":"object","additionalProperties":true}}},"additionalProperties":false,"required":["combinator","rules"]}]},"properties":{"type":"object","description":"An object containing the properties of the entity and their values. For more information and examples, check out the [documentation](https://docs.port.io/context-lake/ingestion/ingest-data-into-port/webhook/ingest-via-webhooks-overview).","propertyNames":{"type":"string"}},"relations":{"type":"object","description":"An object containing the relations of the entity and their values. For more information and examples, check out the [documentation](https://docs.port.io/context-lake/ingestion/ingest-data-into-port/webhook/ingest-via-webhooks-overview).","propertyNames":{"type":"string"}}},"additionalProperties":false,"required":["identifier"]}},"required":["blueprint","entity"],"additionalProperties":false}},"description":"The mapping definitions used to map the data from the webhook into Port entities. For more information and examples, check out the [documentation](https://docs.port.io/context-lake/ingestion/ingest-data-into-port/webhook/ingest-via-webhooks-overview)."},"enabled":{"type":"boolean","default":true,"description":"Determines whether the webhook is active or not. If `false`, any incoming events will be dropped."},"security":{"type":"object","properties":{"secret":{"type":"string","nullable":true},"signatureHeaderName":{"type":"string","nullable":true},"signatureAlgorithm":{"anyOf":[{"type":"string","enum":["sha1","sha256","plain"]},{"type":"null"}]},"signaturePrefix":{"type":"string","nullable":true},"requestIdentifierPath":{"type":"string","nullable":true}},"additionalProperties":false,"description":"The security configuration of the webhook, used to tell Port how to verify the hashed signature sent with incoming requests.<br/>For more information and examples, check out the [documentation](https://docs.port.io/context-lake/ingestion/ingest-data-into-port/webhook/ingest-via-webhooks-overview#security-configuration)."},"integrationType":{"type":"string","enum":["custom","template"]}},"additionalProperties":false}}}},"parameters":[{"schema":{"type":"string"},"in":"path","name":"identifier","required":true,"description":"The unique identifier of the resource you want to operate on."}],"security":[{"bearer":["update:integrations"]}],"x-should-be-exposed-to-customers":true,"responses":{"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}},"413":{"description":"Request body is too large (limit is 1MiB)","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false,"description":"Request body is too large (limit is 1MiB)"}}}},"422":{"description":"The json provided does not match the route's schema","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"The json provided does not match the route's schema"}}}}}},"put":{"summary":"Change a webhook","tags":["Webhook"],"description":"This route allows you to modify a webhook in your Port organization. You can also modify it via the [connectors page](https://app.port.io/settings/data-sources) of your Port account.<br/><br/>To learn more about webhooks, check out the [documentation](https://docs.port.io/context-lake/ingestion/ingest-data-into-port/webhook/ingest-via-webhooks-overview).","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"identifier":{"type":"string","maxLength":30,"description":"The identifier of the webhook."},"title":{"type":"string","maxLength":30,"description":"The title of the webhook, which will be displayed in the [connectors page](https://app.port.io/settings/data-sources) of your Port account."},"description":{"type":"string","maxLength":200,"description":"A description for the webhook."},"icon":{"type":"string","description":"The icon of the webhook."},"mappings":{"type":"array","items":{"type":"object","properties":{"operation":{"oneOf":[{"title":"Advanced create","description":"If the operation is `create`, the [entity JSON](https://docs.port.io/context-lake/ingestion/ingest-data-into-port/native-integrations/overview/#json-structure) properties must be provided. For example:\n```json\n{\n  \"operation\": \"create\",\n  \"blueprint\": \"blueprint_identifier\",\n  \"filter\": \"true\",\n  \"itemsToParse\": \"true\",\n  \"entity\": {\n      \"identifier\": \"new-webhook\",\n      \"title\": \"MyNewWebhook\",\n      \"icon\": \"webhook\",\n      \"team\": [],\n      \"properties\": {\n        \"content\": \"my content\"\n      },\n      \"relations\": {}\n  }\n}\n```","enum":["create"]},{"type":"object","title":"Create","properties":{"type":{"enum":["create"]}},"required":["type"],"additionalProperties":false},{"title":"Delete","description":"If the selected operation is `delete`, a blueprint identifier, and entity identifier must be provided, for example:\n```json\n{\n  \"operation\": \"delete\",\n  \"filter\": \"true\",\n  \"itemsToParse\": \"true\",\n  \"blueprint\": \"blueprint_identifier\",\n  \"entity\": {\n    \"identifier\": \"entity_identifier\"\n  }\n}\n```","enum":["delete"]},{"type":"object","title":"Advanced delete","properties":{"type":{"enum":["delete"]},"deleteDependents":{"type":"boolean"}},"required":["type"],"additionalProperties":false}],"description":"If the selected operation is `delete`, a blueprint identifier, and entity identifier must be provided. If the operation is `create`, the [entity JSON](https://docs.port.io/context-lake/ingestion/ingest-data-into-port/native-integrations/overview/#json-structure) properties must be provided."}},"if":{"properties":{"operation":{"oneOf":[{"title":"Delete","description":"If the selected operation is `delete`, a blueprint identifier, and entity identifier must be provided, for example:\n```json\n{\n  \"operation\": \"delete\",\n  \"filter\": \"true\",\n  \"itemsToParse\": \"true\",\n  \"blueprint\": \"blueprint_identifier\",\n  \"entity\": {\n    \"identifier\": \"entity_identifier\"\n  }\n}\n```","enum":["delete"]},{"type":"object","title":"Advanced delete","properties":{"type":{"enum":["delete"]},"deleteDependents":{"type":"boolean"}},"required":["type"],"additionalProperties":false}]}},"required":["operation"]},"then":{"properties":{"operation":{"oneOf":[{"title":"Delete","description":"If the selected operation is `delete`, a blueprint identifier, and entity identifier must be provided, for example:\n```json\n{\n  \"operation\": \"delete\",\n  \"filter\": \"true\",\n  \"itemsToParse\": \"true\",\n  \"blueprint\": \"blueprint_identifier\",\n  \"entity\": {\n    \"identifier\": \"entity_identifier\"\n  }\n}\n```","enum":["delete"]},{"type":"object","title":"Advanced delete","properties":{"type":{"enum":["delete"]},"deleteDependents":{"type":"boolean"}},"required":["type"],"additionalProperties":false}]},"blueprint":{"type":"string","description":"The identifier of the blueprint to map the data into."},"filter":{"type":"string","description":"A `jq` query used to filter exactly which payloads sent to the webhook are processed. If set to `\"true\"`, all payloads will be processed."},"itemsToParse":{"type":"string","description":"A `jq` query that evaluates to an array of items, used to create multiple entities from a single webhook event."},"entity":{"type":"object","properties":{"identifier":{"type":"string"}},"additionalProperties":false,"required":["identifier"]}},"required":["blueprint","entity"],"additionalProperties":true},"else":{"properties":{"operation":{"oneOf":[{"title":"Advanced create","description":"If the operation is `create`, the [entity JSON](https://docs.port.io/context-lake/ingestion/ingest-data-into-port/native-integrations/overview/#json-structure) properties must be provided. For example:\n```json\n{\n  \"operation\": \"create\",\n  \"blueprint\": \"blueprint_identifier\",\n  \"filter\": \"true\",\n  \"itemsToParse\": \"true\",\n  \"entity\": {\n      \"identifier\": \"new-webhook\",\n      \"title\": \"MyNewWebhook\",\n      \"icon\": \"webhook\",\n      \"team\": [],\n      \"properties\": {\n        \"content\": \"my content\"\n      },\n      \"relations\": {}\n  }\n}\n```","enum":["create"]},{"type":"object","title":"Create","properties":{"type":{"enum":["create"]}},"required":["type"],"additionalProperties":false}]},"blueprint":{"type":"string","description":"The identifier of the blueprint to map the data into."},"filter":{"type":"string","description":"A `jq` query used to filter exactly which payloads sent to the webhook are processed. If set to `\"true\"`, all payloads will be processed."},"itemsToParse":{"type":"string","description":"A `jq` query that evaluates to an array of items, used to create multiple entities from a single webhook event."},"entity":{"type":"object","description":"An object defining how to map the data from the webhook payload into Port entities.","properties":{"identifier":{"oneOf":[{"type":"string","description":"A `jq` expression used to get data from the webhook payload, to be used as an identifier for the entity."},{"type":"object","properties":{"combinator":{"type":"string"},"rules":{"type":"array","items":{"type":"object","additionalProperties":true}}},"additionalProperties":false,"required":["combinator","rules"]}]},"title":{"type":"string","description":"A `jq` expression used to get data from the webhook payload, to be used as the title of the entity."},"icon":{"type":"string","description":"The icon of the entity."},"team":{"oneOf":[{"type":"string"},{"type":"object","properties":{"combinator":{"type":"string"},"rules":{"type":"array","items":{"type":"object","additionalProperties":true}}},"additionalProperties":false,"required":["combinator","rules"]}]},"properties":{"type":"object","description":"An object containing the properties of the entity and their values. For more information and examples, check out the [documentation](https://docs.port.io/context-lake/ingestion/ingest-data-into-port/webhook/ingest-via-webhooks-overview).","propertyNames":{"type":"string"}},"relations":{"type":"object","description":"An object containing the relations of the entity and their values. For more information and examples, check out the [documentation](https://docs.port.io/context-lake/ingestion/ingest-data-into-port/webhook/ingest-via-webhooks-overview).","propertyNames":{"type":"string"}}},"additionalProperties":false,"required":["identifier"]}},"required":["blueprint","entity"],"additionalProperties":false}},"description":"The mapping definitions used to map the data from the webhook into Port entities. For more information and examples, check out the [documentation](https://docs.port.io/context-lake/ingestion/ingest-data-into-port/webhook/ingest-via-webhooks-overview)."},"enabled":{"type":"boolean","default":true,"description":"Determines whether the webhook is active or not. If `false`, any incoming events will be dropped."},"security":{"type":"object","properties":{"secret":{"type":"string","nullable":true},"signatureHeaderName":{"type":"string","nullable":true},"signatureAlgorithm":{"anyOf":[{"type":"string","enum":["sha1","sha256","plain"]},{"type":"null"}]},"signaturePrefix":{"type":"string","nullable":true},"requestIdentifierPath":{"type":"string","nullable":true}},"additionalProperties":false,"description":"The security configuration of the webhook, used to tell Port how to verify the hashed signature sent with incoming requests.<br/>For more information and examples, check out the [documentation](https://docs.port.io/context-lake/ingestion/ingest-data-into-port/webhook/ingest-via-webhooks-overview#security-configuration)."},"integrationType":{"type":"string","enum":["custom","template"]}},"additionalProperties":false,"required":["title","enabled"]}}},"required":true},"parameters":[{"schema":{"type":"string"},"in":"path","name":"identifier","required":true,"description":"The unique identifier of the resource you want to operate on."}],"security":[{"bearer":["update:integrations"]}],"x-should-be-exposed-to-customers":true,"responses":{"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}},"413":{"description":"Request body is too large (limit is 1MiB)","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false,"description":"Request body is too large (limit is 1MiB)"}}}},"422":{"description":"The json provided does not match the route's schema","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"The json provided does not match the route's schema"}}}}}},"get":{"summary":"Get a webhook","tags":["Webhook"],"description":"This route allows you to fetch a specific webhook in your Port organization. You can also see it in the [connectors page](https://app.port.io/settings/data-sources) of your Port account.<br/>To learn more about webhooks, check out the [documentation](https://docs.port.io/context-lake/ingestion/ingest-data-into-port/webhook/ingest-via-webhooks-overview).<br/><br/>**Permission requirements**<br/>To use this endpoint, you must have a `moderator` or `admin` role in your Port organization.<br/>To learn more about the different roles and permissions, please refer to the [documentation](https://docs.port.io/platform-administration/users-and-teams/manage-users-teams/#roles--permissions).","parameters":[{"schema":{"type":"string"},"in":"path","name":"identifier","required":true,"description":"The unique identifier of the resource you want to operate on."}],"security":[{"bearer":["read:integrations"]}],"x-should-be-exposed-to-customers":true,"responses":{"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}}}},"delete":{"summary":"Delete a webhook","tags":["Webhook"],"description":"This route allows you to delete a webhook in your Port organization. You can also delete it via the [connectors page](https://app.port.io/settings/data-sources) of your Port account.<br/><br/>To learn more about webhooks, check out the [documentation](https://docs.port.io/context-lake/ingestion/ingest-data-into-port/webhook/ingest-via-webhooks-overview).","parameters":[{"schema":{"type":"string"},"in":"path","name":"identifier","required":true,"description":"The unique identifier of the resource you want to operate on."}],"security":[{"bearer":["delete:integrations"]}],"x-should-be-exposed-to-customers":true,"responses":{"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}},"413":{"description":"Request body is too large (limit is 1MiB)","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false,"description":"Request body is too large (limit is 1MiB)"}}}},"422":{"description":"The json provided does not match the route's schema","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"The json provided does not match the route's schema"}}}}}}},"/v1/webhooks/metadata":{"get":{"summary":"Get all webhooks meta-data (member view)","tags":["Webhook"],"description":"This route allows members to fetch meta-data on all webhooks in their Port organization.<br></br>The response includes each webhook's identifier, title, icon, and last update timestamp.","security":[{"bearer":["read:integrations:basic"]}],"x-should-be-exposed-to-customers":true,"responses":{"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}}}}},"/v1/audit-log":{"get":{"summary":"Get audit logs","tags":["Audit"],"description":"Fetch audit logs from your Port account (also viewable in [Port's UI](https://app.port.io/settings/AuditLog)).<br/><br/>All query parameters are combined with logical `AND`.<br/><br/>**Non-admin users** have limited access. They can only:<br/>- Pass an `identifier` to access a specific log.<br/>- Pass an `entity` to retrieve logs of entities they have access to.<br/>- Pass a `run_id` to retrieve logs of action runs they have access to.<br/><br/>Non-admin users **cannot** view logs of deleted entities.<br/><br/>**Performance:** The optional `limit` parameter defaults to `10000`. Omitting `limit` previously used a default of `100000`, which often caused `504 Gateway Timeout` on large accounts. For very broad queries you may still need a lower `limit` or narrower `from`/`to` time windows.","parameters":[{"schema":{"type":"string"},"in":"query","name":"identifier","required":false,"description":"An identifier of the log event you want to fetch."},{"schema":{"type":"string"},"in":"query","name":"entity","required":false,"description":"Fetch all audit logs related to the specified entity."},{"schema":{"type":"boolean"},"in":"query","name":"include_deleted_entities","required":false,"description":"Include deleted entities when searching for audit logs. This requires the `entity`, `blueprint`, `status`, `from` and `to` parameters. And the diff between `from` & `to` is limited to 1 day."},{"schema":{"type":"string"},"in":"query","name":"blueprint","required":false,"description":"Fetch all audit logs related to the specified blueprint."},{"schema":{"type":"string"},"in":"query","name":"run_id","required":false,"description":"Fetch all audit logs related to the specified action run."},{"schema":{"type":"string"},"in":"query","name":"webhookId","required":false,"description":"Fetch all audit logs related to the specified webhook."},{"schema":{"type":"string"},"in":"query","name":"webhookEventId","required":false,"description":"Fetch all audit logs related to the specified webhook event."},{"schema":{"type":"array","items":{"type":"string"}},"in":"query","name":"origin","required":false,"description":"Fetch all audit logs coming from the specified origin/s. This refers to the integration/s that triggered the log. For operations performed via Port's UI, the origin will be `UI`."},{"schema":{"type":"string"},"in":"query","name":"InstallationId","required":false,"description":"Fetch all audit logs related to the specified integration."},{"schema":{"anyOf":[{"type":"array","items":{"type":"string","enum":["entity","blueprint_permission","blueprint","run","webhook","action","action_permission","scorecard","integration","secret"]}},{"type":"string","enum":["entity","blueprint_permission","blueprint","run","webhook","action","action_permission","scorecard","integration","secret"]}]},"in":"query","name":"resources","required":false,"description":"Fetch all audit logs related to the specified resource type/s.<br/>**Possible values**: [`blueprint`, `entity`, `run`, `webhook`, `scorecard`, `action`, `integration`]<br/>The `integration` value is **experimental** and may change in future API versions."},{"schema":{"type":"array","items":{"enum":["action","context","diff","identifier","resourceType","status","trigger","additionalData","message"]}},"in":"query","name":"includes","required":false,"description":"The fields you want to include in the response. If used, only the specified fields will be included in the response."},{"schema":{"type":"string","format":"date-time"},"in":"query","name":"from","required":false,"description":"The starting timestamp of the audit logs you want to fetch, in the ISO format `2022-04-23T18:25:43.511Z`."},{"schema":{"type":"string","format":"date-time"},"in":"query","name":"to","required":false,"description":"The ending timestamp of the audit logs you want to fetch, in the ISO format `2022-04-23T18:25:43.511Z`."},{"schema":{"type":"string"},"in":"query","name":"action","required":false,"description":"Fetch all audit logs with the specified action type - `CREATE`, `UPDATE`, or `DELETE`."},{"schema":{"type":"string","enum":["SUCCESS","FAILURE"]},"in":"query","name":"status","required":false,"description":"Fetch all audit logs with the specified status."},{"schema":{"type":"number"},"in":"query","name":"limit","required":false,"description":"The maximum number of logs to return. Optional; defaults to `10000`. The previous default was `100000`, which could cause `504 Gateway Timeout` on large accounts. Use a lower value or narrow `from` and `to` if you still hit timeouts."},{"schema":{"type":"string","enum":["automation","self-service"]},"in":"query","name":"actionType","required":false}],"security":[{"bearer":["read:audit-log"]}],"x-should-be-exposed-to-customers":true,"responses":{"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}}}}},"/v1/teams":{"get":{"summary":"Get all teams in your organization","tags":["Teams"],"description":"This route allows you to fetch all of the teams in your Port organization.<br/><br/>To learn more about teams, check out the [documentation](https://docs.port.io/context-lake/consuming-the-lake/govern-data-access/overview).","parameters":[{"schema":{"type":"array","items":{"enum":["id","name","createdAt","updatedAt","provider","description","users.firstName","users.lastName","users.email","users.picture","users.status"]}},"in":"query","name":"fields","required":false,"description":"The fields you want to fetch for each team. If used, only the specified fields will be included in the response."}],"security":[{"bearer":["read:teams"]}],"x-should-be-exposed-to-customers":true,"responses":{"200":{"description":"Retrieved successfully.","content":{"application/json":{"schema":{"description":"Retrieved successfully.","type":"object","properties":{"ok":{"enum":[true]},"teams":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"provider":{"type":"string"},"description":{"type":"string"},"users":{"type":"array","items":{"type":"object","properties":{"email":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"picture":{"type":"string"},"status":{"type":"string"}}}}}}}},"required":["teams","ok"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}}}},"post":{"summary":"Create a team","tags":["Teams"],"description":"This route allows you to create a new team in your Port organization.<br/><br/>To learn more about teams, check out the [documentation](https://docs.port.io/context-lake/consuming-the-lake/govern-data-access/overview).","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","pattern":"^[^;#/\\?\\s][^;#/\\?]*[^;#/\\?\\s]$","description":"The name of the new team."},"users":{"type":"array","items":{"type":"string"},"description":"One or more e-mail addresses of users to add to the new team."},"description":{"type":"string","description":"The description of the new team."}},"required":["name"]}}},"required":true},"security":[{"bearer":["create:teams"]}],"x-should-be-exposed-to-customers":true,"responses":{"200":{"description":"Created successfully.","content":{"application/json":{"schema":{"description":"Created successfully.","type":"object","properties":{"ok":{"enum":[true]},"team":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"provider":{"type":"string"},"description":{"type":"string"},"users":{"type":"array","items":{"type":"object","properties":{"email":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"picture":{"type":"string"},"status":{"type":"string"}}}}}}},"required":["team","ok"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}},"413":{"description":"Request body is too large (limit is 1MiB)","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false,"description":"Request body is too large (limit is 1MiB)"}}}},"422":{"description":"The json provided does not match the route's schema","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"The json provided does not match the route's schema"}}}}}}},"/v1/teams/{name}":{"get":{"summary":"Get a team","tags":["Teams"],"description":"This route allows you to fetch a specific team in your Port organization.<br/><br/>To learn more about teams, check out the [documentation](https://docs.port.io/context-lake/consuming-the-lake/govern-data-access/overview).","parameters":[{"schema":{"type":"array","items":{"enum":["id","name","createdAt","updatedAt","provider","description","users.firstName","users.lastName","users.email","users.picture","users.status"]}},"in":"query","name":"fields","required":false,"description":"The fields you want to fetch for the team. If used, only the specified fields will be included in the response."},{"schema":{"type":"string"},"in":"path","name":"name","required":true,"description":"The name of the team you want to fetch."}],"security":[{"bearer":["read:teams"]}],"x-should-be-exposed-to-customers":true,"responses":{"200":{"description":"Retrieved successfully.","content":{"application/json":{"schema":{"description":"Retrieved successfully.","type":"object","properties":{"ok":{"enum":[true]},"team":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"provider":{"type":"string"},"description":{"type":"string"}}}},"required":["team","ok"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}}}},"patch":{"summary":"Update a team","tags":["Teams"],"description":"This route allows you to update a team's details. This can be used to update the team's name, users, and description.<br/><br/>To learn more about teams, check out the [documentation](https://docs.port.io/context-lake/consuming-the-lake/govern-data-access/overview).","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"The new name of the team."},"users":{"type":"array","items":{"type":"string"},"description":"One or more e-mail addresses of users to add to the new team. This will override the existing user list."},"description":{"type":["string","null"],"description":"The new description of the team."}}}}}},"parameters":[{"schema":{"type":"string"},"in":"path","name":"name","required":true,"description":"The name of the team you want to update."}],"security":[{"bearer":["update:teams"]}],"x-should-be-exposed-to-customers":true,"responses":{"200":{"description":"Updated successfully.","content":{"application/json":{"schema":{"description":"Updated successfully.","type":"object","properties":{"ok":{"enum":[true]},"team":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"provider":{"type":"string"},"description":{"type":"string"},"users":{"type":"array","items":{"type":"object","properties":{"email":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"picture":{"type":"string"},"status":{"type":"string"}}}}}}},"required":["team","ok"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}},"413":{"description":"Request body is too large (limit is 1MiB)","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false,"description":"Request body is too large (limit is 1MiB)"}}}},"422":{"description":"The json provided does not match the route's schema","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"The json provided does not match the route's schema"}}}}}},"put":{"summary":"Change a team","tags":["Teams"],"description":"This route allows you to change a team's details. This can be used to update the team's name, users, and description.<br/><br/>To learn more about teams, check out the [documentation](https://docs.port.io/context-lake/consuming-the-lake/govern-data-access/overview).","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"The new name of the team."},"users":{"type":"array","items":{"type":"string"},"description":"One or more e-mail addresses of users to add to the new team. This will override the existing user list."},"description":{"type":"string","description":"The new description of the team."}},"required":["name"]}}},"required":true},"parameters":[{"schema":{"type":"string"},"in":"path","name":"name","required":true,"description":"The name of the team you want to change."}],"security":[{"bearer":["update:teams"]}],"x-should-be-exposed-to-customers":true,"responses":{"200":{"description":"Updated successfully.","content":{"application/json":{"schema":{"description":"Updated successfully.","type":"object","properties":{"ok":{"enum":[true]},"team":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"provider":{"type":"string"},"description":{"type":"string"},"users":{"type":"array","items":{"type":"object","properties":{"email":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"picture":{"type":"string"},"status":{"type":"string"}}}}}}},"required":["team","ok"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}},"413":{"description":"Request body is too large (limit is 1MiB)","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false,"description":"Request body is too large (limit is 1MiB)"}}}},"422":{"description":"The json provided does not match the route's schema","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"The json provided does not match the route's schema"}}}}}},"delete":{"summary":"Delete a team","tags":["Teams"],"description":"This route allows you to delete a team in your Port organization.<br/><br/>To learn more about teams, check out the [documentation](https://docs.port.io/context-lake/consuming-the-lake/govern-data-access/overview).","parameters":[{"schema":{"type":"string"},"in":"path","name":"name","required":true,"description":"The name of the team you want to delete."}],"security":[{"bearer":["delete:teams"]}],"x-should-be-exposed-to-customers":true,"responses":{"200":{"description":"Deleted successfully.","content":{"application/json":{"schema":{"description":"Deleted successfully.","properties":{"ok":{"enum":[true]}},"required":["ok"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}},"413":{"description":"Request body is too large (limit is 1MiB)","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false,"description":"Request body is too large (limit is 1MiB)"}}}},"422":{"description":"The json provided does not match the route's schema","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"The json provided does not match the route's schema"}}}}}}},"/v1/users":{"get":{"summary":"Get all users in your organization","tags":["Users"],"description":"This route allows you to fetch all of the users in your Port organization.<br/><br/>To learn more about users, check out the [documentation](https://docs.port.io/context-lake/consuming-the-lake/govern-data-access/overview).","parameters":[{"schema":{"type":"array","style":"form","explode":true,"items":{"type":"string","enum":["id","email","firstName","isInvisible","lastName","picture","status","supportLevel","type","providers","managedByScim","createdAt","updatedAt","teams.name","teams.provider","teams.createdAt","teams.updatedAt","roles.name","roles.description","roles.isAdmin","roles.protected","roles.orgId","roles.createdAt","roles.updatedAt","orgMembers.orgId","orgMembers.status","orgMembers.lastLoginAt","userAccounts.accountId","userAccounts.accountRole","companyId","companyRole"]}},"in":"query","name":"fields","required":false,"description":"The fields you want to fetch for each user. If used, only the specified fields will be included in the response."}],"security":[{"bearer":["read:users"]},{"bearer":["read:minimal:users"]}],"x-should-be-exposed-to-customers":true,"responses":{"200":{"description":"Retrieved successfully.","content":{"application/json":{"schema":{"description":"Retrieved successfully.","type":"object","properties":{"ok":{"enum":[true]},"users":{"type":"array","items":{"properties":{"email":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"picture":{"type":"string"},"status":{"type":"string"},"id":{"type":"string"},"type":{"type":"string"},"providers":{"type":"array","items":{"type":"string"}},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"orgs":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"]}},"teams":{"type":"array","items":{"type":"string"}},"roles":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"}},"required":["name"]}},"orgMembers":{"type":"array","items":{"type":"object","properties":{"orgId":{"type":"string"},"status":{"type":"string"},"lastLoginAt":{"type":"string","format":"date-time"}},"required":["orgId","status","lastLoginAt"]}},"termsAccepted":{"type":"boolean","default":null},"managedByScim":{"type":"boolean","default":null},"companyId":{"type":"string","nullable":true},"companyRole":{"type":"string","nullable":true},"userAccounts":{"type":"array","items":{"type":"object","properties":{"accountId":{"type":"string"},"accountRole":{"type":"string"}}}}}}}},"required":["users","ok"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}}}}},"/v1/users/invite":{"post":{"summary":"Invite a user to your organization","tags":["Users"],"description":"This route allows you to invite a user to your Port organization.<br/><br/>To learn more about users, roles, and teams, check out the [documentation](https://docs.port.io/context-lake/consuming-the-lake/govern-data-access/overview).","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"invitee":{"type":"object","description":"The details of the user you want to invite.","properties":{"email":{"type":"string","pattern":"^[^;#/\\?\\s][^;#/\\?]*[^;#/\\?\\s]$","description":"The user's email address."},"roles":{"type":"array","items":{"type":"string"},"description":"The roles you want to assign to the user."},"teams":{"type":"array","items":{"type":"string"},"description":"The names of the teams you want to assign the user to."}},"required":["email"]}},"additionalProperties":false,"required":["invitee"]}}},"required":true},"parameters":[{"schema":{"type":"boolean","default":true},"in":"query","name":"notify","required":false,"description":"If `true`, the invitee will receive an email notification."}],"security":[{"bearer":["create:users"]}],"x-should-be-exposed-to-customers":true,"responses":{"200":{"description":"Created successfully.","content":{"application/json":{"schema":{"description":"Created successfully.","properties":{"ok":{"enum":[true]}},"required":["ok"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}},"413":{"description":"Request body is too large (limit is 1MiB)","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false,"description":"Request body is too large (limit is 1MiB)"}}}},"422":{"description":"The json provided does not match the route's schema","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"The json provided does not match the route's schema"}}}}}}},"/v1/users/{user_email}":{"get":{"summary":"Get a user","tags":["Users"],"description":"This route allows you to fetch a specific user in your Port organization.<br/><br/>To learn more about users, check out the [documentation](https://docs.port.io/context-lake/consuming-the-lake/govern-data-access/overview).","parameters":[{"schema":{"type":"string"},"in":"path","name":"user_email","required":true,"description":"The email address of the user you want to operate on."}],"security":[{"bearer":["read:users"]},{"bearer":["read:minimal:users"]}],"x-should-be-exposed-to-customers":true,"responses":{"200":{"description":"Retrieved successfully.","content":{"application/json":{"schema":{"description":"Retrieved successfully.","properties":{"ok":{"enum":[true]},"user":{"properties":{"email":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"picture":{"type":"string"},"status":{"type":"string"},"id":{"type":"string"},"type":{"type":"string"},"providers":{"type":"array","items":{"type":"string"}},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"orgs":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"]}},"teams":{"type":"array","items":{"type":"string"}},"roles":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"}},"required":["name"]}},"orgMembers":{"type":"array","items":{"type":"object","properties":{"orgId":{"type":"string"},"status":{"type":"string"},"lastLoginAt":{"type":"string","format":"date-time"}},"required":["orgId","status","lastLoginAt"]}},"termsAccepted":{"type":"boolean","default":null},"managedByScim":{"type":"boolean","default":null},"companyId":{"type":"string","nullable":true},"companyRole":{"type":"string","nullable":true},"userAccounts":{"type":"array","items":{"type":"object","properties":{"accountId":{"type":"string"},"accountRole":{"type":"string"}}}},"teamsIdentifiers":{"type":"array","items":{"type":"string"}}}}},"required":["ok"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}}}},"patch":{"summary":"Update a user","tags":["Users"],"description":"This route allows you to update a user's details. This can be used to update the user's role/s and team/s.<br/><br/>To learn more about users, roles, and teams, check out the [documentation](https://docs.port.io/context-lake/consuming-the-lake/govern-data-access/overview).","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"roles":{"type":"array","minItems":1,"items":{"type":"string"},"description":"The roles you want to assign to the user."},"teams":{"type":"array","items":{"type":"string"},"description":"The names of the teams you want to assign the user to."}},"additionalProperties":false}}}},"parameters":[{"schema":{"type":"string"},"in":"path","name":"user_email","required":true,"description":"The email address of the user you want to operate on."}],"security":[{"bearer":["update:users"]}],"x-should-be-exposed-to-customers":true,"responses":{"200":{"description":"Updated successfully.","content":{"application/json":{"schema":{"properties":{"ok":{"enum":[true]},"email":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"picture":{"type":"string"},"status":{"type":"string"},"id":{"type":"string"},"type":{"type":"string"},"providers":{"type":"array","items":{"type":"string"}},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"orgs":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"]}},"teams":{"type":"array","items":{"type":"string"}},"roles":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"}},"required":["name"]}},"orgMembers":{"type":"array","items":{"type":"object","properties":{"orgId":{"type":"string"},"status":{"type":"string"},"lastLoginAt":{"type":"string","format":"date-time"}},"required":["orgId","status","lastLoginAt"]}},"termsAccepted":{"type":"boolean","default":null},"managedByScim":{"type":"boolean","default":null},"companyId":{"type":"string","nullable":true},"companyRole":{"type":"string","nullable":true},"userAccounts":{"type":"array","items":{"type":"object","properties":{"accountId":{"type":"string"},"accountRole":{"type":"string"}}}}},"description":"Updated successfully.","required":["ok"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}},"413":{"description":"Request body is too large (limit is 1MiB)","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false,"description":"Request body is too large (limit is 1MiB)"}}}},"422":{"description":"The json provided does not match the route's schema","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"The json provided does not match the route's schema"}}}}}},"delete":{"summary":"Delete a user","tags":["Users"],"description":"This route allows you to delete a user in your Port organization.<br/><br/>To learn more about users, check out the [documentation](https://docs.port.io/context-lake/consuming-the-lake/govern-data-access/overview).","parameters":[{"schema":{"type":"string"},"in":"path","name":"user_email","required":true,"description":"The email address of the user you want to operate on."}],"security":[{"bearer":["delete:users"]}],"x-should-be-exposed-to-customers":true,"responses":{"200":{"description":"Deleted successfully.","content":{"application/json":{"schema":{"description":"Deleted successfully.","properties":{"ok":{"enum":[true]}},"required":["ok"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}},"413":{"description":"Request body is too large (limit is 1MiB)","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false,"description":"Request body is too large (limit is 1MiB)"}}}},"422":{"description":"The json provided does not match the route's schema","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"The json provided does not match the route's schema"}}}}}}},"/v1/users/{userId}/account-role":{"patch":{"summary":"Change a user's account role","tags":["Users"],"description":"This route allows you to promote or demote a user's account role in a multi-organization account.<br/><br/>**Prerequisites:**<br/>- The caller must have the `Account admin` role.<br/>- The target user must hold the `Admin` role in at least one organization within the account before being eligible for the `Account admin` role.<br/>- Machine tokens cannot call this route.<br/>- You cannot change your own role.<br/>- Both the caller and target must belong to the same company.<br/><br/>To learn more about multiple organization membership, check out the [documentation](https://docs.port.io/platform-administration/multi-org-management/multi-organization/).","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"accountRole":{"type":"string","enum":["ADMIN","MEMBER"],"description":"Use `ADMIN` to promote the user to account admin, or `MEMBER` to demote an account admin to member."}},"required":["accountRole"],"additionalProperties":false}}},"required":true},"parameters":[{"schema":{"type":"string","minLength":1},"in":"path","name":"userId","required":true,"description":"The target user's ID, returned in the `id` field from [Get all users in your organization](https://docs.port.io/api-reference/get-all-users-in-your-organization/) or [Get a user](https://docs.port.io/api-reference/get-a-user/)."}],"security":[{"bearer":["update:users"]}],"x-should-be-exposed-to-customers":true,"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"}}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"403":{"description":"The caller does not have permission to perform this action","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"The caller does not have permission to perform this action"}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}},"413":{"description":"Request body is too large (limit is 1MiB)","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false,"description":"Request body is too large (limit is 1MiB)"}}}},"422":{"description":"The json provided does not match the route's schema","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"The json provided does not match the route's schema"}}}}}}},"/v1/users/{userId}/company-role":{"patch":{"summary":"Change a user's company role","tags":["Users"],"description":"This route allows you to promote or demote a user's company role.<br/><br/>**Prerequisites:**<br/>- The caller must have the `Company admin` role.<br/>- Machine tokens cannot call this route.<br/>- You cannot change your own role.<br/>- Both the caller and target must belong to the same company.<br/>- The last company admin cannot be demoted.<br/><br/>To learn more about multiple organization membership, check out the [documentation](https://docs.port.io/platform-administration/multi-org-management/multi-organization/).","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"companyRole":{"type":"string","enum":["ADMIN","MEMBER"],"description":"Use `ADMIN` to promote the user to company admin, or `MEMBER` to demote a company admin to member."}},"required":["companyRole"],"additionalProperties":false}}},"required":true},"parameters":[{"schema":{"type":"string","minLength":1},"in":"path","name":"userId","required":true,"description":"The target user's ID, returned in the `id` field from [Get all users in your organization](https://docs.port.io/api-reference/get-all-users-in-your-organization/) or [Get a user](https://docs.port.io/api-reference/get-a-user/)."}],"security":[{"bearer":["update:users"]}],"x-should-be-exposed-to-customers":true,"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"}}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"403":{"description":"The caller does not have permission to perform this action","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"The caller does not have permission to perform this action"}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}},"409":{"description":"The request conflicts with the current state of the resource","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"The request conflicts with the current state of the resource"}}}},"413":{"description":"Request body is too large (limit is 1MiB)","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false,"description":"Request body is too large (limit is 1MiB)"}}}},"422":{"description":"The json provided does not match the route's schema","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"The json provided does not match the route's schema"}}}}}}},"/v1/apps":{"get":{"summary":"Get all credentials","tags":["Apps"],"description":"This route allows you to fetch all credentials in your Port organization.","parameters":[{"schema":{"type":"array","items":{"type":"string","enum":["id","name","createdAt","updatedAt","secret","enabled"]}},"in":"query","name":"fields","required":false,"description":"The fields to include in the response. If not specified, all fields will be included."}],"security":[{"bearer":["read:apps"]}],"x-should-be-exposed-to-customers":true,"responses":{"200":{"description":"Retrieved successfully.","content":{"application/json":{"schema":{"properties":{"ok":{"enum":[true]},"apps":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"enabled":{"type":"boolean"},"id":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"secret":{"type":"string"}}}}},"required":["ok"],"additionalProperties":false,"description":"Retrieved successfully."}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}}}}},"/v1/apps/{id}/rotate-secret":{"post":{"summary":"Rotate secret","tags":["Apps"],"description":"This route allows you to rotate the secret of a set of credentials in your Port organization.","parameters":[{"schema":{"type":"string"},"in":"path","name":"id","required":true,"description":"The `id` of the credentials set you want to operate on."}],"security":[{"bearer":["update:apps"]}],"x-should-be-exposed-to-customers":true,"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"properties":{"ok":{"enum":[true]},"app":{"type":"object","properties":{"name":{"type":"string"},"enabled":{"type":"boolean"},"id":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"secret":{"type":"string"}}}},"required":["ok"],"additionalProperties":false,"description":"OK"}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}},"413":{"description":"Request body is too large (limit is 1MiB)","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false,"description":"Request body is too large (limit is 1MiB)"}}}},"422":{"description":"The json provided does not match the route's schema","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"The json provided does not match the route's schema"}}}}}}},"/v1/apps/{id}":{"delete":{"summary":"Delete credentials","tags":["Apps"],"description":"This route allows you to delete a set of credentials in your Port organization.","parameters":[{"schema":{"type":"string"},"in":"path","name":"id","required":true,"description":"The `id` of the credentials set you want to operate on."}],"security":[{"bearer":["update:apps"]}],"x-should-be-exposed-to-customers":true,"responses":{"200":{"description":"Deleted successfully.","content":{"application/json":{"schema":{"description":"Deleted successfully.","properties":{"ok":{"enum":[true]}},"required":["ok"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}},"413":{"description":"Request body is too large (limit is 1MiB)","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false,"description":"Request body is too large (limit is 1MiB)"}}}},"422":{"description":"The json provided does not match the route's schema","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"The json provided does not match the route's schema"}}}}}},"put":{"summary":"Change the name of a credentials set","tags":["Apps"],"description":"This route allows you to change the name of a set of credentials in your Port organization.","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"The new name of the credentials set."}},"additionalProperties":false,"required":["name"]}}},"required":true},"parameters":[{"schema":{"type":"string"},"in":"path","name":"id","required":true,"description":"The `id` of the credentials set you want to operate on."}],"security":[{"bearer":["update:apps"]}],"x-should-be-exposed-to-customers":true,"responses":{"200":{"description":"Updated successfully.","content":{"application/json":{"schema":{"properties":{"ok":{"enum":[true]},"app":{"type":"object","properties":{"name":{"type":"string"},"enabled":{"type":"boolean"},"id":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"secret":{"type":"string"}}}},"required":["ok"],"additionalProperties":false,"description":"Updated successfully."}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}},"413":{"description":"Request body is too large (limit is 1MiB)","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false,"description":"Request body is too large (limit is 1MiB)"}}}},"422":{"description":"The json provided does not match the route's schema","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"The json provided does not match the route's schema"}}}}}}},"/v1/rotate-credentials/{user_email}":{"post":{"summary":"Rotate a user's credentials","tags":["Authentication / Authorization"],"description":"This route allows you to rotate a user's credentials and generate new ones.","parameters":[{"schema":{"type":"string"},"in":"path","name":"user_email","required":true,"description":"The email address of the user you want to operate on."}],"security":[{"bearer":["update:users"]}],"x-should-be-exposed-to-customers":true,"responses":{"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}},"413":{"description":"Request body is too large (limit is 1MiB)","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false,"description":"Request body is too large (limit is 1MiB)"}}}},"422":{"description":"The json provided does not match the route's schema","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"The json provided does not match the route's schema"}}}}}}},"/v1/blueprints/{blueprint_identifier}/scorecards":{"post":{"summary":"Create a scorecard","tags":["Scorecards"],"description":"This route allows you to create a scorecard for a given blueprint. A scorecard is a set of rules that define the quality of a blueprint.<br/><br/>To learn more about scorecards, check out the [documentation](https://docs.port.io/governance/standards-and-compliance/overview).","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"identifier":{"type":"string","pattern":"^(?!\\.{1,2}$)[\\p{L}0-9@_.+:\\\\/='-]+$","maxLength":100,"description":"A unique identifier for the scorecard."},"title":{"type":"string","description":"The title of the scorecard."},"filter":{"type":"object","properties":{"combinator":{"type":"string","enum":["and","or"],"description":"The combinator to use when evaluating the conditions."},"conditions":{"type":"array","minItems":1,"description":"The conditions to evaluate.","items":{"anyOf":[{"type":"object","title":"Property between condition","properties":{"property":{"type":"string"},"operator":{"enum":["between","notBetween","="]},"value":{"type":"object","oneOf":[{"type":"object","title":"Date range","properties":{"from":{"type":"string","format":"date-time"},"to":{"type":"string","format":"date-time"}},"required":["from","to"]},{"type":"object","title":"Preset date range","properties":{"preset":{"type":"string","enum":["today","tomorrow","yesterday","lastWeek","last2Weeks","lastMonth","last3Months","last6Months","last12Months"]}},"required":["preset"]}]}},"required":["property","operator","value"],"additionalProperties":false},{"type":"object","title":"Property containsAny condition","properties":{"property":{"type":"string"},"operator":{"type":"string","enum":["containsAny","in"]},"value":{"type":"array","items":{"type":"string"}}},"required":["property","operator","value"]},{"type":"object","title":"Relation containsAny condition","properties":{"relation":{"type":"string"},"operator":{"type":"string","enum":["containsAny","in"]},"value":{"type":"array","items":{"type":"string"}}},"required":["relation","operator","value"]},{"type":"object","title":"Property comparison","properties":{"property":{"type":"string"},"operator":{"type":"string","enum":["=","!=",">","<",">=","<=","contains","doesNotContains","beginsWith","doesNotBeginsWith","endsWith","doesNotEndsWith"]},"value":{"oneOf":[{"type":"string","title":"string"},{"type":"number","title":"number"},{"type":"boolean","title":"boolean"},{"type":"array","items":{"type":"string"}}],"description":"The value to compare against."}},"required":["property","operator","value"]},{"type":"object","title":"Relation comparison","properties":{"relation":{"type":"string"},"operator":{"type":"string","enum":["=","!=",">","<",">=","<=","contains","doesNotContains","beginsWith","doesNotBeginsWith","endsWith","doesNotEndsWith"]},"value":{"oneOf":[{"type":"string","title":"string"},{"type":"number","title":"number"},{"type":"boolean","title":"boolean"},{"type":"array","items":{"type":"string"}}],"description":"The value to compare against."}},"required":["relation","operator","value"]},{"type":"object","title":"Property empty condition","properties":{"not":{"type":"boolean"},"property":{"type":"string"},"operator":{"type":"string","enum":["isEmpty","isNotEmpty"]}},"required":["property","operator"]},{"type":"object","title":"Relation empty condition","properties":{"not":{"type":"boolean"},"relation":{"type":"string"},"operator":{"type":"string","enum":["isEmpty","isNotEmpty"]}},"required":["relation","operator"]}]}}},"required":["combinator","conditions"],"description":"An optional set of [conditions](https://docs.port.io/governance/standards-and-compliance/concepts-and-structure/#filter-elements) to filter entities that will be evaluated by the scorecard."},"properties":{"type":"object","propertyNames":{"pattern":"^[A-Za-z0-9@_=\\\\-]+$"},"description":"An object containing the additional properties of the scorecard, in `\"key\":\"value\"` pairs where the `key` is the property's identifier, and the `value` is its value. Property keys must match custom properties you added to the `_scorecard` blueprint. On PUT, omitted keys are cleared; omit the field or pass `{}` to clear all additional properties. To learn more, see [extend the default scorecards](https://docs.port.io/governance/standards-and-compliance/examples/extend-data-model/)."},"relations":{"type":"object","propertyNames":{"anyOf":[{"pattern":"^[A-Za-z0-9@_=\\\\-]+$"},{"enum":["$team"]}],"not":{"enum":["group"]}},"additionalProperties":{"oneOf":[{"type":"string"},{"type":"array","items":{"type":"string"}},{"type":"null"}]},"description":"An object containing the additional relations of the scorecard, in `\"key\":\"value\"` pairs where the `key` is the relation's identifier, and the `value` is the related entity identifier (or an array of identifiers). Relation keys must match custom relations you added to the `_scorecard` blueprint, or the `$team` owning-teams meta relation when ownership is configured. The `group` relation is managed by Port and cannot be set here. On PUT, omitted keys are cleared; omit the field or pass `{}` to clear all additional relations. You can also pass `null` to clear a specific relation. To learn more, see [extend the default scorecards](https://docs.port.io/governance/standards-and-compliance/examples/extend-data-model/)."},"rules":{"type":"array","description":"The [rules](https://docs.port.io/governance/standards-and-compliance/concepts-and-structure/#rule-elements) that define the scorecard.","items":{"type":"object","properties":{"identifier":{"type":"string","pattern":"^[A-Za-z0-9@_=\\\\-]+$","maxLength":100,"description":"The identifier of the rule."},"title":{"type":"string","description":"The title of the rule."},"description":{"type":"string","description":"A description for the rule."},"level":{"type":"string","description":"The title of the level this rule belongs to. It must be one of the levels defined on the scorecard."},"query":{"type":"object","properties":{"combinator":{"type":"string","enum":["and","or"],"description":"The combinator to use when evaluating the conditions."},"conditions":{"type":"array","minItems":1,"description":"The conditions to evaluate.","items":{"anyOf":[{"type":"object","title":"Property between condition","properties":{"property":{"type":"string"},"operator":{"enum":["between","notBetween","="]},"value":{"type":"object","oneOf":[{"type":"object","title":"Date range","properties":{"from":{"type":"string","format":"date-time"},"to":{"type":"string","format":"date-time"}},"required":["from","to"]},{"type":"object","title":"Preset date range","properties":{"preset":{"type":"string","enum":["today","tomorrow","yesterday","lastWeek","last2Weeks","lastMonth","last3Months","last6Months","last12Months"]}},"required":["preset"]}]}},"required":["property","operator","value"],"additionalProperties":false},{"type":"object","title":"Property containsAny condition","properties":{"property":{"type":"string"},"operator":{"type":"string","enum":["containsAny","in"]},"value":{"type":"array","items":{"type":"string"}}},"required":["property","operator","value"]},{"type":"object","title":"Relation containsAny condition","properties":{"relation":{"type":"string"},"operator":{"type":"string","enum":["containsAny","in"]},"value":{"type":"array","items":{"type":"string"}}},"required":["relation","operator","value"]},{"type":"object","title":"Property comparison","properties":{"property":{"type":"string"},"operator":{"type":"string","enum":["=","!=",">","<",">=","<=","contains","doesNotContains","beginsWith","doesNotBeginsWith","endsWith","doesNotEndsWith"]},"value":{"oneOf":[{"type":"string","title":"string"},{"type":"number","title":"number"},{"type":"boolean","title":"boolean"},{"type":"array","items":{"type":"string"}}],"description":"The value to compare against."}},"required":["property","operator","value"]},{"type":"object","title":"Relation comparison","properties":{"relation":{"type":"string"},"operator":{"type":"string","enum":["=","!=",">","<",">=","<=","contains","doesNotContains","beginsWith","doesNotBeginsWith","endsWith","doesNotEndsWith"]},"value":{"oneOf":[{"type":"string","title":"string"},{"type":"number","title":"number"},{"type":"boolean","title":"boolean"},{"type":"array","items":{"type":"string"}}],"description":"The value to compare against."}},"required":["relation","operator","value"]},{"type":"object","title":"Property empty condition","properties":{"not":{"type":"boolean"},"property":{"type":"string"},"operator":{"type":"string","enum":["isEmpty","isNotEmpty"]}},"required":["property","operator"]},{"type":"object","title":"Relation empty condition","properties":{"not":{"type":"boolean"},"relation":{"type":"string"},"operator":{"type":"string","enum":["isEmpty","isNotEmpty"]}},"required":["relation","operator"]}]}}},"required":["combinator","conditions"],"description":"The query that defines the rule."},"properties":{"type":"object","propertyNames":{"pattern":"^[A-Za-z0-9@_=\\\\-]+$"},"description":"An object containing the additional properties of the rule, in `\"key\":\"value\"` pairs where the `key` is the property's identifier, and the `value` is its value. Property keys must match custom properties you added to the `_rule` blueprint. On PUT, omitted keys are cleared; omit the field or pass `{}` to clear all additional properties. To learn more, see [extend the default scorecards](https://docs.port.io/governance/standards-and-compliance/examples/extend-data-model/)."},"relations":{"type":"object","propertyNames":{"anyOf":[{"pattern":"^[A-Za-z0-9@_=\\\\-]+$"},{"enum":["$team"]}],"not":{"enum":["scorecard"]}},"additionalProperties":{"oneOf":[{"type":"string"},{"type":"array","items":{"type":"string"}},{"type":"null"}]},"description":"An object containing the additional relations of the rule, in `\"key\":\"value\"` pairs where the `key` is the relation's identifier, and the `value` is the related entity identifier (or an array of identifiers). Relation keys must match custom relations you added to the `_rule` blueprint, or the `$team` owning-teams meta relation when ownership is configured. The `scorecard` relation is managed by Port and cannot be set here. On PUT, omitted keys are cleared; omit the field or pass `{}` to clear all additional relations. You can also pass `null` to clear a specific relation. To learn more, see [extend the default scorecards](https://docs.port.io/governance/standards-and-compliance/examples/extend-data-model/)."}},"required":["identifier","title","level","query"]}},"levels":{"type":"array","description":"The available levels of the scorecard, each with its own name and color.","items":{"type":"object","properties":{"title":{"type":"string","description":"The name of the level."},"color":{"type":"string","enum":["blue","turquoise","orange","purple","pink","yellow","green","red","gold","silver","paleBlue","darkGray","lightGray","bronze","lime","olive","brown"],"description":"The color associated with the level, for visualization in Port's UI."}},"required":["title","color"]}}},"if":{"properties":{"levels":{"type":"array","minItems":1}}},"then":{"properties":{"rules":{"type":"array","items":{"type":"object","properties":{"identifier":{"type":"string","pattern":"^(?!\\.{1,2}$)[\\p{L}0-9@_.+:\\\\/='-]+$","maxLength":100},"title":{"type":"string"},"description":{"type":"string"},"level":{"type":"string"},"query":{"type":"object","properties":{"combinator":{"type":"string","enum":["and","or"],"description":"The combinator to use when evaluating the conditions."},"conditions":{"type":"array","minItems":1,"description":"The conditions to evaluate.","items":{"anyOf":[{"type":"object","title":"Property between condition","properties":{"property":{"type":"string"},"operator":{"enum":["between","notBetween","="]},"value":{"type":"object","oneOf":[{"type":"object","title":"Date range","properties":{"from":{"type":"string","format":"date-time"},"to":{"type":"string","format":"date-time"}},"required":["from","to"]},{"type":"object","title":"Preset date range","properties":{"preset":{"type":"string","enum":["today","tomorrow","yesterday","lastWeek","last2Weeks","lastMonth","last3Months","last6Months","last12Months"]}},"required":["preset"]}]}},"required":["property","operator","value"],"additionalProperties":false},{"type":"object","title":"Property containsAny condition","properties":{"property":{"type":"string"},"operator":{"type":"string","enum":["containsAny","in"]},"value":{"type":"array","items":{"type":"string"}}},"required":["property","operator","value"]},{"type":"object","title":"Relation containsAny condition","properties":{"relation":{"type":"string"},"operator":{"type":"string","enum":["containsAny","in"]},"value":{"type":"array","items":{"type":"string"}}},"required":["relation","operator","value"]},{"type":"object","title":"Property comparison","properties":{"property":{"type":"string"},"operator":{"type":"string","enum":["=","!=",">","<",">=","<=","contains","doesNotContains","beginsWith","doesNotBeginsWith","endsWith","doesNotEndsWith"]},"value":{"oneOf":[{"type":"string","title":"string"},{"type":"number","title":"number"},{"type":"boolean","title":"boolean"},{"type":"array","items":{"type":"string"}}],"description":"The value to compare against."}},"required":["property","operator","value"]},{"type":"object","title":"Relation comparison","properties":{"relation":{"type":"string"},"operator":{"type":"string","enum":["=","!=",">","<",">=","<=","contains","doesNotContains","beginsWith","doesNotBeginsWith","endsWith","doesNotEndsWith"]},"value":{"oneOf":[{"type":"string","title":"string"},{"type":"number","title":"number"},{"type":"boolean","title":"boolean"},{"type":"array","items":{"type":"string"}}],"description":"The value to compare against."}},"required":["relation","operator","value"]},{"type":"object","title":"Property empty condition","properties":{"not":{"type":"boolean"},"property":{"type":"string"},"operator":{"type":"string","enum":["isEmpty","isNotEmpty"]}},"required":["property","operator"]},{"type":"object","title":"Relation empty condition","properties":{"not":{"type":"boolean"},"relation":{"type":"string"},"operator":{"type":"string","enum":["isEmpty","isNotEmpty"]}},"required":["relation","operator"]}]}}},"required":["combinator","conditions"]},"properties":{"type":"object","propertyNames":{"pattern":"^[A-Za-z0-9@_=\\\\-]+$"},"description":"An object containing the additional properties of the rule, in `\"key\":\"value\"` pairs where the `key` is the property's identifier, and the `value` is its value. Property keys must match custom properties you added to the `_rule` blueprint. On PUT, omitted keys are cleared; omit the field or pass `{}` to clear all additional properties. To learn more, see [extend the default scorecards](https://docs.port.io/governance/standards-and-compliance/examples/extend-data-model/)."},"relations":{"type":"object","propertyNames":{"anyOf":[{"pattern":"^[A-Za-z0-9@_=\\\\-]+$"},{"enum":["$team"]}],"not":{"enum":["scorecard"]}},"additionalProperties":{"oneOf":[{"type":"string"},{"type":"array","items":{"type":"string"}},{"type":"null"}]},"description":"An object containing the additional relations of the rule, in `\"key\":\"value\"` pairs where the `key` is the relation's identifier, and the `value` is the related entity identifier (or an array of identifiers). Relation keys must match custom relations you added to the `_rule` blueprint, or the `$team` owning-teams meta relation when ownership is configured. The `scorecard` relation is managed by Port and cannot be set here. On PUT, omitted keys are cleared; omit the field or pass `{}` to clear all additional relations. You can also pass `null` to clear a specific relation. To learn more, see [extend the default scorecards](https://docs.port.io/governance/standards-and-compliance/examples/extend-data-model/)."}},"required":["identifier","title","query"]}}}},"else":{"properties":{"rules":{"type":"array","items":{"type":"object","properties":{"identifier":{"type":"string","pattern":"^(?!\\.{1,2}$)[\\p{L}0-9@_.+:\\\\/='-]+$","maxLength":100},"title":{"type":"string"},"description":{"type":"string"},"level":{"type":"string","enum":["Gold","Silver","Bronze"]},"query":{"type":"object","properties":{"combinator":{"type":"string","enum":["and","or"],"description":"The combinator to use when evaluating the conditions."},"conditions":{"type":"array","minItems":1,"description":"The conditions to evaluate.","items":{"anyOf":[{"type":"object","title":"Property between condition","properties":{"property":{"type":"string"},"operator":{"enum":["between","notBetween","="]},"value":{"type":"object","oneOf":[{"type":"object","title":"Date range","properties":{"from":{"type":"string","format":"date-time"},"to":{"type":"string","format":"date-time"}},"required":["from","to"]},{"type":"object","title":"Preset date range","properties":{"preset":{"type":"string","enum":["today","tomorrow","yesterday","lastWeek","last2Weeks","lastMonth","last3Months","last6Months","last12Months"]}},"required":["preset"]}]}},"required":["property","operator","value"],"additionalProperties":false},{"type":"object","title":"Property containsAny condition","properties":{"property":{"type":"string"},"operator":{"type":"string","enum":["containsAny","in"]},"value":{"type":"array","items":{"type":"string"}}},"required":["property","operator","value"]},{"type":"object","title":"Relation containsAny condition","properties":{"relation":{"type":"string"},"operator":{"type":"string","enum":["containsAny","in"]},"value":{"type":"array","items":{"type":"string"}}},"required":["relation","operator","value"]},{"type":"object","title":"Property comparison","properties":{"property":{"type":"string"},"operator":{"type":"string","enum":["=","!=",">","<",">=","<=","contains","doesNotContains","beginsWith","doesNotBeginsWith","endsWith","doesNotEndsWith"]},"value":{"oneOf":[{"type":"string","title":"string"},{"type":"number","title":"number"},{"type":"boolean","title":"boolean"},{"type":"array","items":{"type":"string"}}],"description":"The value to compare against."}},"required":["property","operator","value"]},{"type":"object","title":"Relation comparison","properties":{"relation":{"type":"string"},"operator":{"type":"string","enum":["=","!=",">","<",">=","<=","contains","doesNotContains","beginsWith","doesNotBeginsWith","endsWith","doesNotEndsWith"]},"value":{"oneOf":[{"type":"string","title":"string"},{"type":"number","title":"number"},{"type":"boolean","title":"boolean"},{"type":"array","items":{"type":"string"}}],"description":"The value to compare against."}},"required":["relation","operator","value"]},{"type":"object","title":"Property empty condition","properties":{"not":{"type":"boolean"},"property":{"type":"string"},"operator":{"type":"string","enum":["isEmpty","isNotEmpty"]}},"required":["property","operator"]},{"type":"object","title":"Relation empty condition","properties":{"not":{"type":"boolean"},"relation":{"type":"string"},"operator":{"type":"string","enum":["isEmpty","isNotEmpty"]}},"required":["relation","operator"]}]}}},"required":["combinator","conditions"]},"properties":{"type":"object","propertyNames":{"pattern":"^[A-Za-z0-9@_=\\\\-]+$"},"description":"An object containing the additional properties of the rule, in `\"key\":\"value\"` pairs where the `key` is the property's identifier, and the `value` is its value. Property keys must match custom properties you added to the `_rule` blueprint. On PUT, omitted keys are cleared; omit the field or pass `{}` to clear all additional properties. To learn more, see [extend the default scorecards](https://docs.port.io/governance/standards-and-compliance/examples/extend-data-model/)."},"relations":{"type":"object","propertyNames":{"anyOf":[{"pattern":"^[A-Za-z0-9@_=\\\\-]+$"},{"enum":["$team"]}],"not":{"enum":["scorecard"]}},"additionalProperties":{"oneOf":[{"type":"string"},{"type":"array","items":{"type":"string"}},{"type":"null"}]},"description":"An object containing the additional relations of the rule, in `\"key\":\"value\"` pairs where the `key` is the relation's identifier, and the `value` is the related entity identifier (or an array of identifiers). Relation keys must match custom relations you added to the `_rule` blueprint, or the `$team` owning-teams meta relation when ownership is configured. The `scorecard` relation is managed by Port and cannot be set here. On PUT, omitted keys are cleared; omit the field or pass `{}` to clear all additional relations. You can also pass `null` to clear a specific relation. To learn more, see [extend the default scorecards](https://docs.port.io/governance/standards-and-compliance/examples/extend-data-model/)."}},"required":["identifier","title","query"]}}}},"additionalProperties":false,"required":["identifier","title","rules"]}}},"required":true},"parameters":[{"schema":{"type":"boolean","default":false},"in":"query","name":"includeAdditionalProperties","required":false,"description":"If true, the response includes the additional `properties` and `relations` set on the scorecard entity."},{"schema":{"type":"string","minLength":1},"in":"path","name":"blueprint_identifier","required":true,"description":"The identifier of the blueprint to operate on."}],"security":[{"bearer":[]}],"x-should-be-exposed-to-customers":true,"responses":{"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}},"413":{"description":"Request body is too large (limit is 1MiB)","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false,"description":"Request body is too large (limit is 1MiB)"}}}},"422":{"description":"The json provided does not match the route's schema","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"The json provided does not match the route's schema"}}}}}},"put":{"summary":"Change scorecards","tags":["Scorecards"],"description":"This route allows you to replace all scorecards of a given blueprint with the scorecards provided in the request body. A scorecard is a set of rules that define the quality of a blueprint.<br/><br/>**Note:** Any existing scorecard of the blueprint that is not included in the request body will be **deleted**. To modify a single scorecard without affecting the others, use the [Change a scorecard](https://docs.port.io/api-reference/change-a-scorecard/) endpoint (`PUT /v1/blueprints/{blueprint_identifier}/scorecards/{scorecard_identifier}`) instead.<br/><br/>To learn more about scorecards, check out the [documentation](https://docs.port.io/governance/standards-and-compliance/overview).","requestBody":{"content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"identifier":{"type":"string","pattern":"^(?!\\.{1,2}$)[\\p{L}0-9@_.+:\\\\/='-]+$","maxLength":100,"description":"A unique identifier for the scorecard."},"title":{"type":"string","description":"The title of the scorecard."},"filter":{"type":"object","properties":{"combinator":{"type":"string","enum":["and","or"],"description":"The combinator to use when evaluating the conditions."},"conditions":{"type":"array","minItems":1,"description":"The conditions to evaluate.","items":{"anyOf":[{"type":"object","title":"Property between condition","properties":{"property":{"type":"string"},"operator":{"enum":["between","notBetween","="]},"value":{"type":"object","oneOf":[{"type":"object","title":"Date range","properties":{"from":{"type":"string","format":"date-time"},"to":{"type":"string","format":"date-time"}},"required":["from","to"]},{"type":"object","title":"Preset date range","properties":{"preset":{"type":"string","enum":["today","tomorrow","yesterday","lastWeek","last2Weeks","lastMonth","last3Months","last6Months","last12Months"]}},"required":["preset"]}]}},"required":["property","operator","value"],"additionalProperties":false},{"type":"object","title":"Property containsAny condition","properties":{"property":{"type":"string"},"operator":{"type":"string","enum":["containsAny","in"]},"value":{"type":"array","items":{"type":"string"}}},"required":["property","operator","value"]},{"type":"object","title":"Relation containsAny condition","properties":{"relation":{"type":"string"},"operator":{"type":"string","enum":["containsAny","in"]},"value":{"type":"array","items":{"type":"string"}}},"required":["relation","operator","value"]},{"type":"object","title":"Property comparison","properties":{"property":{"type":"string"},"operator":{"type":"string","enum":["=","!=",">","<",">=","<=","contains","doesNotContains","beginsWith","doesNotBeginsWith","endsWith","doesNotEndsWith"]},"value":{"oneOf":[{"type":"string","title":"string"},{"type":"number","title":"number"},{"type":"boolean","title":"boolean"},{"type":"array","items":{"type":"string"}}],"description":"The value to compare against."}},"required":["property","operator","value"]},{"type":"object","title":"Relation comparison","properties":{"relation":{"type":"string"},"operator":{"type":"string","enum":["=","!=",">","<",">=","<=","contains","doesNotContains","beginsWith","doesNotBeginsWith","endsWith","doesNotEndsWith"]},"value":{"oneOf":[{"type":"string","title":"string"},{"type":"number","title":"number"},{"type":"boolean","title":"boolean"},{"type":"array","items":{"type":"string"}}],"description":"The value to compare against."}},"required":["relation","operator","value"]},{"type":"object","title":"Property empty condition","properties":{"not":{"type":"boolean"},"property":{"type":"string"},"operator":{"type":"string","enum":["isEmpty","isNotEmpty"]}},"required":["property","operator"]},{"type":"object","title":"Relation empty condition","properties":{"not":{"type":"boolean"},"relation":{"type":"string"},"operator":{"type":"string","enum":["isEmpty","isNotEmpty"]}},"required":["relation","operator"]}]}}},"required":["combinator","conditions"],"description":"An optional set of [conditions](https://docs.port.io/governance/standards-and-compliance/concepts-and-structure/#filter-elements) to filter entities that will be evaluated by the scorecard."},"properties":{"type":"object","propertyNames":{"pattern":"^[A-Za-z0-9@_=\\\\-]+$"},"description":"An object containing the additional properties of the scorecard, in `\"key\":\"value\"` pairs where the `key` is the property's identifier, and the `value` is its value. Property keys must match custom properties you added to the `_scorecard` blueprint. On PUT, omitted keys are cleared; omit the field or pass `{}` to clear all additional properties. To learn more, see [extend the default scorecards](https://docs.port.io/governance/standards-and-compliance/examples/extend-data-model/)."},"relations":{"type":"object","propertyNames":{"anyOf":[{"pattern":"^[A-Za-z0-9@_=\\\\-]+$"},{"enum":["$team"]}],"not":{"enum":["group"]}},"additionalProperties":{"oneOf":[{"type":"string"},{"type":"array","items":{"type":"string"}},{"type":"null"}]},"description":"An object containing the additional relations of the scorecard, in `\"key\":\"value\"` pairs where the `key` is the relation's identifier, and the `value` is the related entity identifier (or an array of identifiers). Relation keys must match custom relations you added to the `_scorecard` blueprint, or the `$team` owning-teams meta relation when ownership is configured. The `group` relation is managed by Port and cannot be set here. On PUT, omitted keys are cleared; omit the field or pass `{}` to clear all additional relations. You can also pass `null` to clear a specific relation. To learn more, see [extend the default scorecards](https://docs.port.io/governance/standards-and-compliance/examples/extend-data-model/)."},"rules":{"type":"array","description":"The [rules](https://docs.port.io/governance/standards-and-compliance/concepts-and-structure/#rule-elements) that define the scorecard.","items":{"type":"object","properties":{"identifier":{"type":"string","pattern":"^[A-Za-z0-9@_=\\\\-]+$","maxLength":100,"description":"The identifier of the rule."},"title":{"type":"string","description":"The title of the rule."},"description":{"type":"string","description":"A description for the rule."},"level":{"type":"string","description":"The title of the level this rule belongs to. It must be one of the levels defined on the scorecard."},"query":{"type":"object","properties":{"combinator":{"type":"string","enum":["and","or"],"description":"The combinator to use when evaluating the conditions."},"conditions":{"type":"array","minItems":1,"description":"The conditions to evaluate.","items":{"anyOf":[{"type":"object","title":"Property between condition","properties":{"property":{"type":"string"},"operator":{"enum":["between","notBetween","="]},"value":{"type":"object","oneOf":[{"type":"object","title":"Date range","properties":{"from":{"type":"string","format":"date-time"},"to":{"type":"string","format":"date-time"}},"required":["from","to"]},{"type":"object","title":"Preset date range","properties":{"preset":{"type":"string","enum":["today","tomorrow","yesterday","lastWeek","last2Weeks","lastMonth","last3Months","last6Months","last12Months"]}},"required":["preset"]}]}},"required":["property","operator","value"],"additionalProperties":false},{"type":"object","title":"Property containsAny condition","properties":{"property":{"type":"string"},"operator":{"type":"string","enum":["containsAny","in"]},"value":{"type":"array","items":{"type":"string"}}},"required":["property","operator","value"]},{"type":"object","title":"Relation containsAny condition","properties":{"relation":{"type":"string"},"operator":{"type":"string","enum":["containsAny","in"]},"value":{"type":"array","items":{"type":"string"}}},"required":["relation","operator","value"]},{"type":"object","title":"Property comparison","properties":{"property":{"type":"string"},"operator":{"type":"string","enum":["=","!=",">","<",">=","<=","contains","doesNotContains","beginsWith","doesNotBeginsWith","endsWith","doesNotEndsWith"]},"value":{"oneOf":[{"type":"string","title":"string"},{"type":"number","title":"number"},{"type":"boolean","title":"boolean"},{"type":"array","items":{"type":"string"}}],"description":"The value to compare against."}},"required":["property","operator","value"]},{"type":"object","title":"Relation comparison","properties":{"relation":{"type":"string"},"operator":{"type":"string","enum":["=","!=",">","<",">=","<=","contains","doesNotContains","beginsWith","doesNotBeginsWith","endsWith","doesNotEndsWith"]},"value":{"oneOf":[{"type":"string","title":"string"},{"type":"number","title":"number"},{"type":"boolean","title":"boolean"},{"type":"array","items":{"type":"string"}}],"description":"The value to compare against."}},"required":["relation","operator","value"]},{"type":"object","title":"Property empty condition","properties":{"not":{"type":"boolean"},"property":{"type":"string"},"operator":{"type":"string","enum":["isEmpty","isNotEmpty"]}},"required":["property","operator"]},{"type":"object","title":"Relation empty condition","properties":{"not":{"type":"boolean"},"relation":{"type":"string"},"operator":{"type":"string","enum":["isEmpty","isNotEmpty"]}},"required":["relation","operator"]}]}}},"required":["combinator","conditions"],"description":"The query that defines the rule."},"properties":{"type":"object","propertyNames":{"pattern":"^[A-Za-z0-9@_=\\\\-]+$"},"description":"An object containing the additional properties of the rule, in `\"key\":\"value\"` pairs where the `key` is the property's identifier, and the `value` is its value. Property keys must match custom properties you added to the `_rule` blueprint. On PUT, omitted keys are cleared; omit the field or pass `{}` to clear all additional properties. To learn more, see [extend the default scorecards](https://docs.port.io/governance/standards-and-compliance/examples/extend-data-model/)."},"relations":{"type":"object","propertyNames":{"anyOf":[{"pattern":"^[A-Za-z0-9@_=\\\\-]+$"},{"enum":["$team"]}],"not":{"enum":["scorecard"]}},"additionalProperties":{"oneOf":[{"type":"string"},{"type":"array","items":{"type":"string"}},{"type":"null"}]},"description":"An object containing the additional relations of the rule, in `\"key\":\"value\"` pairs where the `key` is the relation's identifier, and the `value` is the related entity identifier (or an array of identifiers). Relation keys must match custom relations you added to the `_rule` blueprint, or the `$team` owning-teams meta relation when ownership is configured. The `scorecard` relation is managed by Port and cannot be set here. On PUT, omitted keys are cleared; omit the field or pass `{}` to clear all additional relations. You can also pass `null` to clear a specific relation. To learn more, see [extend the default scorecards](https://docs.port.io/governance/standards-and-compliance/examples/extend-data-model/)."}},"required":["identifier","title","level","query"]}},"levels":{"type":"array","description":"The available levels of the scorecard, each with its own name and color.","items":{"type":"object","properties":{"title":{"type":"string","description":"The name of the level."},"color":{"type":"string","enum":["blue","turquoise","orange","purple","pink","yellow","green","red","gold","silver","paleBlue","darkGray","lightGray","bronze","lime","olive","brown"],"description":"The color associated with the level, for visualization in Port's UI."}},"required":["title","color"]}},"id":{"type":"string"}},"additionalProperties":false,"required":["identifier","title","rules"]}}}}},"parameters":[{"schema":{"type":"string","minLength":1},"in":"path","name":"blueprint_identifier","required":true,"description":"The identifier of the blueprint to operate on."}],"security":[{"bearer":[]}],"x-should-be-exposed-to-customers":true,"responses":{"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}},"413":{"description":"Request body is too large (limit is 1MiB)","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false,"description":"Request body is too large (limit is 1MiB)"}}}},"422":{"description":"The json provided does not match the route's schema","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"The json provided does not match the route's schema"}}}}}},"get":{"summary":"Get a blueprint's scorecards","tags":["Scorecards"],"description":"This route allows you to fetch all scorecards for a given blueprint. A scorecard is a set of rules that define the quality of a blueprint.<br/><br/>To learn more about scorecards, check out the [documentation](https://docs.port.io/governance/standards-and-compliance/overview).","parameters":[{"schema":{"type":"string","minLength":1},"in":"path","name":"blueprint_identifier","required":true,"description":"The identifier of the blueprint to operate on."}],"security":[{"bearer":["read:scorecards"]}],"x-should-be-exposed-to-customers":true,"responses":{"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}}}}},"/v1/blueprints/{blueprint_identifier}/scorecards/{scorecard_identifier}":{"put":{"summary":"Change a scorecard","tags":["Scorecards"],"description":"This route allows you to modify a specific scorecard. A scorecard is a set of rules that define the quality of a blueprint.<br/><br/>To learn more about scorecards, check out the [documentation](https://docs.port.io/governance/standards-and-compliance/overview).","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"identifier":{"type":"string","pattern":"^(?!\\.{1,2}$)[\\p{L}0-9@_.+:\\\\/='-]+$","maxLength":100,"description":"A unique identifier for the scorecard."},"title":{"type":"string","description":"The title of the scorecard."},"filter":{"type":"object","properties":{"combinator":{"type":"string","enum":["and","or"],"description":"The combinator to use when evaluating the conditions."},"conditions":{"type":"array","minItems":1,"description":"The conditions to evaluate.","items":{"anyOf":[{"type":"object","title":"Property between condition","properties":{"property":{"type":"string"},"operator":{"enum":["between","notBetween","="]},"value":{"type":"object","oneOf":[{"type":"object","title":"Date range","properties":{"from":{"type":"string","format":"date-time"},"to":{"type":"string","format":"date-time"}},"required":["from","to"]},{"type":"object","title":"Preset date range","properties":{"preset":{"type":"string","enum":["today","tomorrow","yesterday","lastWeek","last2Weeks","lastMonth","last3Months","last6Months","last12Months"]}},"required":["preset"]}]}},"required":["property","operator","value"],"additionalProperties":false},{"type":"object","title":"Property containsAny condition","properties":{"property":{"type":"string"},"operator":{"type":"string","enum":["containsAny","in"]},"value":{"type":"array","items":{"type":"string"}}},"required":["property","operator","value"]},{"type":"object","title":"Relation containsAny condition","properties":{"relation":{"type":"string"},"operator":{"type":"string","enum":["containsAny","in"]},"value":{"type":"array","items":{"type":"string"}}},"required":["relation","operator","value"]},{"type":"object","title":"Property comparison","properties":{"property":{"type":"string"},"operator":{"type":"string","enum":["=","!=",">","<",">=","<=","contains","doesNotContains","beginsWith","doesNotBeginsWith","endsWith","doesNotEndsWith"]},"value":{"oneOf":[{"type":"string","title":"string"},{"type":"number","title":"number"},{"type":"boolean","title":"boolean"},{"type":"array","items":{"type":"string"}}],"description":"The value to compare against."}},"required":["property","operator","value"]},{"type":"object","title":"Relation comparison","properties":{"relation":{"type":"string"},"operator":{"type":"string","enum":["=","!=",">","<",">=","<=","contains","doesNotContains","beginsWith","doesNotBeginsWith","endsWith","doesNotEndsWith"]},"value":{"oneOf":[{"type":"string","title":"string"},{"type":"number","title":"number"},{"type":"boolean","title":"boolean"},{"type":"array","items":{"type":"string"}}],"description":"The value to compare against."}},"required":["relation","operator","value"]},{"type":"object","title":"Property empty condition","properties":{"not":{"type":"boolean"},"property":{"type":"string"},"operator":{"type":"string","enum":["isEmpty","isNotEmpty"]}},"required":["property","operator"]},{"type":"object","title":"Relation empty condition","properties":{"not":{"type":"boolean"},"relation":{"type":"string"},"operator":{"type":"string","enum":["isEmpty","isNotEmpty"]}},"required":["relation","operator"]}]}}},"required":["combinator","conditions"],"description":"An optional set of [conditions](https://docs.port.io/governance/standards-and-compliance/concepts-and-structure/#filter-elements) to filter entities that will be evaluated by the scorecard."},"properties":{"type":"object","propertyNames":{"pattern":"^[A-Za-z0-9@_=\\\\-]+$"},"description":"An object containing the additional properties of the scorecard, in `\"key\":\"value\"` pairs where the `key` is the property's identifier, and the `value` is its value. Property keys must match custom properties you added to the `_scorecard` blueprint. On PUT, omitted keys are cleared; omit the field or pass `{}` to clear all additional properties. To learn more, see [extend the default scorecards](https://docs.port.io/governance/standards-and-compliance/examples/extend-data-model/)."},"relations":{"type":"object","propertyNames":{"anyOf":[{"pattern":"^[A-Za-z0-9@_=\\\\-]+$"},{"enum":["$team"]}],"not":{"enum":["group"]}},"additionalProperties":{"oneOf":[{"type":"string"},{"type":"array","items":{"type":"string"}},{"type":"null"}]},"description":"An object containing the additional relations of the scorecard, in `\"key\":\"value\"` pairs where the `key` is the relation's identifier, and the `value` is the related entity identifier (or an array of identifiers). Relation keys must match custom relations you added to the `_scorecard` blueprint, or the `$team` owning-teams meta relation when ownership is configured. The `group` relation is managed by Port and cannot be set here. On PUT, omitted keys are cleared; omit the field or pass `{}` to clear all additional relations. You can also pass `null` to clear a specific relation. To learn more, see [extend the default scorecards](https://docs.port.io/governance/standards-and-compliance/examples/extend-data-model/)."},"rules":{"type":"array","description":"The [rules](https://docs.port.io/governance/standards-and-compliance/concepts-and-structure/#rule-elements) that define the scorecard.","items":{"type":"object","properties":{"identifier":{"type":"string","pattern":"^[A-Za-z0-9@_=\\\\-]+$","maxLength":100,"description":"The identifier of the rule."},"title":{"type":"string","description":"The title of the rule."},"description":{"type":"string","description":"A description for the rule."},"level":{"type":"string","description":"The title of the level this rule belongs to. It must be one of the levels defined on the scorecard."},"query":{"type":"object","properties":{"combinator":{"type":"string","enum":["and","or"],"description":"The combinator to use when evaluating the conditions."},"conditions":{"type":"array","minItems":1,"description":"The conditions to evaluate.","items":{"anyOf":[{"type":"object","title":"Property between condition","properties":{"property":{"type":"string"},"operator":{"enum":["between","notBetween","="]},"value":{"type":"object","oneOf":[{"type":"object","title":"Date range","properties":{"from":{"type":"string","format":"date-time"},"to":{"type":"string","format":"date-time"}},"required":["from","to"]},{"type":"object","title":"Preset date range","properties":{"preset":{"type":"string","enum":["today","tomorrow","yesterday","lastWeek","last2Weeks","lastMonth","last3Months","last6Months","last12Months"]}},"required":["preset"]}]}},"required":["property","operator","value"],"additionalProperties":false},{"type":"object","title":"Property containsAny condition","properties":{"property":{"type":"string"},"operator":{"type":"string","enum":["containsAny","in"]},"value":{"type":"array","items":{"type":"string"}}},"required":["property","operator","value"]},{"type":"object","title":"Relation containsAny condition","properties":{"relation":{"type":"string"},"operator":{"type":"string","enum":["containsAny","in"]},"value":{"type":"array","items":{"type":"string"}}},"required":["relation","operator","value"]},{"type":"object","title":"Property comparison","properties":{"property":{"type":"string"},"operator":{"type":"string","enum":["=","!=",">","<",">=","<=","contains","doesNotContains","beginsWith","doesNotBeginsWith","endsWith","doesNotEndsWith"]},"value":{"oneOf":[{"type":"string","title":"string"},{"type":"number","title":"number"},{"type":"boolean","title":"boolean"},{"type":"array","items":{"type":"string"}}],"description":"The value to compare against."}},"required":["property","operator","value"]},{"type":"object","title":"Relation comparison","properties":{"relation":{"type":"string"},"operator":{"type":"string","enum":["=","!=",">","<",">=","<=","contains","doesNotContains","beginsWith","doesNotBeginsWith","endsWith","doesNotEndsWith"]},"value":{"oneOf":[{"type":"string","title":"string"},{"type":"number","title":"number"},{"type":"boolean","title":"boolean"},{"type":"array","items":{"type":"string"}}],"description":"The value to compare against."}},"required":["relation","operator","value"]},{"type":"object","title":"Property empty condition","properties":{"not":{"type":"boolean"},"property":{"type":"string"},"operator":{"type":"string","enum":["isEmpty","isNotEmpty"]}},"required":["property","operator"]},{"type":"object","title":"Relation empty condition","properties":{"not":{"type":"boolean"},"relation":{"type":"string"},"operator":{"type":"string","enum":["isEmpty","isNotEmpty"]}},"required":["relation","operator"]}]}}},"required":["combinator","conditions"],"description":"The query that defines the rule."},"properties":{"type":"object","propertyNames":{"pattern":"^[A-Za-z0-9@_=\\\\-]+$"},"description":"An object containing the additional properties of the rule, in `\"key\":\"value\"` pairs where the `key` is the property's identifier, and the `value` is its value. Property keys must match custom properties you added to the `_rule` blueprint. On PUT, omitted keys are cleared; omit the field or pass `{}` to clear all additional properties. To learn more, see [extend the default scorecards](https://docs.port.io/governance/standards-and-compliance/examples/extend-data-model/)."},"relations":{"type":"object","propertyNames":{"anyOf":[{"pattern":"^[A-Za-z0-9@_=\\\\-]+$"},{"enum":["$team"]}],"not":{"enum":["scorecard"]}},"additionalProperties":{"oneOf":[{"type":"string"},{"type":"array","items":{"type":"string"}},{"type":"null"}]},"description":"An object containing the additional relations of the rule, in `\"key\":\"value\"` pairs where the `key` is the relation's identifier, and the `value` is the related entity identifier (or an array of identifiers). Relation keys must match custom relations you added to the `_rule` blueprint, or the `$team` owning-teams meta relation when ownership is configured. The `scorecard` relation is managed by Port and cannot be set here. On PUT, omitted keys are cleared; omit the field or pass `{}` to clear all additional relations. You can also pass `null` to clear a specific relation. To learn more, see [extend the default scorecards](https://docs.port.io/governance/standards-and-compliance/examples/extend-data-model/)."}},"required":["identifier","title","level","query"]}},"levels":{"type":"array","description":"The available levels of the scorecard, each with its own name and color.","items":{"type":"object","properties":{"title":{"type":"string","description":"The name of the level."},"color":{"type":"string","enum":["blue","turquoise","orange","purple","pink","yellow","green","red","gold","silver","paleBlue","darkGray","lightGray","bronze","lime","olive","brown"],"description":"The color associated with the level, for visualization in Port's UI."}},"required":["title","color"]}}},"additionalProperties":false,"required":["identifier","title","rules"]}}},"required":true},"parameters":[{"schema":{"type":"string","minLength":1},"in":"path","name":"scorecard_identifier","required":true,"description":"The identifier of the scorecard to operate on."},{"schema":{"type":"string","minLength":1},"in":"path","name":"blueprint_identifier","required":true,"description":"The identifier of the blueprint containing the scorecard."}],"security":[{"bearer":[]}],"x-should-be-exposed-to-customers":true,"responses":{"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}},"413":{"description":"Request body is too large (limit is 1MiB)","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false,"description":"Request body is too large (limit is 1MiB)"}}}},"422":{"description":"The json provided does not match the route's schema","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"The json provided does not match the route's schema"}}}}}},"get":{"summary":"Get a scorecard","tags":["Scorecards"],"description":"This route allows you to fetch a specific scorecard. A scorecard is a set of rules that define the quality of a blueprint.<br/><br/>To learn more about scorecards, check out the [documentation](https://docs.port.io/governance/standards-and-compliance/overview).","parameters":[{"schema":{"type":"string","minLength":1},"in":"path","name":"scorecard_identifier","required":true,"description":"The identifier of the scorecard to operate on."},{"schema":{"type":"string","minLength":1},"in":"path","name":"blueprint_identifier","required":true,"description":"The identifier of the blueprint containing the scorecard."}],"security":[{"bearer":["read:scorecards"]}],"x-should-be-exposed-to-customers":true,"responses":{"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}}}},"delete":{"summary":"Delete a scorecard","tags":["Scorecards"],"description":"This route allows you to delete a specific scorecard. A scorecard is a set of rules that define the quality of a blueprint.<br/><br/>To learn more about scorecards, check out the [documentation](https://docs.port.io/governance/standards-and-compliance/overview).","parameters":[{"schema":{"type":"string","minLength":1},"in":"path","name":"scorecard_identifier","required":true,"description":"The identifier of the scorecard to operate on."},{"schema":{"type":"string","minLength":1},"in":"path","name":"blueprint_identifier","required":true,"description":"The identifier of the blueprint containing the scorecard."}],"security":[{"bearer":[]}],"x-should-be-exposed-to-customers":true,"responses":{"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}},"413":{"description":"Request body is too large (limit is 1MiB)","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false,"description":"Request body is too large (limit is 1MiB)"}}}},"422":{"description":"The json provided does not match the route's schema","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"The json provided does not match the route's schema"}}}}}}},"/v1/scorecards":{"get":{"summary":"Get all scorecards","tags":["Scorecards"],"description":"This route allows you to fetch all scorecards in your Port organization.<br/><br/>To learn more about scorecards, check out the [documentation](https://docs.port.io/governance/standards-and-compliance/overview).","security":[{"bearer":["read:scorecards"]}],"x-should-be-exposed-to-customers":true,"responses":{"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}}}}},"/v1/scorecard-groups":{"post":{"summary":"Create a scorecard group and related scorecards","tags":["Scorecard Groups"],"description":"This route creates a scorecard group and the related scorecards under it. Provide either a per-blueprint `scorecards` map or shared `blueprints` + `rules`. Related scorecards are created as `{blueprint}_{groupIdentifier}` and linked via `relations.group`.<br/><br/>Pass `groupProperties` to set additional properties on the scorecard group entity (`_scorecard_group` blueprint), and `scorecardProperties` to set additional properties on every related scorecard (`_scorecard` blueprint). Property keys must match custom properties you added to the corresponding blueprint. Pass `groupRelations` and `scorecardRelations` to set additional relations on the same entities; relation keys must match custom relations you added to the corresponding blueprint. On PUT, omitted relation keys are cleared; you can also pass `null` to clear a specific relation. To learn more, see [extend the default scorecards](https://docs.port.io/governance/standards-and-compliance/examples/extend-data-model/).<br/><br/>This is a closed beta feature. To learn more about scorecards, check out the [documentation](https://docs.port.io/governance/standards-and-compliance/overview).","requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"identifier":{"type":"string","maxLength":100,"pattern":"^(?!\\.{1,2}$)[\\p{L}0-9@_.+:\\\\/='-]+$","description":"A unique identifier for the scorecard group (logical id)."},"title":{"type":"string","description":"The title of the scorecard group (applied to all member scorecards)."},"levels":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string","description":"The name of the level."},"color":{"type":"string","enum":["blue","turquoise","orange","purple","pink","yellow","green","red","gold","silver","paleBlue","darkGray","lightGray","bronze","lime","olive","brown"],"description":"The color associated with the level, for visualization in Port's UI."}},"required":["title","color"],"additionalProperties":false},"description":"The available levels of the scorecard group, shared by all members."},"groupProperties":{"type":"object","propertyNames":{"type":"string","pattern":"^[A-Za-z0-9@_=\\\\-]+$"},"additionalProperties":{},"description":"Additional `_scorecard_group` blueprint properties applied to the scorecard group entity. Property keys must match custom properties you added to the `_scorecard_group` blueprint. To learn more, see [extend the default scorecards](https://docs.port.io/governance/standards-and-compliance/examples/extend-data-model/)."},"scorecardProperties":{"type":"object","propertyNames":{"type":"string","pattern":"^[A-Za-z0-9@_=\\\\-]+$"},"additionalProperties":{},"description":"Additional `_scorecard` blueprint properties applied to every member scorecard in the group. Property keys must match custom properties you added to the `_scorecard` blueprint. To learn more, see [extend the default scorecards](https://docs.port.io/governance/standards-and-compliance/examples/extend-data-model/)."},"groupRelations":{"type":"object","propertyNames":{"anyOf":[{"type":"string","pattern":"^[A-Za-z0-9@_=\\\\-]+$"},{"type":"string","enum":["$team"]}]},"additionalProperties":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}},{"type":"null"}]},"description":"Additional `_scorecard_group` blueprint relations applied to the scorecard group entity. Relation keys must match custom relations you added to the `_scorecard_group` blueprint, or the `$team` owning-teams meta relation when ownership is configured. Pass `null` to clear a relation, or omit a key to clear it on PUT. To learn more, see [extend the default scorecards](https://docs.port.io/governance/standards-and-compliance/examples/extend-data-model/)."},"scorecardRelations":{"type":"object","propertyNames":{"anyOf":[{"type":"string","pattern":"^[A-Za-z0-9@_=\\\\-]+$"},{"type":"string","enum":["$team"]}]},"additionalProperties":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}},{"type":"null"}]},"description":"Additional `_scorecard` blueprint relations applied to every member scorecard in the group. Relation keys must match custom relations you added to the `_scorecard` blueprint, or the `$team` owning-teams meta relation when ownership is configured. The `group` relation is managed by Port and cannot be set here. Pass `null` to clear a relation, or omit a key to clear it on PUT. To learn more, see [extend the default scorecards](https://docs.port.io/governance/standards-and-compliance/examples/extend-data-model/)."},"scorecards":{"type":"object","propertyNames":{"type":"string","maxLength":100,"pattern":"^(?!\\.{1,2}$)[\\p{L}0-9@_.+:\\\\/='-]+$"},"additionalProperties":{"type":"object","properties":{"filter":{"description":"An optional set of [conditions](https://docs.port.io/governance/standards-and-compliance/concepts-and-structure/#filter-elements) to filter entities that will be evaluated by this member scorecard.","anyOf":[{"type":"object","properties":{"combinator":{"type":"string","enum":["and","or"],"description":"The combinator to use when evaluating the conditions."},"conditions":{"minItems":1,"type":"array","items":{"anyOf":[{"type":"object","properties":{"property":{"type":"string"},"operator":{"type":"string","enum":["between","notBetween","="]},"value":{"anyOf":[{"type":"object","properties":{"from":{"type":"string"},"to":{"type":"string"}},"required":["from","to"],"additionalProperties":false},{"type":"object","properties":{"preset":{"type":"string","enum":["today","tomorrow","yesterday","lastWeek","last2Weeks","lastMonth","last3Months","last6Months","last12Months"]}},"required":["preset"],"additionalProperties":false}]}},"required":["property","operator","value"],"additionalProperties":false},{"type":"object","properties":{"property":{"type":"string"},"operator":{"type":"string","enum":["containsAny","in"]},"value":{"type":"array","items":{"type":"string"}}},"required":["property","operator","value"],"additionalProperties":false},{"type":"object","properties":{"relation":{"type":"string"},"operator":{"type":"string","enum":["containsAny","in"]},"value":{"type":"array","items":{"type":"string"}}},"required":["relation","operator","value"],"additionalProperties":false},{"type":"object","properties":{"property":{"type":"string"},"operator":{"type":"string","enum":["=","!=",">","<",">=","<=","contains","doesNotContains","beginsWith","doesNotBeginsWith","endsWith","doesNotEndsWith"]},"value":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"array","items":{"type":"string"}}]}},"required":["property","operator","value"],"additionalProperties":false},{"type":"object","properties":{"relation":{"type":"string"},"operator":{"type":"string","enum":["=","!=",">","<",">=","<=","contains","doesNotContains","beginsWith","doesNotBeginsWith","endsWith","doesNotEndsWith"]},"value":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"array","items":{"type":"string"}}]}},"required":["relation","operator","value"],"additionalProperties":false},{"type":"object","properties":{"not":{"type":"boolean"},"property":{"type":"string"},"operator":{"type":"string","enum":["isEmpty","isNotEmpty"]}},"required":["property","operator"],"additionalProperties":false},{"type":"object","properties":{"not":{"type":"boolean"},"relation":{"type":"string"},"operator":{"type":"string","enum":["isEmpty","isNotEmpty"]}},"required":["relation","operator"],"additionalProperties":false}]},"description":"The conditions to evaluate."}},"required":["combinator","conditions"],"additionalProperties":false},{"type":"null"}]},"rules":{"type":"array","items":{"type":"object","properties":{"identifier":{"type":"string","maxLength":100,"pattern":"^[A-Za-z0-9@_=\\\\-]+$","description":"The identifier of the rule."},"title":{"type":"string","description":"The title of the rule."},"description":{"description":"A description for the rule.","type":"string"},"level":{"type":"string","description":"The level of the rule."},"query":{"type":"object","properties":{"combinator":{"type":"string","enum":["and","or"],"description":"The combinator to use when evaluating the conditions."},"conditions":{"minItems":1,"type":"array","items":{"anyOf":[{"type":"object","properties":{"property":{"type":"string"},"operator":{"type":"string","enum":["between","notBetween","="]},"value":{"anyOf":[{"type":"object","properties":{"from":{"type":"string"},"to":{"type":"string"}},"required":["from","to"],"additionalProperties":false},{"type":"object","properties":{"preset":{"type":"string","enum":["today","tomorrow","yesterday","lastWeek","last2Weeks","lastMonth","last3Months","last6Months","last12Months"]}},"required":["preset"],"additionalProperties":false}]}},"required":["property","operator","value"],"additionalProperties":false},{"type":"object","properties":{"property":{"type":"string"},"operator":{"type":"string","enum":["containsAny","in"]},"value":{"type":"array","items":{"type":"string"}}},"required":["property","operator","value"],"additionalProperties":false},{"type":"object","properties":{"relation":{"type":"string"},"operator":{"type":"string","enum":["containsAny","in"]},"value":{"type":"array","items":{"type":"string"}}},"required":["relation","operator","value"],"additionalProperties":false},{"type":"object","properties":{"property":{"type":"string"},"operator":{"type":"string","enum":["=","!=",">","<",">=","<=","contains","doesNotContains","beginsWith","doesNotBeginsWith","endsWith","doesNotEndsWith"]},"value":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"array","items":{"type":"string"}}]}},"required":["property","operator","value"],"additionalProperties":false},{"type":"object","properties":{"relation":{"type":"string"},"operator":{"type":"string","enum":["=","!=",">","<",">=","<=","contains","doesNotContains","beginsWith","doesNotBeginsWith","endsWith","doesNotEndsWith"]},"value":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"array","items":{"type":"string"}}]}},"required":["relation","operator","value"],"additionalProperties":false},{"type":"object","properties":{"not":{"type":"boolean"},"property":{"type":"string"},"operator":{"type":"string","enum":["isEmpty","isNotEmpty"]}},"required":["property","operator"],"additionalProperties":false},{"type":"object","properties":{"not":{"type":"boolean"},"relation":{"type":"string"},"operator":{"type":"string","enum":["isEmpty","isNotEmpty"]}},"required":["relation","operator"],"additionalProperties":false}]},"description":"The conditions to evaluate."}},"required":["combinator","conditions"],"additionalProperties":false,"description":"The query that defines the rule."},"properties":{"type":"object","propertyNames":{"type":"string","pattern":"^[A-Za-z0-9@_=\\\\-]+$"},"additionalProperties":{},"description":"Additional `_rule` blueprint properties applied to this rule. Property keys must match custom properties you added to the `_rule` blueprint. On PUT, omitted keys are cleared; omit the field or pass `{}` to clear all additional properties. To learn more, see [extend the default scorecards](https://docs.port.io/governance/standards-and-compliance/examples/extend-data-model/)."},"relations":{"type":"object","propertyNames":{"anyOf":[{"type":"string","pattern":"^[A-Za-z0-9@_=\\\\-]+$"},{"type":"string","enum":["$team"]}]},"additionalProperties":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}},{"type":"null"}]},"description":"Additional `_rule` blueprint relations applied to this rule. Relation keys must match custom relations you added to the `_rule` blueprint, or the `$team` owning-teams meta relation when ownership is configured. The `scorecard` relation is managed by Port and cannot be set here. Pass `null` to clear a relation, or omit a key to clear it on PUT. To learn more, see [extend the default scorecards](https://docs.port.io/governance/standards-and-compliance/examples/extend-data-model/)."}},"required":["identifier","title","level","query"],"additionalProperties":false},"description":"The [rules](https://docs.port.io/governance/standards-and-compliance/concepts-and-structure/#rule-elements) that define this member scorecard."}},"required":["rules"],"additionalProperties":false},"description":"Map of blueprint identifier → member scorecard filter/rules. Requires at least 1 blueprint."}},"required":["identifier","title","scorecards"],"additionalProperties":false,"title":"Per-blueprint scorecards"},{"type":"object","properties":{"identifier":{"type":"string","maxLength":100,"pattern":"^(?!\\.{1,2}$)[\\p{L}0-9@_.+:\\\\/='-]+$","description":"A unique identifier for the scorecard group (logical id)."},"title":{"type":"string","description":"The title of the scorecard group (applied to all member scorecards)."},"levels":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string","description":"The name of the level."},"color":{"type":"string","enum":["blue","turquoise","orange","purple","pink","yellow","green","red","gold","silver","paleBlue","darkGray","lightGray","bronze","lime","olive","brown"],"description":"The color associated with the level, for visualization in Port's UI."}},"required":["title","color"],"additionalProperties":false},"description":"The available levels of the scorecard group, shared by all members."},"groupProperties":{"type":"object","propertyNames":{"type":"string","pattern":"^[A-Za-z0-9@_=\\\\-]+$"},"additionalProperties":{},"description":"Additional `_scorecard_group` blueprint properties applied to the scorecard group entity. Property keys must match custom properties you added to the `_scorecard_group` blueprint. To learn more, see [extend the default scorecards](https://docs.port.io/governance/standards-and-compliance/examples/extend-data-model/)."},"scorecardProperties":{"type":"object","propertyNames":{"type":"string","pattern":"^[A-Za-z0-9@_=\\\\-]+$"},"additionalProperties":{},"description":"Additional `_scorecard` blueprint properties applied to every member scorecard in the group. Property keys must match custom properties you added to the `_scorecard` blueprint. To learn more, see [extend the default scorecards](https://docs.port.io/governance/standards-and-compliance/examples/extend-data-model/)."},"groupRelations":{"type":"object","propertyNames":{"anyOf":[{"type":"string","pattern":"^[A-Za-z0-9@_=\\\\-]+$"},{"type":"string","enum":["$team"]}]},"additionalProperties":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}},{"type":"null"}]},"description":"Additional `_scorecard_group` blueprint relations applied to the scorecard group entity. Relation keys must match custom relations you added to the `_scorecard_group` blueprint, or the `$team` owning-teams meta relation when ownership is configured. Pass `null` to clear a relation, or omit a key to clear it on PUT. To learn more, see [extend the default scorecards](https://docs.port.io/governance/standards-and-compliance/examples/extend-data-model/)."},"scorecardRelations":{"type":"object","propertyNames":{"anyOf":[{"type":"string","pattern":"^[A-Za-z0-9@_=\\\\-]+$"},{"type":"string","enum":["$team"]}]},"additionalProperties":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}},{"type":"null"}]},"description":"Additional `_scorecard` blueprint relations applied to every member scorecard in the group. Relation keys must match custom relations you added to the `_scorecard` blueprint, or the `$team` owning-teams meta relation when ownership is configured. The `group` relation is managed by Port and cannot be set here. Pass `null` to clear a relation, or omit a key to clear it on PUT. To learn more, see [extend the default scorecards](https://docs.port.io/governance/standards-and-compliance/examples/extend-data-model/)."},"blueprints":{"minItems":1,"type":"array","items":{"type":"string","maxLength":100,"pattern":"^(?!\\.{1,2}$)[\\p{L}0-9@_.+:\\\\/='-]+$"},"description":"Blueprint identifiers that share the same rules. Requires at least 1."},"rules":{"type":"array","items":{"type":"object","properties":{"identifier":{"type":"string","maxLength":100,"pattern":"^[A-Za-z0-9@_=\\\\-]+$","description":"The identifier of the rule."},"title":{"type":"string","description":"The title of the rule."},"description":{"description":"A description for the rule.","type":"string"},"level":{"type":"string","description":"The level of the rule."},"query":{"type":"object","properties":{"combinator":{"type":"string","enum":["and","or"],"description":"The combinator to use when evaluating the conditions."},"conditions":{"minItems":1,"type":"array","items":{"anyOf":[{"type":"object","properties":{"property":{"type":"string"},"operator":{"type":"string","enum":["between","notBetween","="]},"value":{"anyOf":[{"type":"object","properties":{"from":{"type":"string"},"to":{"type":"string"}},"required":["from","to"],"additionalProperties":false},{"type":"object","properties":{"preset":{"type":"string","enum":["today","tomorrow","yesterday","lastWeek","last2Weeks","lastMonth","last3Months","last6Months","last12Months"]}},"required":["preset"],"additionalProperties":false}]}},"required":["property","operator","value"],"additionalProperties":false},{"type":"object","properties":{"property":{"type":"string"},"operator":{"type":"string","enum":["containsAny","in"]},"value":{"type":"array","items":{"type":"string"}}},"required":["property","operator","value"],"additionalProperties":false},{"type":"object","properties":{"relation":{"type":"string"},"operator":{"type":"string","enum":["containsAny","in"]},"value":{"type":"array","items":{"type":"string"}}},"required":["relation","operator","value"],"additionalProperties":false},{"type":"object","properties":{"property":{"type":"string"},"operator":{"type":"string","enum":["=","!=",">","<",">=","<=","contains","doesNotContains","beginsWith","doesNotBeginsWith","endsWith","doesNotEndsWith"]},"value":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"array","items":{"type":"string"}}]}},"required":["property","operator","value"],"additionalProperties":false},{"type":"object","properties":{"relation":{"type":"string"},"operator":{"type":"string","enum":["=","!=",">","<",">=","<=","contains","doesNotContains","beginsWith","doesNotBeginsWith","endsWith","doesNotEndsWith"]},"value":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"array","items":{"type":"string"}}]}},"required":["relation","operator","value"],"additionalProperties":false},{"type":"object","properties":{"not":{"type":"boolean"},"property":{"type":"string"},"operator":{"type":"string","enum":["isEmpty","isNotEmpty"]}},"required":["property","operator"],"additionalProperties":false},{"type":"object","properties":{"not":{"type":"boolean"},"relation":{"type":"string"},"operator":{"type":"string","enum":["isEmpty","isNotEmpty"]}},"required":["relation","operator"],"additionalProperties":false}]},"description":"The conditions to evaluate."}},"required":["combinator","conditions"],"additionalProperties":false,"description":"The query that defines the rule."},"properties":{"type":"object","propertyNames":{"type":"string","pattern":"^[A-Za-z0-9@_=\\\\-]+$"},"additionalProperties":{},"description":"Additional `_rule` blueprint properties applied to this rule. Property keys must match custom properties you added to the `_rule` blueprint. On PUT, omitted keys are cleared; omit the field or pass `{}` to clear all additional properties. To learn more, see [extend the default scorecards](https://docs.port.io/governance/standards-and-compliance/examples/extend-data-model/)."},"relations":{"type":"object","propertyNames":{"anyOf":[{"type":"string","pattern":"^[A-Za-z0-9@_=\\\\-]+$"},{"type":"string","enum":["$team"]}]},"additionalProperties":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}},{"type":"null"}]},"description":"Additional `_rule` blueprint relations applied to this rule. Relation keys must match custom relations you added to the `_rule` blueprint, or the `$team` owning-teams meta relation when ownership is configured. The `scorecard` relation is managed by Port and cannot be set here. Pass `null` to clear a relation, or omit a key to clear it on PUT. To learn more, see [extend the default scorecards](https://docs.port.io/governance/standards-and-compliance/examples/extend-data-model/)."}},"required":["identifier","title","level","query"],"additionalProperties":false},"description":"The [rules](https://docs.port.io/governance/standards-and-compliance/concepts-and-structure/#rule-elements) applied to every member scorecard."},"filters":{"description":"Optional per-blueprint [conditions](https://docs.port.io/governance/standards-and-compliance/concepts-and-structure/#filter-elements). Keys must be blueprint identifiers listed in `blueprints`.","type":"object","propertyNames":{"type":"string","maxLength":100,"pattern":"^(?!\\.{1,2}$)[\\p{L}0-9@_.+:\\\\/='-]+$"},"additionalProperties":{"anyOf":[{"type":"object","properties":{"combinator":{"type":"string","enum":["and","or"],"description":"The combinator to use when evaluating the conditions."},"conditions":{"minItems":1,"type":"array","items":{"anyOf":[{"type":"object","properties":{"property":{"type":"string"},"operator":{"type":"string","enum":["between","notBetween","="]},"value":{"anyOf":[{"type":"object","properties":{"from":{"type":"string"},"to":{"type":"string"}},"required":["from","to"],"additionalProperties":false},{"type":"object","properties":{"preset":{"type":"string","enum":["today","tomorrow","yesterday","lastWeek","last2Weeks","lastMonth","last3Months","last6Months","last12Months"]}},"required":["preset"],"additionalProperties":false}]}},"required":["property","operator","value"],"additionalProperties":false},{"type":"object","properties":{"property":{"type":"string"},"operator":{"type":"string","enum":["containsAny","in"]},"value":{"type":"array","items":{"type":"string"}}},"required":["property","operator","value"],"additionalProperties":false},{"type":"object","properties":{"relation":{"type":"string"},"operator":{"type":"string","enum":["containsAny","in"]},"value":{"type":"array","items":{"type":"string"}}},"required":["relation","operator","value"],"additionalProperties":false},{"type":"object","properties":{"property":{"type":"string"},"operator":{"type":"string","enum":["=","!=",">","<",">=","<=","contains","doesNotContains","beginsWith","doesNotBeginsWith","endsWith","doesNotEndsWith"]},"value":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"array","items":{"type":"string"}}]}},"required":["property","operator","value"],"additionalProperties":false},{"type":"object","properties":{"relation":{"type":"string"},"operator":{"type":"string","enum":["=","!=",">","<",">=","<=","contains","doesNotContains","beginsWith","doesNotBeginsWith","endsWith","doesNotEndsWith"]},"value":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"array","items":{"type":"string"}}]}},"required":["relation","operator","value"],"additionalProperties":false},{"type":"object","properties":{"not":{"type":"boolean"},"property":{"type":"string"},"operator":{"type":"string","enum":["isEmpty","isNotEmpty"]}},"required":["property","operator"],"additionalProperties":false},{"type":"object","properties":{"not":{"type":"boolean"},"relation":{"type":"string"},"operator":{"type":"string","enum":["isEmpty","isNotEmpty"]}},"required":["relation","operator"],"additionalProperties":false}]},"description":"The conditions to evaluate."}},"required":["combinator","conditions"],"additionalProperties":false},{"type":"null"}]}}},"required":["identifier","title","blueprints","rules"],"additionalProperties":false,"title":"Shared rules"}]}}}},"security":[{"bearer":[]}],"x-should-be-exposed-to-customers":true,"responses":{"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}},"413":{"description":"Request body is too large (limit is 1MiB)","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false,"description":"Request body is too large (limit is 1MiB)"}}}},"422":{"description":"The json provided does not match the route's schema","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"The json provided does not match the route's schema"}}}}}},"get":{"summary":"Get all scorecard groups and related scorecards","tags":["Scorecard Groups"],"description":"This route fetches all scorecard groups and their related scorecards in your Port organization. Each group is returned with shared `blueprints` + `rules` (and optional per-blueprint `filters`) when related scorecard rules are identical; otherwise as a per-blueprint `scorecards` map. Responses may include `groupProperties` / `groupRelations` from the scorecard group entity and `scorecardProperties` / `scorecardRelations` shared by related scorecards.<br/><br/>To learn more about scorecards, check out the [documentation](https://docs.port.io/governance/standards-and-compliance/overview).","security":[{"bearer":["read:scorecards"]}],"x-should-be-exposed-to-customers":true,"responses":{"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}}}}},"/v1/scorecard-groups/{scorecard_group_identifier}":{"get":{"summary":"Get a scorecard group and related scorecards","tags":["Scorecard Groups"],"description":"This route fetches a scorecard group and its related scorecards by identifier. Returns shared `blueprints` + `rules` (and optional per-blueprint `filters`) when related scorecard rules are identical; otherwise a per-blueprint `scorecards` map. Responses may include `groupProperties` / `groupRelations` from the scorecard group entity and `scorecardProperties` / `scorecardRelations` shared by related scorecards.<br/><br/>To learn more about scorecards, check out the [documentation](https://docs.port.io/governance/standards-and-compliance/overview).","parameters":[{"schema":{"type":"string","minLength":1},"in":"path","name":"scorecard_group_identifier","required":true,"description":"The identifier of the scorecard group to operate on."}],"security":[{"bearer":["read:scorecards"]}],"x-should-be-exposed-to-customers":true,"responses":{"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}}}},"put":{"summary":"Change a scorecard group and related scorecards","tags":["Scorecard Groups"],"description":"This route changes a scorecard group and the related scorecards under it. Provide either a per-blueprint `scorecards` map or shared `blueprints` + `rules`. Related scorecards not included in the request body are deleted. To remove a group entirely, use DELETE.<br/><br/>Pass `groupProperties` to set additional properties on the scorecard group entity (`_scorecard_group` blueprint), and `scorecardProperties` to set additional properties on every related scorecard (`_scorecard` blueprint). Property keys must match custom properties you added to the corresponding blueprint. Pass `groupRelations` and `scorecardRelations` to set additional relations on the same entities; relation keys must match custom relations you added to the corresponding blueprint. On PUT, omitted relation keys are cleared; you can also pass `null` to clear a specific relation. To learn more, see [extend the default scorecards](https://docs.port.io/governance/standards-and-compliance/examples/extend-data-model/).<br/><br/>This is a closed beta feature. To learn more about scorecards, check out the [documentation](https://docs.port.io/governance/standards-and-compliance/overview).","requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"identifier":{"type":"string","maxLength":100,"pattern":"^(?!\\.{1,2}$)[\\p{L}0-9@_.+:\\\\/='-]+$","description":"A unique identifier for the scorecard group (logical id)."},"title":{"type":"string","description":"The title of the scorecard group (applied to all member scorecards)."},"levels":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string","description":"The name of the level."},"color":{"type":"string","enum":["blue","turquoise","orange","purple","pink","yellow","green","red","gold","silver","paleBlue","darkGray","lightGray","bronze","lime","olive","brown"],"description":"The color associated with the level, for visualization in Port's UI."}},"required":["title","color"],"additionalProperties":false},"description":"The available levels of the scorecard group, shared by all members."},"groupProperties":{"type":"object","propertyNames":{"type":"string","pattern":"^[A-Za-z0-9@_=\\\\-]+$"},"additionalProperties":{},"description":"Additional `_scorecard_group` blueprint properties applied to the scorecard group entity. Property keys must match custom properties you added to the `_scorecard_group` blueprint. To learn more, see [extend the default scorecards](https://docs.port.io/governance/standards-and-compliance/examples/extend-data-model/)."},"scorecardProperties":{"type":"object","propertyNames":{"type":"string","pattern":"^[A-Za-z0-9@_=\\\\-]+$"},"additionalProperties":{},"description":"Additional `_scorecard` blueprint properties applied to every member scorecard in the group. Property keys must match custom properties you added to the `_scorecard` blueprint. To learn more, see [extend the default scorecards](https://docs.port.io/governance/standards-and-compliance/examples/extend-data-model/)."},"groupRelations":{"type":"object","propertyNames":{"anyOf":[{"type":"string","pattern":"^[A-Za-z0-9@_=\\\\-]+$"},{"type":"string","enum":["$team"]}]},"additionalProperties":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}},{"type":"null"}]},"description":"Additional `_scorecard_group` blueprint relations applied to the scorecard group entity. Relation keys must match custom relations you added to the `_scorecard_group` blueprint, or the `$team` owning-teams meta relation when ownership is configured. Pass `null` to clear a relation, or omit a key to clear it on PUT. To learn more, see [extend the default scorecards](https://docs.port.io/governance/standards-and-compliance/examples/extend-data-model/)."},"scorecardRelations":{"type":"object","propertyNames":{"anyOf":[{"type":"string","pattern":"^[A-Za-z0-9@_=\\\\-]+$"},{"type":"string","enum":["$team"]}]},"additionalProperties":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}},{"type":"null"}]},"description":"Additional `_scorecard` blueprint relations applied to every member scorecard in the group. Relation keys must match custom relations you added to the `_scorecard` blueprint, or the `$team` owning-teams meta relation when ownership is configured. The `group` relation is managed by Port and cannot be set here. Pass `null` to clear a relation, or omit a key to clear it on PUT. To learn more, see [extend the default scorecards](https://docs.port.io/governance/standards-and-compliance/examples/extend-data-model/)."},"scorecards":{"type":"object","propertyNames":{"type":"string","maxLength":100,"pattern":"^(?!\\.{1,2}$)[\\p{L}0-9@_.+:\\\\/='-]+$"},"additionalProperties":{"type":"object","properties":{"filter":{"description":"An optional set of [conditions](https://docs.port.io/governance/standards-and-compliance/concepts-and-structure/#filter-elements) to filter entities that will be evaluated by this member scorecard.","anyOf":[{"type":"object","properties":{"combinator":{"type":"string","enum":["and","or"],"description":"The combinator to use when evaluating the conditions."},"conditions":{"minItems":1,"type":"array","items":{"anyOf":[{"type":"object","properties":{"property":{"type":"string"},"operator":{"type":"string","enum":["between","notBetween","="]},"value":{"anyOf":[{"type":"object","properties":{"from":{"type":"string"},"to":{"type":"string"}},"required":["from","to"],"additionalProperties":false},{"type":"object","properties":{"preset":{"type":"string","enum":["today","tomorrow","yesterday","lastWeek","last2Weeks","lastMonth","last3Months","last6Months","last12Months"]}},"required":["preset"],"additionalProperties":false}]}},"required":["property","operator","value"],"additionalProperties":false},{"type":"object","properties":{"property":{"type":"string"},"operator":{"type":"string","enum":["containsAny","in"]},"value":{"type":"array","items":{"type":"string"}}},"required":["property","operator","value"],"additionalProperties":false},{"type":"object","properties":{"relation":{"type":"string"},"operator":{"type":"string","enum":["containsAny","in"]},"value":{"type":"array","items":{"type":"string"}}},"required":["relation","operator","value"],"additionalProperties":false},{"type":"object","properties":{"property":{"type":"string"},"operator":{"type":"string","enum":["=","!=",">","<",">=","<=","contains","doesNotContains","beginsWith","doesNotBeginsWith","endsWith","doesNotEndsWith"]},"value":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"array","items":{"type":"string"}}]}},"required":["property","operator","value"],"additionalProperties":false},{"type":"object","properties":{"relation":{"type":"string"},"operator":{"type":"string","enum":["=","!=",">","<",">=","<=","contains","doesNotContains","beginsWith","doesNotBeginsWith","endsWith","doesNotEndsWith"]},"value":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"array","items":{"type":"string"}}]}},"required":["relation","operator","value"],"additionalProperties":false},{"type":"object","properties":{"not":{"type":"boolean"},"property":{"type":"string"},"operator":{"type":"string","enum":["isEmpty","isNotEmpty"]}},"required":["property","operator"],"additionalProperties":false},{"type":"object","properties":{"not":{"type":"boolean"},"relation":{"type":"string"},"operator":{"type":"string","enum":["isEmpty","isNotEmpty"]}},"required":["relation","operator"],"additionalProperties":false}]},"description":"The conditions to evaluate."}},"required":["combinator","conditions"],"additionalProperties":false},{"type":"null"}]},"rules":{"type":"array","items":{"type":"object","properties":{"identifier":{"type":"string","maxLength":100,"pattern":"^[A-Za-z0-9@_=\\\\-]+$","description":"The identifier of the rule."},"title":{"type":"string","description":"The title of the rule."},"description":{"description":"A description for the rule.","type":"string"},"level":{"type":"string","description":"The level of the rule."},"query":{"type":"object","properties":{"combinator":{"type":"string","enum":["and","or"],"description":"The combinator to use when evaluating the conditions."},"conditions":{"minItems":1,"type":"array","items":{"anyOf":[{"type":"object","properties":{"property":{"type":"string"},"operator":{"type":"string","enum":["between","notBetween","="]},"value":{"anyOf":[{"type":"object","properties":{"from":{"type":"string"},"to":{"type":"string"}},"required":["from","to"],"additionalProperties":false},{"type":"object","properties":{"preset":{"type":"string","enum":["today","tomorrow","yesterday","lastWeek","last2Weeks","lastMonth","last3Months","last6Months","last12Months"]}},"required":["preset"],"additionalProperties":false}]}},"required":["property","operator","value"],"additionalProperties":false},{"type":"object","properties":{"property":{"type":"string"},"operator":{"type":"string","enum":["containsAny","in"]},"value":{"type":"array","items":{"type":"string"}}},"required":["property","operator","value"],"additionalProperties":false},{"type":"object","properties":{"relation":{"type":"string"},"operator":{"type":"string","enum":["containsAny","in"]},"value":{"type":"array","items":{"type":"string"}}},"required":["relation","operator","value"],"additionalProperties":false},{"type":"object","properties":{"property":{"type":"string"},"operator":{"type":"string","enum":["=","!=",">","<",">=","<=","contains","doesNotContains","beginsWith","doesNotBeginsWith","endsWith","doesNotEndsWith"]},"value":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"array","items":{"type":"string"}}]}},"required":["property","operator","value"],"additionalProperties":false},{"type":"object","properties":{"relation":{"type":"string"},"operator":{"type":"string","enum":["=","!=",">","<",">=","<=","contains","doesNotContains","beginsWith","doesNotBeginsWith","endsWith","doesNotEndsWith"]},"value":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"array","items":{"type":"string"}}]}},"required":["relation","operator","value"],"additionalProperties":false},{"type":"object","properties":{"not":{"type":"boolean"},"property":{"type":"string"},"operator":{"type":"string","enum":["isEmpty","isNotEmpty"]}},"required":["property","operator"],"additionalProperties":false},{"type":"object","properties":{"not":{"type":"boolean"},"relation":{"type":"string"},"operator":{"type":"string","enum":["isEmpty","isNotEmpty"]}},"required":["relation","operator"],"additionalProperties":false}]},"description":"The conditions to evaluate."}},"required":["combinator","conditions"],"additionalProperties":false,"description":"The query that defines the rule."},"properties":{"type":"object","propertyNames":{"type":"string","pattern":"^[A-Za-z0-9@_=\\\\-]+$"},"additionalProperties":{},"description":"Additional `_rule` blueprint properties applied to this rule. Property keys must match custom properties you added to the `_rule` blueprint. On PUT, omitted keys are cleared; omit the field or pass `{}` to clear all additional properties. To learn more, see [extend the default scorecards](https://docs.port.io/governance/standards-and-compliance/examples/extend-data-model/)."},"relations":{"type":"object","propertyNames":{"anyOf":[{"type":"string","pattern":"^[A-Za-z0-9@_=\\\\-]+$"},{"type":"string","enum":["$team"]}]},"additionalProperties":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}},{"type":"null"}]},"description":"Additional `_rule` blueprint relations applied to this rule. Relation keys must match custom relations you added to the `_rule` blueprint, or the `$team` owning-teams meta relation when ownership is configured. The `scorecard` relation is managed by Port and cannot be set here. Pass `null` to clear a relation, or omit a key to clear it on PUT. To learn more, see [extend the default scorecards](https://docs.port.io/governance/standards-and-compliance/examples/extend-data-model/)."}},"required":["identifier","title","level","query"],"additionalProperties":false},"description":"The [rules](https://docs.port.io/governance/standards-and-compliance/concepts-and-structure/#rule-elements) that define this member scorecard."}},"required":["rules"],"additionalProperties":false},"description":"Map of blueprint identifier → member scorecard filter/rules. Requires at least 1 blueprint."}},"required":["identifier","title","scorecards"],"additionalProperties":false,"title":"Per-blueprint scorecards"},{"type":"object","properties":{"identifier":{"type":"string","maxLength":100,"pattern":"^(?!\\.{1,2}$)[\\p{L}0-9@_.+:\\\\/='-]+$","description":"A unique identifier for the scorecard group (logical id)."},"title":{"type":"string","description":"The title of the scorecard group (applied to all member scorecards)."},"levels":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string","description":"The name of the level."},"color":{"type":"string","enum":["blue","turquoise","orange","purple","pink","yellow","green","red","gold","silver","paleBlue","darkGray","lightGray","bronze","lime","olive","brown"],"description":"The color associated with the level, for visualization in Port's UI."}},"required":["title","color"],"additionalProperties":false},"description":"The available levels of the scorecard group, shared by all members."},"groupProperties":{"type":"object","propertyNames":{"type":"string","pattern":"^[A-Za-z0-9@_=\\\\-]+$"},"additionalProperties":{},"description":"Additional `_scorecard_group` blueprint properties applied to the scorecard group entity. Property keys must match custom properties you added to the `_scorecard_group` blueprint. To learn more, see [extend the default scorecards](https://docs.port.io/governance/standards-and-compliance/examples/extend-data-model/)."},"scorecardProperties":{"type":"object","propertyNames":{"type":"string","pattern":"^[A-Za-z0-9@_=\\\\-]+$"},"additionalProperties":{},"description":"Additional `_scorecard` blueprint properties applied to every member scorecard in the group. Property keys must match custom properties you added to the `_scorecard` blueprint. To learn more, see [extend the default scorecards](https://docs.port.io/governance/standards-and-compliance/examples/extend-data-model/)."},"groupRelations":{"type":"object","propertyNames":{"anyOf":[{"type":"string","pattern":"^[A-Za-z0-9@_=\\\\-]+$"},{"type":"string","enum":["$team"]}]},"additionalProperties":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}},{"type":"null"}]},"description":"Additional `_scorecard_group` blueprint relations applied to the scorecard group entity. Relation keys must match custom relations you added to the `_scorecard_group` blueprint, or the `$team` owning-teams meta relation when ownership is configured. Pass `null` to clear a relation, or omit a key to clear it on PUT. To learn more, see [extend the default scorecards](https://docs.port.io/governance/standards-and-compliance/examples/extend-data-model/)."},"scorecardRelations":{"type":"object","propertyNames":{"anyOf":[{"type":"string","pattern":"^[A-Za-z0-9@_=\\\\-]+$"},{"type":"string","enum":["$team"]}]},"additionalProperties":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}},{"type":"null"}]},"description":"Additional `_scorecard` blueprint relations applied to every member scorecard in the group. Relation keys must match custom relations you added to the `_scorecard` blueprint, or the `$team` owning-teams meta relation when ownership is configured. The `group` relation is managed by Port and cannot be set here. Pass `null` to clear a relation, or omit a key to clear it on PUT. To learn more, see [extend the default scorecards](https://docs.port.io/governance/standards-and-compliance/examples/extend-data-model/)."},"blueprints":{"minItems":1,"type":"array","items":{"type":"string","maxLength":100,"pattern":"^(?!\\.{1,2}$)[\\p{L}0-9@_.+:\\\\/='-]+$"},"description":"Blueprint identifiers that share the same rules. Requires at least 1."},"rules":{"type":"array","items":{"type":"object","properties":{"identifier":{"type":"string","maxLength":100,"pattern":"^[A-Za-z0-9@_=\\\\-]+$","description":"The identifier of the rule."},"title":{"type":"string","description":"The title of the rule."},"description":{"description":"A description for the rule.","type":"string"},"level":{"type":"string","description":"The level of the rule."},"query":{"type":"object","properties":{"combinator":{"type":"string","enum":["and","or"],"description":"The combinator to use when evaluating the conditions."},"conditions":{"minItems":1,"type":"array","items":{"anyOf":[{"type":"object","properties":{"property":{"type":"string"},"operator":{"type":"string","enum":["between","notBetween","="]},"value":{"anyOf":[{"type":"object","properties":{"from":{"type":"string"},"to":{"type":"string"}},"required":["from","to"],"additionalProperties":false},{"type":"object","properties":{"preset":{"type":"string","enum":["today","tomorrow","yesterday","lastWeek","last2Weeks","lastMonth","last3Months","last6Months","last12Months"]}},"required":["preset"],"additionalProperties":false}]}},"required":["property","operator","value"],"additionalProperties":false},{"type":"object","properties":{"property":{"type":"string"},"operator":{"type":"string","enum":["containsAny","in"]},"value":{"type":"array","items":{"type":"string"}}},"required":["property","operator","value"],"additionalProperties":false},{"type":"object","properties":{"relation":{"type":"string"},"operator":{"type":"string","enum":["containsAny","in"]},"value":{"type":"array","items":{"type":"string"}}},"required":["relation","operator","value"],"additionalProperties":false},{"type":"object","properties":{"property":{"type":"string"},"operator":{"type":"string","enum":["=","!=",">","<",">=","<=","contains","doesNotContains","beginsWith","doesNotBeginsWith","endsWith","doesNotEndsWith"]},"value":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"array","items":{"type":"string"}}]}},"required":["property","operator","value"],"additionalProperties":false},{"type":"object","properties":{"relation":{"type":"string"},"operator":{"type":"string","enum":["=","!=",">","<",">=","<=","contains","doesNotContains","beginsWith","doesNotBeginsWith","endsWith","doesNotEndsWith"]},"value":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"array","items":{"type":"string"}}]}},"required":["relation","operator","value"],"additionalProperties":false},{"type":"object","properties":{"not":{"type":"boolean"},"property":{"type":"string"},"operator":{"type":"string","enum":["isEmpty","isNotEmpty"]}},"required":["property","operator"],"additionalProperties":false},{"type":"object","properties":{"not":{"type":"boolean"},"relation":{"type":"string"},"operator":{"type":"string","enum":["isEmpty","isNotEmpty"]}},"required":["relation","operator"],"additionalProperties":false}]},"description":"The conditions to evaluate."}},"required":["combinator","conditions"],"additionalProperties":false,"description":"The query that defines the rule."},"properties":{"type":"object","propertyNames":{"type":"string","pattern":"^[A-Za-z0-9@_=\\\\-]+$"},"additionalProperties":{},"description":"Additional `_rule` blueprint properties applied to this rule. Property keys must match custom properties you added to the `_rule` blueprint. On PUT, omitted keys are cleared; omit the field or pass `{}` to clear all additional properties. To learn more, see [extend the default scorecards](https://docs.port.io/governance/standards-and-compliance/examples/extend-data-model/)."},"relations":{"type":"object","propertyNames":{"anyOf":[{"type":"string","pattern":"^[A-Za-z0-9@_=\\\\-]+$"},{"type":"string","enum":["$team"]}]},"additionalProperties":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}},{"type":"null"}]},"description":"Additional `_rule` blueprint relations applied to this rule. Relation keys must match custom relations you added to the `_rule` blueprint, or the `$team` owning-teams meta relation when ownership is configured. The `scorecard` relation is managed by Port and cannot be set here. Pass `null` to clear a relation, or omit a key to clear it on PUT. To learn more, see [extend the default scorecards](https://docs.port.io/governance/standards-and-compliance/examples/extend-data-model/)."}},"required":["identifier","title","level","query"],"additionalProperties":false},"description":"The [rules](https://docs.port.io/governance/standards-and-compliance/concepts-and-structure/#rule-elements) applied to every member scorecard."},"filters":{"description":"Optional per-blueprint [conditions](https://docs.port.io/governance/standards-and-compliance/concepts-and-structure/#filter-elements). Keys must be blueprint identifiers listed in `blueprints`.","type":"object","propertyNames":{"type":"string","maxLength":100,"pattern":"^(?!\\.{1,2}$)[\\p{L}0-9@_.+:\\\\/='-]+$"},"additionalProperties":{"anyOf":[{"type":"object","properties":{"combinator":{"type":"string","enum":["and","or"],"description":"The combinator to use when evaluating the conditions."},"conditions":{"minItems":1,"type":"array","items":{"anyOf":[{"type":"object","properties":{"property":{"type":"string"},"operator":{"type":"string","enum":["between","notBetween","="]},"value":{"anyOf":[{"type":"object","properties":{"from":{"type":"string"},"to":{"type":"string"}},"required":["from","to"],"additionalProperties":false},{"type":"object","properties":{"preset":{"type":"string","enum":["today","tomorrow","yesterday","lastWeek","last2Weeks","lastMonth","last3Months","last6Months","last12Months"]}},"required":["preset"],"additionalProperties":false}]}},"required":["property","operator","value"],"additionalProperties":false},{"type":"object","properties":{"property":{"type":"string"},"operator":{"type":"string","enum":["containsAny","in"]},"value":{"type":"array","items":{"type":"string"}}},"required":["property","operator","value"],"additionalProperties":false},{"type":"object","properties":{"relation":{"type":"string"},"operator":{"type":"string","enum":["containsAny","in"]},"value":{"type":"array","items":{"type":"string"}}},"required":["relation","operator","value"],"additionalProperties":false},{"type":"object","properties":{"property":{"type":"string"},"operator":{"type":"string","enum":["=","!=",">","<",">=","<=","contains","doesNotContains","beginsWith","doesNotBeginsWith","endsWith","doesNotEndsWith"]},"value":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"array","items":{"type":"string"}}]}},"required":["property","operator","value"],"additionalProperties":false},{"type":"object","properties":{"relation":{"type":"string"},"operator":{"type":"string","enum":["=","!=",">","<",">=","<=","contains","doesNotContains","beginsWith","doesNotBeginsWith","endsWith","doesNotEndsWith"]},"value":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"array","items":{"type":"string"}}]}},"required":["relation","operator","value"],"additionalProperties":false},{"type":"object","properties":{"not":{"type":"boolean"},"property":{"type":"string"},"operator":{"type":"string","enum":["isEmpty","isNotEmpty"]}},"required":["property","operator"],"additionalProperties":false},{"type":"object","properties":{"not":{"type":"boolean"},"relation":{"type":"string"},"operator":{"type":"string","enum":["isEmpty","isNotEmpty"]}},"required":["relation","operator"],"additionalProperties":false}]},"description":"The conditions to evaluate."}},"required":["combinator","conditions"],"additionalProperties":false},{"type":"null"}]}}},"required":["identifier","title","blueprints","rules"],"additionalProperties":false,"title":"Shared rules"}]}}}},"parameters":[{"schema":{"type":"string","minLength":1},"in":"path","name":"scorecard_group_identifier","required":true,"description":"The identifier of the scorecard group to operate on."}],"security":[{"bearer":[]}],"x-should-be-exposed-to-customers":true,"responses":{"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}},"413":{"description":"Request body is too large (limit is 1MiB)","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false,"description":"Request body is too large (limit is 1MiB)"}}}},"422":{"description":"The json provided does not match the route's schema","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"The json provided does not match the route's schema"}}}}}},"delete":{"summary":"Delete a scorecard group and related scorecards","tags":["Scorecard Groups"],"description":"This route deletes a scorecard group and all related scorecards under it (including rules and results).<br/><br/>This is a closed beta feature. To learn more about scorecards, check out the [documentation](https://docs.port.io/governance/standards-and-compliance/overview).","parameters":[{"schema":{"type":"string","minLength":1},"in":"path","name":"scorecard_group_identifier","required":true,"description":"The identifier of the scorecard group to operate on."}],"security":[{"bearer":[]}],"x-should-be-exposed-to-customers":true,"responses":{"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}},"413":{"description":"Request body is too large (limit is 1MiB)","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false,"description":"Request body is too large (limit is 1MiB)"}}}},"422":{"description":"The json provided does not match the route's schema","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"The json provided does not match the route's schema"}}}}}}},"/v1/scorecard-groups/{scorecard_group_identifier}/scorecards/{scorecard_identifier}":{"post":{"summary":"Add a scorecard to a group","tags":["Scorecard Groups"],"description":"Adds an existing scorecard to a scorecard group. Validates that levels match the group, syncs additional scorecard properties and relations from existing related scorecards, and sets `relations.group`. Scorecards already in another group are rejected unless `overrideGroup=true`, which moves the scorecard and deletes the previous group if it becomes empty.<br/><br/>Port syncs the group's shared `scorecardProperties` and `scorecardRelations` from existing related scorecards onto the added scorecard.<br/><br/>This is a closed beta feature.","parameters":[{"schema":{"type":"boolean"},"in":"query","name":"overrideGroup","required":false,"description":"When `true`, allows moving a scorecard that is already in another group. Defaults to `false`, which rejects grouped scorecards."},{"schema":{"type":"string","minLength":1},"in":"path","name":"scorecard_group_identifier","required":true,"description":"The identifier of the scorecard group."},{"schema":{"type":"string","maxLength":100,"pattern":"^(?!\\.{1,2}$)[\\p{L}0-9@_.+:\\\\/='-]+$"},"in":"path","name":"scorecard_identifier","required":true,"description":"The identifier of the scorecard to add to the group."}],"security":[{"bearer":[]}],"x-should-be-exposed-to-customers":true,"responses":{"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}},"413":{"description":"Request body is too large (limit is 1MiB)","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false,"description":"Request body is too large (limit is 1MiB)"}}}},"422":{"description":"The json provided does not match the route's schema","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"The json provided does not match the route's schema"}}}}}},"delete":{"summary":"Remove a scorecard from a group","tags":["Scorecard Groups"],"description":"Removes a scorecard from a scorecard group by clearing `relations.group`. If this was the last related scorecard, the group entity is deleted and the scorecard remains standalone.<br/><br/>This is a closed beta feature.","parameters":[{"schema":{"type":"string","minLength":1},"in":"path","name":"scorecard_group_identifier","required":true,"description":"The identifier of the scorecard group."},{"schema":{"type":"string","maxLength":100,"pattern":"^(?!\\.{1,2}$)[\\p{L}0-9@_.+:\\\\/='-]+$"},"in":"path","name":"scorecard_identifier","required":true,"description":"The identifier of the scorecard to remove from the group."}],"security":[{"bearer":[]}],"x-should-be-exposed-to-customers":true,"responses":{"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}},"413":{"description":"Request body is too large (limit is 1MiB)","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false,"description":"Request body is too large (limit is 1MiB)"}}}},"422":{"description":"The json provided does not match the route's schema","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"The json provided does not match the route's schema"}}}}}}},"/v1/migrations":{"get":{"summary":"Get all migrations","tags":["Migrations"],"description":"This route allows you to fetch all migrations (both past and present) in your Port organization.<br/><br/>The call will perform a logical `AND` operation on the query parameters below, and return all migrations that match the criteria.","parameters":[{"schema":{"type":"array","items":{"type":"string","enum":["COMPLETED","RUNNING","PENDING","INITIALIZING","FAILURE","CANCELLED","PENDING_CANCELLATION"]}},"in":"query","name":"status","required":false},{"schema":{"type":"string"},"in":"query","name":"actor","required":false,"description":"The identifier of the user who initiated the migration. You can use the [Get user](https://docs.port.io/api-reference/get-a-user/) route to get a user's identifier."},{"schema":{"type":"string"},"in":"query","name":"blueprint","required":false,"description":"The identifier of the blueprint associated with the migration."}],"security":[{"bearer":["read:blueprints"]}],"x-should-be-exposed-to-customers":true,"responses":{"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}}}},"post":{"summary":"Create a migration","tags":["Migrations"],"description":"This route allows you to create a migration in your Port organization. You can use this to migrate data from one blueprint to another.<br/><br/>**Note** that it is not possible to directly change the data type of an existing property via the UI or the API. The type field setting of a property (**number**, **string**, etc.) is permanent and cannot be changed after creation.<br/><br/>However, you can create a new property with the desired type and migrate the old values to it. Refer to the [documentation](https://docs.port.io/context-lake/data-model/setup-blueprint/properties/overview/#change-a-propertys-type) for more information on how to change a property's type.","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"sourceBlueprint":{"type":"string","description":"The identifier of the blueprint from which the migration will be performed."},"mapping":{"type":"object","description":"The definition used to map the data from the source blueprint into the target blueprint.","properties":{"blueprint":{"type":"string","description":"The identifier of the target blueprint."},"filter":{"type":"string","description":"An optional set of [conditions](https://docs.port.io/governance/standards-and-compliance/concepts-and-structure/#filter-elements) to filter the entities that will be migrated."},"itemsToParse":{"type":"string","description":"A `jq` query that evaluates to an array of items, used to create multiple entities at once. See more information [here](https://docs.port.io/context-lake/ingestion/configure-mapping/overview#items-to-parse)."},"entity":{"type":"object","properties":{"identifier":{"type":"string","description":"A `jq` expression used to get data from the source blueprint, to be used as an identifier for the entity."},"title":{"type":"string","description":"A `jq` expression used to get data from the source blueprint, to be used as the title of the entity."},"icon":{"type":"string","description":"The icon of the entity."},"team":{"type":"string","description":"The team the entity belongs to."},"properties":{"type":"object","description":"An object containing the properties of the entity and their values, in `\"key\":\"value\"` pairs where the `key` is the property's identifier, and the `value` is its value.","additionalProperties":{"type":"string"}},"relations":{"type":"object","description":"An object containing the relations of the entity and their values, in `\"key\":\"value\"` pairs where the `key` is the relation's identifier, and the `value` is the related entity's identifier for single-relations, or an array of identifiers for many-relations.<br/>You can also use a [search query](https://docs.port.io/context-lake/ingestion/configure-mapping/configuration-methods#mapping-relations-using-search-queries) to define relations based on a property of the related entity.","additionalProperties":{"type":"string"}}}}},"required":["entity"]}},"required":["sourceBlueprint","mapping"],"additionalProperties":false}}},"required":true},"security":[{"bearer":[]}],"x-should-be-exposed-to-customers":true,"responses":{"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}},"413":{"description":"Request body is too large (limit is 1MiB)","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false,"description":"Request body is too large (limit is 1MiB)"}}}},"422":{"description":"The json provided does not match the route's schema","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"The json provided does not match the route's schema"}}}}}}},"/v1/migrations/{migration_id}":{"get":{"summary":"Get a migration","tags":["Migrations"],"description":"This route allows you to fetch a specific migration in your Port organization.","parameters":[{"schema":{"type":"string"},"in":"path","name":"migration_id","required":true,"description":"The identifier of the migration you want to fetch."}],"security":[{"bearer":["read:blueprints"]}],"x-should-be-exposed-to-customers":true,"responses":{"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}}}}},"/v1/migrations/{migration_id}/cancel":{"post":{"summary":"Cancel a migration","tags":["Migrations"],"description":"This route allows you to cancel a running migration in your Port organization.","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"reason":{"type":"string","description":"The reason for cancelling the migration."}},"additionalProperties":false}}}},"parameters":[{"schema":{"type":"string"},"in":"path","name":"migration_id","required":true,"description":"The identifier of the migration you want to cancel."}],"security":[{"bearer":[]}],"x-should-be-exposed-to-customers":true,"responses":{"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}},"413":{"description":"Request body is too large (limit is 1MiB)","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false,"description":"Request body is too large (limit is 1MiB)"}}}},"422":{"description":"The json provided does not match the route's schema","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"The json provided does not match the route's schema"}}}}}}},"/v1/actions/{action_identifier}/permissions":{"get":{"summary":"Get an action's permissions","tags":["Actions"],"description":"This route allows you to fetch the permissions of a self-service action.<br/><br/>To learn more about action RBAC, check out the [documentation](https://docs.port.io/workflows/actions-and-automations/create-self-service-experiences/set-self-service-actions-rbac/).","parameters":[{"schema":{"type":"string","minLength":1},"in":"path","name":"action_identifier","required":true,"description":"The identifier of the action/automation you want to operate on."}],"security":[{"bearer":["read:actions"]}],"x-should-be-exposed-to-customers":true,"responses":{"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}}}},"patch":{"summary":"Update an action's permissions","tags":["Actions"],"description":"This route allows you to update the permissions of a self-service action.<br/><br/>To learn more about action RBAC, check out the [documentation](https://docs.port.io/workflows/actions-and-automations/create-self-service-experiences/set-self-service-actions-rbac/).","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"execute":{"type":"object","description":"An object used to define who can execute the action.","properties":{"users":{"type":"array","items":{"type":"string"},"description":"The email addresses of the users who can execute the action."},"roles":{"type":"array","items":{"type":"string"},"description":"The roles that can execute the action."},"teams":{"type":"array","items":{"type":"string"},"description":"The names of the teams whose members can execute the action."},"ownedByTeam":{"type":"boolean","description":"Relevant only for [DAY-2/DELETE actions](https://docs.port.io/workflows/actions-and-automations/create-self-service-experiences/setup-ui-for-action/#basic-details). If `true`, any member of the team that the entity belongs to can execute the action."},"policy":{"type":["object","null"],"properties":{"queries":{"type":"object","description":"One or more queries to fetch data from your software catalog.","minProperties":1,"additionalProperties":{"$ref":"#/components/schemas/def-1"}},"conditions":{"type":"array","items":{"type":"string","minLength":1},"minItems":1,"description":"`JQ` expressions that run against the provided queries, and resolve to a boolean value (`true` = allowed to execute)."}},"required":["queries","conditions"],"additionalProperties":false,"description":"An optional custom policy the determines if action execution is allowed.<br/>See instructions and examples [here](https://docs.port.io/workflows/actions-and-automations/create-self-service-experiences/set-self-service-actions-rbac/dynamic-permissions/#instructions)."}},"additionalProperties":false},"approve":{"type":"object","description":"An object used to define who can approve the action.","properties":{"users":{"type":"array","items":{"type":"string"},"description":"The email addresses of the users who can approve the action."},"roles":{"type":"array","items":{"type":"string"},"description":"The roles that can approve the action."},"teams":{"type":"array","items":{"type":"string"},"description":"The names of the teams whose members can approve the action."},"policy":{"type":["object","null"],"properties":{"queries":{"type":"object","description":"One or more queries to fetch data from your software catalog.","minProperties":1,"additionalProperties":{"$ref":"#/components/schemas/def-1"}},"conditions":{"type":"array","items":{"type":"string","minLength":1},"minItems":1,"description":"`JQ` expressions that run against the provided queries, and resolve to a boolean value (`true` = allowed to execute)."}},"required":["queries","conditions"],"additionalProperties":false,"description":"An optional custom policy the determines who can approve the action.<br/>See instructions and examples [here](https://docs.port.io/workflows/actions-and-automations/create-self-service-experiences/set-self-service-actions-rbac/dynamic-permissions/#instructions)."}},"additionalProperties":false}},"additionalProperties":false}}}},"parameters":[{"schema":{"type":"string","minLength":1},"in":"path","name":"action_identifier","required":true,"description":"The identifier of the action/automation you want to operate on."}],"security":[{"bearer":["update:actions"]}],"x-should-be-exposed-to-customers":true,"responses":{"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}},"413":{"description":"Request body is too large (limit is 1MiB)","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false,"description":"Request body is too large (limit is 1MiB)"}}}},"422":{"description":"The json provided does not match the route's schema","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"The json provided does not match the route's schema"}}}}}}},"/v1/sidebars/{sidebar_identifier}/folders":{"post":{"summary":"Create a folder","tags":["Folders"],"description":"This route allows you to create a folder in a sidebar. Folders let you organize pages in your platform's navigation.<br/><br/>To learn more about folders, check out the [documentation](https://docs.port.io/interface-builder/port-interface/page/folders/).","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"identifier":{"type":"string","pattern":"^[A-Za-z0-9@_=\\\\-]+$","minLength":1,"description":"The unique identifier of the folder."},"title":{"type":"string","description":"The display title of the folder."},"icon":{"type":"string","description":"The display icon of the folder.","nullable":true},"parent":{"type":"string","nullable":true,"description":"The identifier of the parent folder. Use `null` to place the folder at the root level of the sidebar."},"after":{"type":"string","nullable":true,"description":"The identifier of the sibling item after which this folder should appear. Use `null` to place the folder at the beginning of its parent."}},"additionalProperties":false,"required":["identifier","title"]}}},"required":true},"parameters":[{"schema":{"type":"string","enum":["catalog"]},"in":"path","name":"sidebar_identifier","required":true,"description":"The identifier of the sidebar. Currently only `catalog` is supported."}],"security":[{"bearer":["create:pages"]}],"x-should-be-exposed-to-customers":true,"responses":{"201":{"description":"Created successfully.","content":{"application/json":{"schema":{"description":"Created successfully.","type":"object","properties":{"ok":{"enum":[true]},"folder":{"type":"object","properties":{"identifier":{"type":"string","description":"The unique identifier of the folder."},"title":{"type":"string","description":"The display title of the folder."},"icon":{"type":"string","nullable":true,"description":"The display icon of the folder."},"sidebar":{"type":"string","description":"The identifier of the sidebar that contains the folder."},"parent":{"type":"string","nullable":true,"description":"The identifier of the parent folder. Omitted when the folder is at the root level of the sidebar."},"after":{"type":"string","nullable":true,"description":"The identifier of the sibling item after which this folder appears. Omitted when the folder is the first item in its parent."},"updatedBy":{"type":"string"},"createdBy":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"required":["identifier","title","sidebar","createdBy","updatedBy","createdAt","updatedAt"],"additionalProperties":false}},"required":["folder","ok"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}},"413":{"description":"Request body is too large (limit is 1MiB)","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false,"description":"Request body is too large (limit is 1MiB)"}}}},"422":{"description":"The json provided does not match the route's schema","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"The json provided does not match the route's schema"}}}}}}},"/v1/sidebars/{sidebar_identifier}/folders/{folder_identifier}":{"patch":{"summary":"Update a folder","tags":["Folders"],"description":"This route allows you to update a folder in a sidebar. You can change its title, identifier, or position within the sidebar hierarchy.<br/><br/>To learn more about folders, check out the [documentation](https://docs.port.io/interface-builder/port-interface/page/folders/).","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"identifier":{"type":"string","pattern":"^[A-Za-z0-9@_=\\\\-]+$","minLength":1,"description":"The unique identifier of the folder."},"title":{"type":"string","description":"The display title of the folder."},"icon":{"type":"string","description":"The display icon of the folder.","nullable":true},"parent":{"type":"string","nullable":true,"description":"The identifier of the parent folder. Use `null` to place the folder at the root level of the sidebar."},"after":{"type":"string","nullable":true,"description":"The identifier of the sibling item after which this folder should appear. Use `null` to place the folder at the beginning of its parent."}},"additionalProperties":false}}}},"parameters":[{"schema":{"type":"string","enum":["catalog"]},"in":"path","name":"sidebar_identifier","required":true,"description":"The identifier of the sidebar. Currently only `catalog` is supported."},{"schema":{"type":"string","minLength":1},"in":"path","name":"folder_identifier","required":true,"description":"The identifier of the folder to operate on."}],"security":[{"bearer":["update:pages"]}],"x-should-be-exposed-to-customers":true,"responses":{"200":{"description":"Updated successfully.","content":{"application/json":{"schema":{"description":"Updated successfully.","type":"object","properties":{"ok":{"enum":[true]},"folder":{"type":"object","properties":{"identifier":{"type":"string","description":"The unique identifier of the folder."},"title":{"type":"string","description":"The display title of the folder."},"icon":{"type":"string","nullable":true,"description":"The display icon of the folder."},"sidebar":{"type":"string","description":"The identifier of the sidebar that contains the folder."},"parent":{"type":"string","nullable":true,"description":"The identifier of the parent folder. Omitted when the folder is at the root level of the sidebar."},"after":{"type":"string","nullable":true,"description":"The identifier of the sibling item after which this folder appears. Omitted when the folder is the first item in its parent."},"updatedBy":{"type":"string"},"createdBy":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"required":["identifier","title","sidebar","createdBy","updatedBy","createdAt","updatedAt"],"additionalProperties":false}},"required":["folder","ok"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}},"413":{"description":"Request body is too large (limit is 1MiB)","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false,"description":"Request body is too large (limit is 1MiB)"}}}},"422":{"description":"The json provided does not match the route's schema","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"The json provided does not match the route's schema"}}}}}},"delete":{"summary":"Delete a folder","tags":["Folders"],"description":"This route allows you to delete a folder from a sidebar. Deleting a folder also deletes all pages and sub-folders it contains.<br/><br/>To learn more about folders, check out the [documentation](https://docs.port.io/interface-builder/port-interface/page/folders/).","parameters":[{"schema":{"type":"string","enum":["catalog"]},"in":"path","name":"sidebar_identifier","required":true,"description":"The identifier of the sidebar. Currently only `catalog` is supported."},{"schema":{"type":"string","minLength":1},"in":"path","name":"folder_identifier","required":true,"description":"The identifier of the folder to operate on."}],"security":[{"bearer":["delete:pages"]}],"x-should-be-exposed-to-customers":true,"responses":{"200":{"description":"Deleted successfully.","content":{"application/json":{"schema":{"description":"Deleted successfully.","type":"object","properties":{"ok":{"type":"boolean","description":"Whether the folder was deleted successfully."}},"required":["ok"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}},"413":{"description":"Request body is too large (limit is 1MiB)","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false,"description":"Request body is too large (limit is 1MiB)"}}}},"422":{"description":"The json provided does not match the route's schema","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"The json provided does not match the route's schema"}}}}}}},"/v1/profile/onboarding-prompt":{"get":{"summary":"Get the onboarding prompt stored for the current user","tags":["AI"],"description":"Returns the onboarding system prompt stored for the authenticated user, set during signup, or null if none is set.","security":[{"bearer":[]}],"x-should-be-exposed-to-customers":true,"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"enum":[true]},"onboardingPrompt":{"type":"string","nullable":true}},"required":["ok","onboardingPrompt"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error"],"additionalProperties":false}}}},"404":{"description":"A resource with the provided identifier was not found","content":{"application/json":{"schema":{"properties":{"ok":{"const":false},"error":{"type":"string"},"message":{"type":"string"}},"required":["ok","error","message"],"additionalProperties":false,"description":"A resource with the provided identifier was not found"}}}}}}}}}