Publishes all workflows and resources from the source environment to the target environment. Optionally specify specific resources to publish or use dryRun mode to preview changes.
import { Novu } from "@novu/api";
const novu = new Novu({
secretKey: "YOUR_SECRET_KEY_HERE",
});
async function run() {
const result = await novu.environments.publish({
sourceEnvironmentId: "507f1f77bcf86cd799439011",
resources: [
{
resourceType: "REGULAR",
resourceId: "workflow-id-1",
},
],
}, "6615943e7ace93b0540ae377");
console.log(result);
}
run();
using Novu;
using Novu.Models.Components;
using System.Collections.Generic;
var sdk = new NovuSDK(secretKey: "YOUR_SECRET_KEY_HERE");
var res = await sdk.Environments.PublishAsync(
targetEnvironmentId: "6615943e7ace93b0540ae377",
publishEnvironmentRequestDto: new PublishEnvironmentRequestDto() {
SourceEnvironmentId = "507f1f77bcf86cd799439011",
Resources = new List<ResourceToPublishDto>() {
new ResourceToPublishDto() {
ResourceType = ResourceTypeEnum.Regular,
ResourceId = "workflow-id-1",
},
},
}
);
// handle response
declare(strict_types=1);
require 'vendor/autoload.php';
use novu;
use novu\Models\Components;
$sdk = novu\Novu::builder()
->setSecurity(
'YOUR_SECRET_KEY_HERE'
)
->build();
$publishEnvironmentRequestDto = new Components\PublishEnvironmentRequestDto(
sourceEnvironmentId: '507f1f77bcf86cd799439011',
resources: [
new Components\ResourceToPublishDto(
resourceType: Components\ResourceTypeEnum::Regular,
resourceId: 'workflow-id-1',
),
],
);
$response = $sdk->environments->publish(
targetEnvironmentId: '6615943e7ace93b0540ae377',
publishEnvironmentRequestDto: $publishEnvironmentRequestDto
);
if ($response->publishEnvironmentResponseDto !== null) {
// handle response
}
import novu_py
from novu_py import Novu
with Novu(
secret_key="YOUR_SECRET_KEY_HERE",
) as novu:
res = novu.environments.publish(target_environment_id="6615943e7ace93b0540ae377", publish_environment_request_dto={
"source_environment_id": "507f1f77bcf86cd799439011",
"resources": [
{
"resource_type": novu_py.ResourceTypeEnum.REGULAR,
"resource_id": "workflow-id-1",
},
],
})
# Handle response
print(res)
import { Novu } from "@novu/api";
const novu = new Novu({
secretKey: "YOUR_SECRET_KEY_HERE",
});
async function run() {
const result = await novu.environments.publish({
sourceEnvironmentId: "507f1f77bcf86cd799439011",
resources: [
{
resourceType: "REGULAR",
resourceId: "workflow-id-1",
},
],
}, "6615943e7ace93b0540ae377");
console.log(result);
}
run();
using Novu;
using Novu.Models.Components;
using System.Collections.Generic;
var sdk = new NovuSDK(secretKey: "YOUR_SECRET_KEY_HERE");
var res = await sdk.Environments.PublishAsync(
targetEnvironmentId: "6615943e7ace93b0540ae377",
publishEnvironmentRequestDto: new PublishEnvironmentRequestDto() {
SourceEnvironmentId = "507f1f77bcf86cd799439011",
Resources = new List<ResourceToPublishDto>() {
new ResourceToPublishDto() {
ResourceType = ResourceTypeEnum.Regular,
ResourceId = "workflow-id-1",
},
},
}
);
// handle response
declare(strict_types=1);
require 'vendor/autoload.php';
use novu;
use novu\Models\Components;
$sdk = novu\Novu::builder()
->setSecurity(
'YOUR_SECRET_KEY_HERE'
)
->build();
$publishEnvironmentRequestDto = new Components\PublishEnvironmentRequestDto(
sourceEnvironmentId: '507f1f77bcf86cd799439011',
resources: [
new Components\ResourceToPublishDto(
resourceType: Components\ResourceTypeEnum::Regular,
resourceId: 'workflow-id-1',
),
],
);
$response = $sdk->environments->publish(
targetEnvironmentId: '6615943e7ace93b0540ae377',
publishEnvironmentRequestDto: $publishEnvironmentRequestDto
);
if ($response->publishEnvironmentResponseDto !== null) {
// handle response
}
import novu_py
from novu_py import Novu
with Novu(
secret_key="YOUR_SECRET_KEY_HERE",
) as novu:
res = novu.environments.publish(target_environment_id="6615943e7ace93b0540ae377", publish_environment_request_dto={
"source_environment_id": "507f1f77bcf86cd799439011",
"resources": [
{
"resource_type": novu_py.ResourceTypeEnum.REGULAR,
"resource_id": "workflow-id-1",
},
],
})
# Handle response
print(res)
{"docsConfig":{"theme":"luma","$schema":"https://mintlify.com/docs.json","name":"Novu","description":"The open-source notification infrastructure for agents and products. Send, receive, and track notifications across channels.","colors":{"primary":"#0e121b","light":"#FFFFFF","dark":"#FFFFFF"},"logo":{"light":"https://mintcdn.com/novu-c5de82d9/2Q_L4HxwUfLmJjB8/logo/light.svg?fit=max\u0026auto=format\u0026n=2Q_L4HxwUfLmJjB8\u0026q=85\u0026s=23e7050191303b6a0ac4a671dfed8df4","dark":"https://mintcdn.com/novu-c5de82d9/2Q_L4HxwUfLmJjB8/logo/dark.svg?fit=max\u0026auto=format\u0026n=2Q_L4HxwUfLmJjB8\u0026q=85\u0026s=bd7c54f6b7a7b5002ea7b525af3e169c","href":"https://docs.novu.co"},"favicon":"https://mintcdn.com/novu-c5de82d9/ZUl3xXp-4AASlrcI/favicon.svg?fit=max\u0026auto=format\u0026n=ZUl3xXp-4AASlrcI\u0026q=85\u0026s=b53c3afb6a8eaf11aff9db2c5d3f05a1","api":{"openapi":"https://spec.speakeasy.com/novu/novu/json-development-with-code-samples","examples":{"prefill":true}},"background":{},"navbar":{"links":[{"href":"https://novu.co/contact-us","label":"Contact Us"}],"primary":{"type":"button","label":"Get Started","href":"https://dashboard.novu.co/auth/sign-up"}},"footer":{"socials":{"x":"https://x.com/novuhq","github":"https://github.com/novuhq/novu","linkedin":"https://www.linkedin.com/company/novuco"},"links":[{"header":"Comparison","items":[{"label":"Novu vs Courier","href":"https://novu.co/comparison/courier"},{"label":"Novu vs Knock","href":"https://novu.co/comparison/knock"},{"label":"Novu vs MagicBell","href":"https://novu.co/comparison/magicbell"},{"label":"Novu vs SuprSend","href":"https://novu.co/comparison/suprsend"},{"label":"Novu vs In-house","href":"https://novu.co/comparison/building-in-house"}]},{"header":"Resources","items":[{"label":"Contact Support","href":"mailto:support@novu.co"},{"label":"Changelog","href":"https://go.novu.co/changelog?utm_source=docs_footer"},{"label":"Roadmap","href":"https://roadmap.novu.co/roadmap"},{"label":"Contact Sales","href":"https://novu.co/contact-us"},{"label":"Read llms.txt","href":"/llms.txt"}]}]},"seo":{"metatags":{"og:type":"website","twitter:card":"summary_large_image"},"indexing":"all"},"icons":{"library":"lucide"},"integrations":{"gtm":{"tagId":"GTM-KXMC4XP2"},"plausible":{"domain":"docs.novu.co"}},"contextual":{"options":["copy","view","cursor","claude","chatgpt","mcp","add-mcp"],"display":"header"},"thumbnails":{"appearance":"dark","background":"https://mintcdn.com/novu-c5de82d9/vncv7ET97M5-dM6d/images/og/og-image-docs-v2.jpg?fit=max\u0026auto=format\u0026n=vncv7ET97M5-dM6d\u0026q=85\u0026s=26b59f5c597b5b1bea44cbc57cad5e3a","fonts":{"family":"Inter"}},"interaction":{"drilldown":true},"styling":{"latex":false},"navigation":{"global":{"anchors":[]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"novu-c5de82d9","hasAudioNarration":false,"actualSubdomain":"novu-c5de82d9","customDomains":["docs.novu.co"],"gitSource":{"type":"github","owner":"novuhq","repo":"novu","deployBranch":"next","contentDirectory":"docs","isPrivate":false,"mountPath":"","label":""},"chroma":{"collectionId":"43e8be13-b5c7-4d28-944f-ff2ebaa5ba8e","liveDeploymentHistoryId":"6aeaee1599f2540479a87725","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6aeaee1599f2540479a87725"},"feedback":{"thumbs":true,"edits":true,"issues":true,"agentFeedback":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"}},"buildId":"6aeaee1599f2540479a87725","clientVersion":"0.0.4064","searchFilterCounts":[{"language":"default","tag":"Notify","count":217},{"language":"default","tag":"API Reference","count":160},{"language":"default","tag":"Resources","count":107},{"language":"default","tag":"Integrate Channels Providers","count":93},{"language":"default","tag":"Guides","count":86},{"language":"default","tag":"Data","count":63},{"language":"default","tag":"Getting Started","count":62},{"language":"default","tag":"Framework","count":52},{"language":"default","tag":"Agent Connect","count":41},{"language":"default","tag":"Sms","count":38}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":true,"enableContextualStarterQuestions":true,"enableAskAiSearchBar":true,"deflection":{"enabled":true,"email":"support@novu.co","showHelpButton":true}},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":"@media (min-width: 1024px){#sidebar-content{width:16rem;min-width:16rem;max-width:16rem}}body:has(#home-content) nav[aria-label=\"Main\"] a[aria-current=\"location\"]{background:transparent!important;color:rgb(75 85 99)}html.dark body:has(#home-content) nav[aria-label=\"Main\"] a[aria-current=\"location\"]{color:rgb(156 163 175)}body:has(#home-content) nav[aria-label=\"Main\"] a[aria-current=\"location\"]:hover{background:rgb(3 7 18 / 0.03)!important;color:rgb(17 24 39)}html.dark body:has(#home-content) nav[aria-label=\"Main\"] a[aria-current=\"location\"]:hover{background:rgb(255 255 255 / 0.03)!important;color:rgb(229 231 235)}#home-content .hero-cards{margin-top:1.5rem}#home-content .card [data-component-part=\"card-image\"]{width:107.5%;max-width:none;margin:-3.75% -3.75% 0}"}],"page":{"pagePath":"api-reference/environments/publish-resources-to-target-environment","slug":"/api-reference/environments/publish-resources-to-target-environment","pageMetadata":{"title":"Publish resources to target environment","openapi":"POST /v2/environments/{targetEnvironmentId}/publish","description":"Publishes all workflows and resources from the source environment to the target environment. Optionally specify specific resources to publish or use dryRun mode to preview changes.","href":"/api-reference/environments/publish-resources-to-target-environment"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Publishes all workflows and resources from the source environment to the target environment. Optionally specify specific resources to publish or use dryRun mode to preview changes.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Publish resources to target environment","openapi":"POST /v2/environments/{targetEnvironmentId}/publish","description":"Publishes all workflows and resources from the source environment to the target environment. Optionally specify specific resources to publish or use dryRun mode to preview changes.","href":"/api-reference/environments/publish-resources-to-target-environment"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"EnvironmentsController_publishEnvironment","x-speakeasy-name-override":"publish","summary":"Publish resources to target environment","description":"Publishes all workflows and resources from the source environment to the target environment. Optionally specify specific resources to publish or use dryRun mode to preview changes.","parameters":["366d0593-a678-41c7-8abb-b8cd251f4624","4755ddd9-a045-4053-83a0-e8a0c5a73bbb"],"requestBody":"6c1cb7a6-c614-4b95-92b5-91c72b897bf2","responses":{"200":"04ca9068-7e96-4da4-aa18-0a8aa0bf35c4","400":"3c39df0b-5325-4416-b267-477109077e9b","401":"48610888-ba8f-453f-8ebe-ac0bc7f0ba9b","403":"697fb666-d7bc-4c84-a684-34353cf4fda5","404":"298dc3c5-2612-43a8-a261-0496d3393002","405":"8c254ce7-0be4-4e10-b52b-02fff54f2bd9","409":"600b87f1-f630-4e0f-95a1-f158df85c882","413":"fcc3629d-3493-45a4-9532-d967fd91cf5f","414":"9f1e151e-960a-4314-9398-a2224f9fff46","415":"9ed9c15c-5c06-4663-882b-638cbd31f308","422":"db55555f-fa3e-497e-924b-37e100165b21","429":"335bd6d5-05df-413c-b0dd-a26cb4f8c885","500":"d02d074d-c09e-4fb2-9094-88fbf73f3fb0","503":"1f0db3d0-6bb2-4293-a72d-6b8347d758d1"},"tags":["Environments"],"security":["8ff678e0-f08a-4dfa-9143-aaa18e41846f"],"x-codeSamples":[{"lang":"go","label":"Go","source":"package main\n\nimport(\n\t\"context\"\n\t\"github.com/novuhq/novu-go/v3\"\n\t\"github.com/novuhq/novu-go/v3/models/components\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := v3.New(\n v3.WithSecurity(\"YOUR_SECRET_KEY_HERE\"),\n )\n\n res, err := s.Environments.Publish(ctx, \"6615943e7ace93b0540ae377\", components.PublishEnvironmentRequestDto{\n SourceEnvironmentID: v3.Pointer(\"507f1f77bcf86cd799439011\"),\n Resources: []components.ResourceToPublishDto{\n components.ResourceToPublishDto{\n ResourceType: components.ResourceTypeEnumRegular,\n ResourceID: \"workflow-id-1\",\n },\n },\n }, nil)\n if err != nil {\n log.Fatal(err)\n }\n if res.PublishEnvironmentResponseDto != nil {\n // handle response\n }\n}"},{"lang":"typescript","label":"TypeScript","source":"import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n secretKey: \"YOUR_SECRET_KEY_HERE\",\n});\n\nasync function run() {\n const result = await novu.environments.publish({\n sourceEnvironmentId: \"507f1f77bcf86cd799439011\",\n resources: [\n {\n resourceType: \"REGULAR\",\n resourceId: \"workflow-id-1\",\n },\n ],\n }, \"6615943e7ace93b0540ae377\");\n\n console.log(result);\n}\n\nrun();"},{"lang":"csharp","label":"Csharp (SDK)","source":"using Novu;\nusing Novu.Models.Components;\nusing System.Collections.Generic;\n\nvar sdk = new NovuSDK(secretKey: \"YOUR_SECRET_KEY_HERE\");\n\nvar res = await sdk.Environments.PublishAsync(\n targetEnvironmentId: \"6615943e7ace93b0540ae377\",\n publishEnvironmentRequestDto: new PublishEnvironmentRequestDto() {\n SourceEnvironmentId = \"507f1f77bcf86cd799439011\",\n Resources = new List\u003cResourceToPublishDto>() {\n new ResourceToPublishDto() {\n ResourceType = ResourceTypeEnum.Regular,\n ResourceId = \"workflow-id-1\",\n },\n },\n }\n);\n\n// handle response"},{"lang":"php","label":"PHP","source":"declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse novu;\nuse novu\\Models\\Components;\n\n$sdk = novu\\Novu::builder()\n ->setSecurity(\n 'YOUR_SECRET_KEY_HERE'\n )\n ->build();\n\n$publishEnvironmentRequestDto = new Components\\PublishEnvironmentRequestDto(\n sourceEnvironmentId: '507f1f77bcf86cd799439011',\n resources: [\n new Components\\ResourceToPublishDto(\n resourceType: Components\\ResourceTypeEnum::Regular,\n resourceId: 'workflow-id-1',\n ),\n ],\n);\n\n$response = $sdk->environments->publish(\n targetEnvironmentId: '6615943e7ace93b0540ae377',\n publishEnvironmentRequestDto: $publishEnvironmentRequestDto\n\n);\n\nif ($response->publishEnvironmentResponseDto !== null) {\n // handle response\n}"},{"lang":"python","label":"Python","source":"import novu_py\nfrom novu_py import Novu\n\n\nwith Novu(\n secret_key=\"YOUR_SECRET_KEY_HERE\",\n) as novu:\n\n res = novu.environments.publish(target_environment_id=\"6615943e7ace93b0540ae377\", publish_environment_request_dto={\n \"source_environment_id\": \"507f1f77bcf86cd799439011\",\n \"resources\": [\n {\n \"resource_type\": novu_py.ResourceTypeEnum.REGULAR,\n \"resource_id\": \"workflow-id-1\",\n },\n ],\n })\n\n # Handle response\n print(res)"}],"method":"post","type":"path","servers":["29cc13d7-64c7-40f9-8a35-9c01537b78f4","7588375a-aa7e-462d-a5bf-d94b8564f985"],"path":"/v2/environments/{targetEnvironmentId}/publish","baseUrlOptions":["https://api.novu.co","https://eu.api.novu.co"],"title":"Publish resources to target environment","codeSamples":[{"label":"Go","lang":"go","source":"package main\n\nimport(\n\t\"context\"\n\t\"github.com/novuhq/novu-go/v3\"\n\t\"github.com/novuhq/novu-go/v3/models/components\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := v3.New(\n v3.WithSecurity(\"YOUR_SECRET_KEY_HERE\"),\n )\n\n res, err := s.Environments.Publish(ctx, \"6615943e7ace93b0540ae377\", components.PublishEnvironmentRequestDto{\n SourceEnvironmentID: v3.Pointer(\"507f1f77bcf86cd799439011\"),\n Resources: []components.ResourceToPublishDto{\n components.ResourceToPublishDto{\n ResourceType: components.ResourceTypeEnumRegular,\n ResourceID: \"workflow-id-1\",\n },\n },\n }, nil)\n if err != nil {\n log.Fatal(err)\n }\n if res.PublishEnvironmentResponseDto != nil {\n // handle response\n }\n}"},{"label":"TypeScript","lang":"typescript","source":"import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n secretKey: \"YOUR_SECRET_KEY_HERE\",\n});\n\nasync function run() {\n const result = await novu.environments.publish({\n sourceEnvironmentId: \"507f1f77bcf86cd799439011\",\n resources: [\n {\n resourceType: \"REGULAR\",\n resourceId: \"workflow-id-1\",\n },\n ],\n }, \"6615943e7ace93b0540ae377\");\n\n console.log(result);\n}\n\nrun();"},{"label":"Csharp (SDK)","lang":"csharp","source":"using Novu;\nusing Novu.Models.Components;\nusing System.Collections.Generic;\n\nvar sdk = new NovuSDK(secretKey: \"YOUR_SECRET_KEY_HERE\");\n\nvar res = await sdk.Environments.PublishAsync(\n targetEnvironmentId: \"6615943e7ace93b0540ae377\",\n publishEnvironmentRequestDto: new PublishEnvironmentRequestDto() {\n SourceEnvironmentId = \"507f1f77bcf86cd799439011\",\n Resources = new List\u003cResourceToPublishDto>() {\n new ResourceToPublishDto() {\n ResourceType = ResourceTypeEnum.Regular,\n ResourceId = \"workflow-id-1\",\n },\n },\n }\n);\n\n// handle response"},{"label":"PHP","lang":"php","source":"declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse novu;\nuse novu\\Models\\Components;\n\n$sdk = novu\\Novu::builder()\n ->setSecurity(\n 'YOUR_SECRET_KEY_HERE'\n )\n ->build();\n\n$publishEnvironmentRequestDto = new Components\\PublishEnvironmentRequestDto(\n sourceEnvironmentId: '507f1f77bcf86cd799439011',\n resources: [\n new Components\\ResourceToPublishDto(\n resourceType: Components\\ResourceTypeEnum::Regular,\n resourceId: 'workflow-id-1',\n ),\n ],\n);\n\n$response = $sdk->environments->publish(\n targetEnvironmentId: '6615943e7ace93b0540ae377',\n publishEnvironmentRequestDto: $publishEnvironmentRequestDto\n\n);\n\nif ($response->publishEnvironmentResponseDto !== null) {\n // handle response\n}"},{"label":"Python","lang":"python","source":"import novu_py\nfrom novu_py import Novu\n\n\nwith Novu(\n secret_key=\"YOUR_SECRET_KEY_HERE\",\n) as novu:\n\n res = novu.environments.publish(target_environment_id=\"6615943e7ace93b0540ae377\", publish_environment_request_dto={\n \"source_environment_id\": \"507f1f77bcf86cd799439011\",\n \"resources\": [\n {\n \"resource_type\": novu_py.ResourceTypeEnum.REGULAR,\n \"resource_id\": \"workflow-id-1\",\n },\n ],\n })\n\n # Handle response\n print(res)"}],"requiredOnlyExamples":false,"requestExampleType":"codeSamples","responseExampleType":"generated","prefillPlaygroundWithExample":true,"prefillPlaygroundExamples":[{"body.sourceEnvironmentId":"507f1f77bcf86cd799439011","body.dryRun":false,"body.resources.items.0.resourceId":"workflow-id-1"}]},"dependencies":{"parameters":{"366d0593-a678-41c7-8abb-b8cd251f4624":{"name":"targetEnvironmentId","required":true,"in":"path","description":"Target environment ID (MongoDB ObjectId) to publish resources to","example":"6615943e7ace93b0540ae377","schema":{"type":"string","isRequired":true,"description":"Target environment ID (MongoDB ObjectId) to publish resources to","uniqueKey":"","typeLabel":"string"}},"4755ddd9-a045-4053-83a0-e8a0c5a73bbb":{"name":"idempotency-key","in":"header","description":"A header for idempotency purposes","required":false,"schema":{"type":"string","isRequired":false,"description":"A header for idempotency purposes","uniqueKey":"","typeLabel":"string"}}},"requestBody":{"required":true,"description":"Publish request configuration","content":{"application/json":{"schema":{"type":"object","properties":{"sourceEnvironmentId":{"type":"string","description":"Source environment ID to sync from. Defaults to the Development environment if not provided.","example":"507f1f77bcf86cd799439011","uniqueKey":"sourceEnvironmentId","typeLabel":"string"},"dryRun":{"type":"boolean","description":"Perform a dry run without making actual changes","default":false,"uniqueKey":"dryRun","typeLabel":"boolean"},"resources":{"description":"Array of specific resources to publish. If not provided, all resources will be published.","type":"array","items":{"type":"object","properties":{"resourceType":{"type":"string","description":"Type of the layout","enum":["REGULAR","ECHO","BRIDGE"],"isRequired":true,"uniqueKey":"resources.items.[INDEX].resourceType","typeLabel":"enum\u003cstring>"},"resourceId":{"type":"string","description":"Unique identifier of the resource to publish","example":"workflow-id-1","isRequired":true,"uniqueKey":"resources.items.[INDEX].resourceId","typeLabel":"string"}},"required":["resourceType","resourceId"],"uniqueKey":"resources.items.[INDEX]","typeLabel":"object"},"uniqueKey":"resources","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"sourceEnvironmentId":"507f1f77bcf86cd799439011","dryRun":false,"resources":[{"resourceId":"workflow-id-1"}]}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"04ca9068-7e96-4da4-aa18-0a8aa0bf35c4":{"description":"OK","headers":{"Content-Type":{"required":true,"description":"The MIME type of the response body.","schema":{"type":"string"},"example":"application/json"},"RateLimit-Limit":{"required":false,"description":"The number of requests that the client is permitted to make per second. The actual maximum may differ when burst is enabled.","schema":{"type":"string"},"example":"100"},"RateLimit-Remaining":{"required":false,"description":"The number of requests remaining until the next window.","schema":{"type":"string"},"example":"93"},"RateLimit-Reset":{"required":false,"description":"The remaining seconds until a request of the same cost will be refreshed.","schema":{"type":"string"},"example":"8"},"RateLimit-Policy":{"required":false,"description":"The rate limit policy that was used to evaluate the request.","schema":{"type":"string"},"example":"100;w=1;burst=110;comment=\"token bucket\";category=\"trigger\";cost=\"single\""},"Idempotency-Key":{"required":false,"description":"The idempotency key used to evaluate the request.","schema":{"type":"string"},"example":"8"},"Idempotency-Replay":{"required":false,"description":"Whether the request was a replay of a previous request.","schema":{"type":"string"},"example":"true"}},"content":{"application/json":{"schema":{"type":"object","properties":{"results":{"description":"Sync results by resource type","type":"array","items":{"type":"object","properties":{"resourceType":{"type":"string","description":"Type of the layout","enum":["REGULAR","ECHO","BRIDGE"],"isRequired":true,"uniqueKey":"results.items.[INDEX].resourceType","typeLabel":"enum\u003cstring>"},"successful":{"description":"Successfully synced resources","type":"array","items":{"type":"object","properties":{"resourceType":{"type":"string","description":"Type of the layout","enum":["REGULAR","ECHO","BRIDGE"],"isRequired":true,"uniqueKey":"results.items.[INDEX].successful.items.[INDEX].resourceType","typeLabel":"enum\u003cstring>"},"resourceId":{"type":"string","description":"Resource ID","isRequired":true,"uniqueKey":"results.items.[INDEX].successful.items.[INDEX].resourceId","typeLabel":"string"},"resourceName":{"type":"string","description":"Resource name","isRequired":true,"uniqueKey":"results.items.[INDEX].successful.items.[INDEX].resourceName","typeLabel":"string"},"action":{"type":"string","description":"Sync action performed","enum":["created","updated","skipped","deleted"],"isRequired":true,"uniqueKey":"results.items.[INDEX].successful.items.[INDEX].action","typeLabel":"enum\u003cstring>"}},"required":["resourceType","resourceId","resourceName","action"],"uniqueKey":"results.items.[INDEX].successful.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"results.items.[INDEX].successful","typeLabel":"object[]"},"failed":{"description":"Failed resource syncs","type":"array","items":{"type":"object","properties":{"resourceType":{"type":"string","description":"Type of the layout","enum":["REGULAR","ECHO","BRIDGE"],"isRequired":true,"uniqueKey":"results.items.[INDEX].failed.items.[INDEX].resourceType","typeLabel":"enum\u003cstring>"},"resourceId":{"type":"string","description":"Resource ID","isRequired":true,"uniqueKey":"results.items.[INDEX].failed.items.[INDEX].resourceId","typeLabel":"string"},"resourceName":{"type":"string","description":"Resource name","isRequired":true,"uniqueKey":"results.items.[INDEX].failed.items.[INDEX].resourceName","typeLabel":"string"},"error":{"type":"string","description":"Error message","isRequired":true,"uniqueKey":"results.items.[INDEX].failed.items.[INDEX].error","typeLabel":"string"},"stack":{"type":"string","description":"Error stack trace","uniqueKey":"results.items.[INDEX].failed.items.[INDEX].stack","typeLabel":"string"}},"required":["resourceType","resourceId","resourceName","error"],"uniqueKey":"results.items.[INDEX].failed.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"results.items.[INDEX].failed","typeLabel":"object[]"},"skipped":{"description":"Skipped resources","type":"array","items":{"type":"object","properties":{"resourceType":{"type":"string","description":"Type of the layout","enum":["REGULAR","ECHO","BRIDGE"],"isRequired":true,"uniqueKey":"results.items.[INDEX].skipped.items.[INDEX].resourceType","typeLabel":"enum\u003cstring>"},"resourceId":{"type":"string","description":"Resource ID","isRequired":true,"uniqueKey":"results.items.[INDEX].skipped.items.[INDEX].resourceId","typeLabel":"string"},"resourceName":{"type":"string","description":"Resource name","isRequired":true,"uniqueKey":"results.items.[INDEX].skipped.items.[INDEX].resourceName","typeLabel":"string"},"reason":{"type":"string","description":"Reason for skipping","isRequired":true,"uniqueKey":"results.items.[INDEX].skipped.items.[INDEX].reason","typeLabel":"string"}},"required":["resourceType","resourceId","resourceName","reason"],"uniqueKey":"results.items.[INDEX].skipped.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"results.items.[INDEX].skipped","typeLabel":"object[]"},"totalProcessed":{"type":"number","description":"Total number of resources processed","isRequired":true,"uniqueKey":"results.items.[INDEX].totalProcessed","typeLabel":"number"}},"required":["resourceType","successful","failed","skipped","totalProcessed"],"uniqueKey":"results.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"results","typeLabel":"object[]"},"summary":{"type":"object","description":"Summary of the sync operation","required":["resources","successful","failed","skipped"],"properties":{"resources":{"type":"number","description":"Number of resources processed","isRequired":true,"uniqueKey":"summary.resources","typeLabel":"number"},"successful":{"type":"number","description":"Number of successful syncs","isRequired":true,"uniqueKey":"summary.successful","typeLabel":"number"},"failed":{"type":"number","description":"Number of failed syncs","isRequired":true,"uniqueKey":"summary.failed","typeLabel":"number"},"skipped":{"type":"number","description":"Number of skipped resources","isRequired":true,"uniqueKey":"summary.skipped","typeLabel":"number"}},"isRequired":true,"uniqueKey":"summary","typeLabel":"object"}},"required":["results","summary"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"results":[{"resourceType":"REGULAR","successful":[{"resourceType":"REGULAR","resourceId":"\u003cstring>","resourceName":"\u003cstring>","action":"created"}],"failed":[{"resourceType":"REGULAR","resourceId":"\u003cstring>","resourceName":"\u003cstring>","error":"\u003cstring>","stack":"\u003cstring>"}],"skipped":[{"resourceType":"REGULAR","resourceId":"\u003cstring>","resourceName":"\u003cstring>","reason":"\u003cstring>"}],"totalProcessed":123}],"summary":{"resources":123,"successful":123,"failed":123,"skipped":123}}}},"exampleType":"generated"}},"exampleType":"generated"},"3c39df0b-5325-4416-b267-477109077e9b":{"description":"Bad Request","headers":{"Content-Type":{"required":true,"description":"The MIME type of the response body.","schema":{"type":"string"},"example":"application/json"},"RateLimit-Limit":{"required":false,"description":"The number of requests that the client is permitted to make per second. The actual maximum may differ when burst is enabled.","schema":{"type":"string"},"example":"100"},"RateLimit-Remaining":{"required":false,"description":"The number of requests remaining until the next window.","schema":{"type":"string"},"example":"93"},"RateLimit-Reset":{"required":false,"description":"The remaining seconds until a request of the same cost will be refreshed.","schema":{"type":"string"},"example":"8"},"RateLimit-Policy":{"required":false,"description":"The rate limit policy that was used to evaluate the request.","schema":{"type":"string"},"example":"100;w=1;burst=110;comment=\"token bucket\";category=\"trigger\";cost=\"single\""},"Idempotency-Key":{"required":false,"description":"The idempotency key used to evaluate the request.","schema":{"type":"string"},"example":"8"},"Idempotency-Replay":{"required":false,"description":"Whether the request was a replay of a previous request.","schema":{"type":"string"},"example":"true"}},"content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","description":"HTTP status code of the error response.","example":404,"isRequired":true,"uniqueKey":"statusCode","typeLabel":"number"},"timestamp":{"type":"string","description":"Timestamp of when the error occurred.","example":"2024-12-12T13:00:00Z","isRequired":true,"uniqueKey":"timestamp","typeLabel":"string"},"path":{"type":"string","description":"The path where the error occurred.","example":"/api/v1/resource","isRequired":true,"uniqueKey":"path","typeLabel":"string"},"message":{"oneOf":[{"type":"string","description":"Value that failed validation","example":"xx xx xx ","uniqueKey":"message.oneOf.0","typeLabel":"string"},{"type":"null","description":"Value that failed validation","example":"xx xx xx ","uniqueKey":"message.oneOf.1","typeLabel":"null"},{"type":"number","description":"Value that failed validation","example":"xx xx xx ","uniqueKey":"message.oneOf.2","typeLabel":"number"},{"type":"boolean","description":"Value that failed validation","example":"xx xx xx ","uniqueKey":"message.oneOf.3","typeLabel":"boolean"},{"type":"object","description":"Value that failed validation","example":"xx xx xx ","uniqueKey":"message.oneOf.4","typeLabel":"object"},{"type":"null","description":"Value that failed validation","example":"xx xx xx ","uniqueKey":"message.oneOf.5","typeLabel":"null"},{"type":"array","items":{"oneOf":[{"type":"string","uniqueKey":"message.oneOf.6.items.[INDEX].oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"message.oneOf.6.items.[INDEX].oneOf.1","typeLabel":"null"},{"type":"number","uniqueKey":"message.oneOf.6.items.[INDEX].oneOf.2","typeLabel":"number"},{"type":"boolean","uniqueKey":"message.oneOf.6.items.[INDEX].oneOf.3","typeLabel":"boolean"},{"type":"object","additionalProperties":true,"uniqueKey":"message.oneOf.6.items.[INDEX].oneOf.4","typeLabel":"object"}],"uniqueKey":"message.oneOf.6.items.[INDEX]","typeLabel":"string | null | number | boolean | object"},"description":"Value that failed validation","example":"xx xx xx ","uniqueKey":"message.oneOf.6","typeLabel":"(string | null | number | boolean | object)[]"}],"uniqueKey":"message","typeLabel":"string · null · number · boolean · object · null · (string | null | number | boolean | object)[]"},"ctx":{"type":"object","description":"Optional context object for additional error details.","additionalProperties":true,"example":{"workflowId":"some_wf_id","stepId":"some_wf_id"},"uniqueKey":"ctx","typeLabel":"object"},"errorId":{"type":"string","description":"Optional unique identifier for the error, useful for tracking using Sentry and \n New Relic, only available for 500.","example":"abc123","uniqueKey":"errorId","typeLabel":"string"}},"required":["statusCode","timestamp","path"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"statusCode":404,"timestamp":"2024-12-12T13:00:00Z","path":"/api/v1/resource","message":"xx xx xx ","ctx":{"workflowId":"some_wf_id","stepId":"some_wf_id"},"errorId":"abc123"}}},"exampleType":"generated"}},"exampleType":"generated"},"48610888-ba8f-453f-8ebe-ac0bc7f0ba9b":{"description":"Unauthorized","headers":{"Content-Type":{"required":true,"description":"The MIME type of the response body.","schema":{"type":"string"},"example":"application/json"},"RateLimit-Limit":{"required":false,"description":"The number of requests that the client is permitted to make per second. The actual maximum may differ when burst is enabled.","schema":{"type":"string"},"example":"100"},"RateLimit-Remaining":{"required":false,"description":"The number of requests remaining until the next window.","schema":{"type":"string"},"example":"93"},"RateLimit-Reset":{"required":false,"description":"The remaining seconds until a request of the same cost will be refreshed.","schema":{"type":"string"},"example":"8"},"RateLimit-Policy":{"required":false,"description":"The rate limit policy that was used to evaluate the request.","schema":{"type":"string"},"example":"100;w=1;burst=110;comment=\"token bucket\";category=\"trigger\";cost=\"single\""},"Idempotency-Key":{"required":false,"description":"The idempotency key used to evaluate the request.","schema":{"type":"string"},"example":"8"},"Idempotency-Replay":{"required":false,"description":"Whether the request was a replay of a previous request.","schema":{"type":"string"},"example":"true"}},"content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","description":"HTTP status code of the error response.","example":404,"isRequired":true,"uniqueKey":"statusCode","typeLabel":"number"},"timestamp":{"type":"string","description":"Timestamp of when the error occurred.","example":"2024-12-12T13:00:00Z","isRequired":true,"uniqueKey":"timestamp","typeLabel":"string"},"path":{"type":"string","description":"The path where the error occurred.","example":"/api/v1/resource","isRequired":true,"uniqueKey":"path","typeLabel":"string"},"message":{"oneOf":[{"type":"string","description":"Value that failed validation","example":"xx xx xx ","uniqueKey":"message.oneOf.0","typeLabel":"string"},{"type":"null","description":"Value that failed validation","example":"xx xx xx ","uniqueKey":"message.oneOf.1","typeLabel":"null"},{"type":"number","description":"Value that failed validation","example":"xx xx xx ","uniqueKey":"message.oneOf.2","typeLabel":"number"},{"type":"boolean","description":"Value that failed validation","example":"xx xx xx ","uniqueKey":"message.oneOf.3","typeLabel":"boolean"},{"type":"object","description":"Value that failed validation","example":"xx xx xx ","uniqueKey":"message.oneOf.4","typeLabel":"object"},{"type":"null","description":"Value that failed validation","example":"xx xx xx ","uniqueKey":"message.oneOf.5","typeLabel":"null"},{"type":"array","items":{"oneOf":[{"type":"string","uniqueKey":"message.oneOf.6.items.[INDEX].oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"message.oneOf.6.items.[INDEX].oneOf.1","typeLabel":"null"},{"type":"number","uniqueKey":"message.oneOf.6.items.[INDEX].oneOf.2","typeLabel":"number"},{"type":"boolean","uniqueKey":"message.oneOf.6.items.[INDEX].oneOf.3","typeLabel":"boolean"},{"type":"object","additionalProperties":true,"uniqueKey":"message.oneOf.6.items.[INDEX].oneOf.4","typeLabel":"object"}],"uniqueKey":"message.oneOf.6.items.[INDEX]","typeLabel":"string | null | number | boolean | object"},"description":"Value that failed validation","example":"xx xx xx ","uniqueKey":"message.oneOf.6","typeLabel":"(string | null | number | boolean | object)[]"}],"uniqueKey":"message","typeLabel":"string · null · number · boolean · object · null · (string | null | number | boolean | object)[]"},"ctx":{"type":"object","description":"Optional context object for additional error details.","additionalProperties":true,"example":{"workflowId":"some_wf_id","stepId":"some_wf_id"},"uniqueKey":"ctx","typeLabel":"object"},"errorId":{"type":"string","description":"Optional unique identifier for the error, useful for tracking using Sentry and \n New Relic, only available for 500.","example":"abc123","uniqueKey":"errorId","typeLabel":"string"}},"required":["statusCode","timestamp","path"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"statusCode":404,"timestamp":"2024-12-12T13:00:00Z","path":"/api/v1/resource","message":"xx xx xx ","ctx":{"workflowId":"some_wf_id","stepId":"some_wf_id"},"errorId":"abc123"}}},"exampleType":"generated"}},"exampleType":"generated"},"697fb666-d7bc-4c84-a684-34353cf4fda5":{"description":"Forbidden","headers":{"Content-Type":{"required":true,"description":"The MIME type of the response body.","schema":{"type":"string"},"example":"application/json"},"RateLimit-Limit":{"required":false,"description":"The number of requests that the client is permitted to make per second. The actual maximum may differ when burst is enabled.","schema":{"type":"string"},"example":"100"},"RateLimit-Remaining":{"required":false,"description":"The number of requests remaining until the next window.","schema":{"type":"string"},"example":"93"},"RateLimit-Reset":{"required":false,"description":"The remaining seconds until a request of the same cost will be refreshed.","schema":{"type":"string"},"example":"8"},"RateLimit-Policy":{"required":false,"description":"The rate limit policy that was used to evaluate the request.","schema":{"type":"string"},"example":"100;w=1;burst=110;comment=\"token bucket\";category=\"trigger\";cost=\"single\""},"Idempotency-Key":{"required":false,"description":"The idempotency key used to evaluate the request.","schema":{"type":"string"},"example":"8"},"Idempotency-Replay":{"required":false,"description":"Whether the request was a replay of a previous request.","schema":{"type":"string"},"example":"true"}},"content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","description":"HTTP status code of the error response.","example":404,"isRequired":true,"uniqueKey":"statusCode","typeLabel":"number"},"timestamp":{"type":"string","description":"Timestamp of when the error occurred.","example":"2024-12-12T13:00:00Z","isRequired":true,"uniqueKey":"timestamp","typeLabel":"string"},"path":{"type":"string","description":"The path where the error occurred.","example":"/api/v1/resource","isRequired":true,"uniqueKey":"path","typeLabel":"string"},"message":{"oneOf":[{"type":"string","description":"Value that failed validation","example":"xx xx xx ","uniqueKey":"message.oneOf.0","typeLabel":"string"},{"type":"null","description":"Value that failed validation","example":"xx xx xx ","uniqueKey":"message.oneOf.1","typeLabel":"null"},{"type":"number","description":"Value that failed validation","example":"xx xx xx ","uniqueKey":"message.oneOf.2","typeLabel":"number"},{"type":"boolean","description":"Value that failed validation","example":"xx xx xx ","uniqueKey":"message.oneOf.3","typeLabel":"boolean"},{"type":"object","description":"Value that failed validation","example":"xx xx xx ","uniqueKey":"message.oneOf.4","typeLabel":"object"},{"type":"null","description":"Value that failed validation","example":"xx xx xx ","uniqueKey":"message.oneOf.5","typeLabel":"null"},{"type":"array","items":{"oneOf":[{"type":"string","uniqueKey":"message.oneOf.6.items.[INDEX].oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"message.oneOf.6.items.[INDEX].oneOf.1","typeLabel":"null"},{"type":"number","uniqueKey":"message.oneOf.6.items.[INDEX].oneOf.2","typeLabel":"number"},{"type":"boolean","uniqueKey":"message.oneOf.6.items.[INDEX].oneOf.3","typeLabel":"boolean"},{"type":"object","additionalProperties":true,"uniqueKey":"message.oneOf.6.items.[INDEX].oneOf.4","typeLabel":"object"}],"uniqueKey":"message.oneOf.6.items.[INDEX]","typeLabel":"string | null | number | boolean | object"},"description":"Value that failed validation","example":"xx xx xx ","uniqueKey":"message.oneOf.6","typeLabel":"(string | null | number | boolean | object)[]"}],"uniqueKey":"message","typeLabel":"string · null · number · boolean · object · null · (string | null | number | boolean | object)[]"},"ctx":{"type":"object","description":"Optional context object for additional error details.","additionalProperties":true,"example":{"workflowId":"some_wf_id","stepId":"some_wf_id"},"uniqueKey":"ctx","typeLabel":"object"},"errorId":{"type":"string","description":"Optional unique identifier for the error, useful for tracking using Sentry and \n New Relic, only available for 500.","example":"abc123","uniqueKey":"errorId","typeLabel":"string"}},"required":["statusCode","timestamp","path"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"statusCode":404,"timestamp":"2024-12-12T13:00:00Z","path":"/api/v1/resource","message":"xx xx xx ","ctx":{"workflowId":"some_wf_id","stepId":"some_wf_id"},"errorId":"abc123"}}},"exampleType":"generated"}},"exampleType":"generated"},"298dc3c5-2612-43a8-a261-0496d3393002":{"description":"Not Found","headers":{"Content-Type":{"required":true,"description":"The MIME type of the response body.","schema":{"type":"string"},"example":"application/json"},"RateLimit-Limit":{"required":false,"description":"The number of requests that the client is permitted to make per second. The actual maximum may differ when burst is enabled.","schema":{"type":"string"},"example":"100"},"RateLimit-Remaining":{"required":false,"description":"The number of requests remaining until the next window.","schema":{"type":"string"},"example":"93"},"RateLimit-Reset":{"required":false,"description":"The remaining seconds until a request of the same cost will be refreshed.","schema":{"type":"string"},"example":"8"},"RateLimit-Policy":{"required":false,"description":"The rate limit policy that was used to evaluate the request.","schema":{"type":"string"},"example":"100;w=1;burst=110;comment=\"token bucket\";category=\"trigger\";cost=\"single\""},"Idempotency-Key":{"required":false,"description":"The idempotency key used to evaluate the request.","schema":{"type":"string"},"example":"8"},"Idempotency-Replay":{"required":false,"description":"Whether the request was a replay of a previous request.","schema":{"type":"string"},"example":"true"}},"content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","description":"HTTP status code of the error response.","example":404,"isRequired":true,"uniqueKey":"statusCode","typeLabel":"number"},"timestamp":{"type":"string","description":"Timestamp of when the error occurred.","example":"2024-12-12T13:00:00Z","isRequired":true,"uniqueKey":"timestamp","typeLabel":"string"},"path":{"type":"string","description":"The path where the error occurred.","example":"/api/v1/resource","isRequired":true,"uniqueKey":"path","typeLabel":"string"},"message":{"oneOf":[{"type":"string","description":"Value that failed validation","example":"xx xx xx ","uniqueKey":"message.oneOf.0","typeLabel":"string"},{"type":"null","description":"Value that failed validation","example":"xx xx xx ","uniqueKey":"message.oneOf.1","typeLabel":"null"},{"type":"number","description":"Value that failed validation","example":"xx xx xx ","uniqueKey":"message.oneOf.2","typeLabel":"number"},{"type":"boolean","description":"Value that failed validation","example":"xx xx xx ","uniqueKey":"message.oneOf.3","typeLabel":"boolean"},{"type":"object","description":"Value that failed validation","example":"xx xx xx ","uniqueKey":"message.oneOf.4","typeLabel":"object"},{"type":"null","description":"Value that failed validation","example":"xx xx xx ","uniqueKey":"message.oneOf.5","typeLabel":"null"},{"type":"array","items":{"oneOf":[{"type":"string","uniqueKey":"message.oneOf.6.items.[INDEX].oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"message.oneOf.6.items.[INDEX].oneOf.1","typeLabel":"null"},{"type":"number","uniqueKey":"message.oneOf.6.items.[INDEX].oneOf.2","typeLabel":"number"},{"type":"boolean","uniqueKey":"message.oneOf.6.items.[INDEX].oneOf.3","typeLabel":"boolean"},{"type":"object","additionalProperties":true,"uniqueKey":"message.oneOf.6.items.[INDEX].oneOf.4","typeLabel":"object"}],"uniqueKey":"message.oneOf.6.items.[INDEX]","typeLabel":"string | null | number | boolean | object"},"description":"Value that failed validation","example":"xx xx xx ","uniqueKey":"message.oneOf.6","typeLabel":"(string | null | number | boolean | object)[]"}],"uniqueKey":"message","typeLabel":"string · null · number · boolean · object · null · (string | null | number | boolean | object)[]"},"ctx":{"type":"object","description":"Optional context object for additional error details.","additionalProperties":true,"example":{"workflowId":"some_wf_id","stepId":"some_wf_id"},"uniqueKey":"ctx","typeLabel":"object"},"errorId":{"type":"string","description":"Optional unique identifier for the error, useful for tracking using Sentry and \n New Relic, only available for 500.","example":"abc123","uniqueKey":"errorId","typeLabel":"string"}},"required":["statusCode","timestamp","path"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"statusCode":404,"timestamp":"2024-12-12T13:00:00Z","path":"/api/v1/resource","message":"xx xx xx ","ctx":{"workflowId":"some_wf_id","stepId":"some_wf_id"},"errorId":"abc123"}}},"exampleType":"generated"}},"exampleType":"generated"},"8c254ce7-0be4-4e10-b52b-02fff54f2bd9":{"description":"Method Not Allowed","headers":{"Content-Type":{"required":true,"description":"The MIME type of the response body.","schema":{"type":"string"},"example":"application/json"},"RateLimit-Limit":{"required":false,"description":"The number of requests that the client is permitted to make per second. The actual maximum may differ when burst is enabled.","schema":{"type":"string"},"example":"100"},"RateLimit-Remaining":{"required":false,"description":"The number of requests remaining until the next window.","schema":{"type":"string"},"example":"93"},"RateLimit-Reset":{"required":false,"description":"The remaining seconds until a request of the same cost will be refreshed.","schema":{"type":"string"},"example":"8"},"RateLimit-Policy":{"required":false,"description":"The rate limit policy that was used to evaluate the request.","schema":{"type":"string"},"example":"100;w=1;burst=110;comment=\"token bucket\";category=\"trigger\";cost=\"single\""},"Idempotency-Key":{"required":false,"description":"The idempotency key used to evaluate the request.","schema":{"type":"string"},"example":"8"},"Idempotency-Replay":{"required":false,"description":"Whether the request was a replay of a previous request.","schema":{"type":"string"},"example":"true"}},"content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","description":"HTTP status code of the error response.","example":404,"isRequired":true,"uniqueKey":"statusCode","typeLabel":"number"},"timestamp":{"type":"string","description":"Timestamp of when the error occurred.","example":"2024-12-12T13:00:00Z","isRequired":true,"uniqueKey":"timestamp","typeLabel":"string"},"path":{"type":"string","description":"The path where the error occurred.","example":"/api/v1/resource","isRequired":true,"uniqueKey":"path","typeLabel":"string"},"message":{"oneOf":[{"type":"string","description":"Value that failed validation","example":"xx xx xx ","uniqueKey":"message.oneOf.0","typeLabel":"string"},{"type":"null","description":"Value that failed validation","example":"xx xx xx ","uniqueKey":"message.oneOf.1","typeLabel":"null"},{"type":"number","description":"Value that failed validation","example":"xx xx xx ","uniqueKey":"message.oneOf.2","typeLabel":"number"},{"type":"boolean","description":"Value that failed validation","example":"xx xx xx ","uniqueKey":"message.oneOf.3","typeLabel":"boolean"},{"type":"object","description":"Value that failed validation","example":"xx xx xx ","uniqueKey":"message.oneOf.4","typeLabel":"object"},{"type":"null","description":"Value that failed validation","example":"xx xx xx ","uniqueKey":"message.oneOf.5","typeLabel":"null"},{"type":"array","items":{"oneOf":[{"type":"string","uniqueKey":"message.oneOf.6.items.[INDEX].oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"message.oneOf.6.items.[INDEX].oneOf.1","typeLabel":"null"},{"type":"number","uniqueKey":"message.oneOf.6.items.[INDEX].oneOf.2","typeLabel":"number"},{"type":"boolean","uniqueKey":"message.oneOf.6.items.[INDEX].oneOf.3","typeLabel":"boolean"},{"type":"object","additionalProperties":true,"uniqueKey":"message.oneOf.6.items.[INDEX].oneOf.4","typeLabel":"object"}],"uniqueKey":"message.oneOf.6.items.[INDEX]","typeLabel":"string | null | number | boolean | object"},"description":"Value that failed validation","example":"xx xx xx ","uniqueKey":"message.oneOf.6","typeLabel":"(string | null | number | boolean | object)[]"}],"uniqueKey":"message","typeLabel":"string · null · number · boolean · object · null · (string | null | number | boolean | object)[]"},"ctx":{"type":"object","description":"Optional context object for additional error details.","additionalProperties":true,"example":{"workflowId":"some_wf_id","stepId":"some_wf_id"},"uniqueKey":"ctx","typeLabel":"object"},"errorId":{"type":"string","description":"Optional unique identifier for the error, useful for tracking using Sentry and \n New Relic, only available for 500.","example":"abc123","uniqueKey":"errorId","typeLabel":"string"}},"required":["statusCode","timestamp","path"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"statusCode":404,"timestamp":"2024-12-12T13:00:00Z","path":"/api/v1/resource","message":"xx xx xx ","ctx":{"workflowId":"some_wf_id","stepId":"some_wf_id"},"errorId":"abc123"}}},"exampleType":"generated"}},"exampleType":"generated"},"600b87f1-f630-4e0f-95a1-f158df85c882":{"description":"Conflict","headers":{"Content-Type":{"required":true,"description":"The MIME type of the response body.","schema":{"type":"string"},"example":"application/json"},"RateLimit-Limit":{"required":false,"description":"The number of requests that the client is permitted to make per second. The actual maximum may differ when burst is enabled.","schema":{"type":"string"},"example":"100"},"RateLimit-Remaining":{"required":false,"description":"The number of requests remaining until the next window.","schema":{"type":"string"},"example":"93"},"RateLimit-Reset":{"required":false,"description":"The remaining seconds until a request of the same cost will be refreshed.","schema":{"type":"string"},"example":"8"},"RateLimit-Policy":{"required":false,"description":"The rate limit policy that was used to evaluate the request.","schema":{"type":"string"},"example":"100;w=1;burst=110;comment=\"token bucket\";category=\"trigger\";cost=\"single\""},"Idempotency-Key":{"required":false,"description":"The idempotency key used to evaluate the request.","schema":{"type":"string"},"example":"8"},"Idempotency-Replay":{"required":false,"description":"Whether the request was a replay of a previous request.","schema":{"type":"string"},"example":"true"}},"content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","description":"HTTP status code of the error response.","example":404,"isRequired":true,"uniqueKey":"statusCode","typeLabel":"number"},"timestamp":{"type":"string","description":"Timestamp of when the error occurred.","example":"2024-12-12T13:00:00Z","isRequired":true,"uniqueKey":"timestamp","typeLabel":"string"},"path":{"type":"string","description":"The path where the error occurred.","example":"/api/v1/resource","isRequired":true,"uniqueKey":"path","typeLabel":"string"},"message":{"oneOf":[{"type":"string","description":"Value that failed validation","example":"xx xx xx ","uniqueKey":"message.oneOf.0","typeLabel":"string"},{"type":"null","description":"Value that failed validation","example":"xx xx xx ","uniqueKey":"message.oneOf.1","typeLabel":"null"},{"type":"number","description":"Value that failed validation","example":"xx xx xx ","uniqueKey":"message.oneOf.2","typeLabel":"number"},{"type":"boolean","description":"Value that failed validation","example":"xx xx xx ","uniqueKey":"message.oneOf.3","typeLabel":"boolean"},{"type":"object","description":"Value that failed validation","example":"xx xx xx ","uniqueKey":"message.oneOf.4","typeLabel":"object"},{"type":"null","description":"Value that failed validation","example":"xx xx xx ","uniqueKey":"message.oneOf.5","typeLabel":"null"},{"type":"array","items":{"oneOf":[{"type":"string","uniqueKey":"message.oneOf.6.items.[INDEX].oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"message.oneOf.6.items.[INDEX].oneOf.1","typeLabel":"null"},{"type":"number","uniqueKey":"message.oneOf.6.items.[INDEX].oneOf.2","typeLabel":"number"},{"type":"boolean","uniqueKey":"message.oneOf.6.items.[INDEX].oneOf.3","typeLabel":"boolean"},{"type":"object","additionalProperties":true,"uniqueKey":"message.oneOf.6.items.[INDEX].oneOf.4","typeLabel":"object"}],"uniqueKey":"message.oneOf.6.items.[INDEX]","typeLabel":"string | null | number | boolean | object"},"description":"Value that failed validation","example":"xx xx xx ","uniqueKey":"message.oneOf.6","typeLabel":"(string | null | number | boolean | object)[]"}],"uniqueKey":"message","typeLabel":"string · null · number · boolean · object · null · (string | null | number | boolean | object)[]"},"ctx":{"type":"object","description":"Optional context object for additional error details.","additionalProperties":true,"example":{"workflowId":"some_wf_id","stepId":"some_wf_id"},"uniqueKey":"ctx","typeLabel":"object"},"errorId":{"type":"string","description":"Optional unique identifier for the error, useful for tracking using Sentry and \n New Relic, only available for 500.","example":"abc123","uniqueKey":"errorId","typeLabel":"string"}},"required":["statusCode","timestamp","path"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"statusCode":404,"timestamp":"2024-12-12T13:00:00Z","path":"/api/v1/resource","message":"xx xx xx ","ctx":{"workflowId":"some_wf_id","stepId":"some_wf_id"},"errorId":"abc123"}}},"exampleType":"generated"}},"exampleType":"generated"},"fcc3629d-3493-45a4-9532-d967fd91cf5f":{"description":"Payload Too Large","headers":{"Content-Type":{"required":true,"description":"The MIME type of the response body.","schema":{"type":"string"},"example":"application/json"},"RateLimit-Limit":{"required":false,"description":"The number of requests that the client is permitted to make per second. The actual maximum may differ when burst is enabled.","schema":{"type":"string"},"example":"100"},"RateLimit-Remaining":{"required":false,"description":"The number of requests remaining until the next window.","schema":{"type":"string"},"example":"93"},"RateLimit-Reset":{"required":false,"description":"The remaining seconds until a request of the same cost will be refreshed.","schema":{"type":"string"},"example":"8"},"RateLimit-Policy":{"required":false,"description":"The rate limit policy that was used to evaluate the request.","schema":{"type":"string"},"example":"100;w=1;burst=110;comment=\"token bucket\";category=\"trigger\";cost=\"single\""},"Idempotency-Key":{"required":false,"description":"The idempotency key used to evaluate the request.","schema":{"type":"string"},"example":"8"},"Idempotency-Replay":{"required":false,"description":"Whether the request was a replay of a previous request.","schema":{"type":"string"},"example":"true"}},"content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","description":"HTTP status code of the error response.","example":404,"isRequired":true,"uniqueKey":"statusCode","typeLabel":"number"},"timestamp":{"type":"string","description":"Timestamp of when the error occurred.","example":"2024-12-12T13:00:00Z","isRequired":true,"uniqueKey":"timestamp","typeLabel":"string"},"path":{"type":"string","description":"The path where the error occurred.","example":"/api/v1/resource","isRequired":true,"uniqueKey":"path","typeLabel":"string"},"message":{"oneOf":[{"type":"string","description":"Value that failed validation","example":"xx xx xx ","uniqueKey":"message.oneOf.0","typeLabel":"string"},{"type":"null","description":"Value that failed validation","example":"xx xx xx ","uniqueKey":"message.oneOf.1","typeLabel":"null"},{"type":"number","description":"Value that failed validation","example":"xx xx xx ","uniqueKey":"message.oneOf.2","typeLabel":"number"},{"type":"boolean","description":"Value that failed validation","example":"xx xx xx ","uniqueKey":"message.oneOf.3","typeLabel":"boolean"},{"type":"object","description":"Value that failed validation","example":"xx xx xx ","uniqueKey":"message.oneOf.4","typeLabel":"object"},{"type":"null","description":"Value that failed validation","example":"xx xx xx ","uniqueKey":"message.oneOf.5","typeLabel":"null"},{"type":"array","items":{"oneOf":[{"type":"string","uniqueKey":"message.oneOf.6.items.[INDEX].oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"message.oneOf.6.items.[INDEX].oneOf.1","typeLabel":"null"},{"type":"number","uniqueKey":"message.oneOf.6.items.[INDEX].oneOf.2","typeLabel":"number"},{"type":"boolean","uniqueKey":"message.oneOf.6.items.[INDEX].oneOf.3","typeLabel":"boolean"},{"type":"object","additionalProperties":true,"uniqueKey":"message.oneOf.6.items.[INDEX].oneOf.4","typeLabel":"object"}],"uniqueKey":"message.oneOf.6.items.[INDEX]","typeLabel":"string | null | number | boolean | object"},"description":"Value that failed validation","example":"xx xx xx ","uniqueKey":"message.oneOf.6","typeLabel":"(string | null | number | boolean | object)[]"}],"uniqueKey":"message","typeLabel":"string · null · number · boolean · object · null · (string | null | number | boolean | object)[]"},"ctx":{"type":"object","description":"Optional context object for additional error details.","additionalProperties":true,"example":{"workflowId":"some_wf_id","stepId":"some_wf_id"},"uniqueKey":"ctx","typeLabel":"object"},"errorId":{"type":"string","description":"Optional unique identifier for the error, useful for tracking using Sentry and \n New Relic, only available for 500.","example":"abc123","uniqueKey":"errorId","typeLabel":"string"}},"required":["statusCode","timestamp","path"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"statusCode":404,"timestamp":"2024-12-12T13:00:00Z","path":"/api/v1/resource","message":"xx xx xx ","ctx":{"workflowId":"some_wf_id","stepId":"some_wf_id"},"errorId":"abc123"}}},"exampleType":"generated"}},"exampleType":"generated"},"9f1e151e-960a-4314-9398-a2224f9fff46":{"description":"URI Too Long","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","description":"HTTP status code of the error response.","example":404,"isRequired":true,"uniqueKey":"statusCode","typeLabel":"number"},"timestamp":{"type":"string","description":"Timestamp of when the error occurred.","example":"2024-12-12T13:00:00Z","isRequired":true,"uniqueKey":"timestamp","typeLabel":"string"},"path":{"type":"string","description":"The path where the error occurred.","example":"/api/v1/resource","isRequired":true,"uniqueKey":"path","typeLabel":"string"},"message":{"oneOf":[{"type":"string","description":"Value that failed validation","example":"xx xx xx ","uniqueKey":"message.oneOf.0","typeLabel":"string"},{"type":"null","description":"Value that failed validation","example":"xx xx xx ","uniqueKey":"message.oneOf.1","typeLabel":"null"},{"type":"number","description":"Value that failed validation","example":"xx xx xx ","uniqueKey":"message.oneOf.2","typeLabel":"number"},{"type":"boolean","description":"Value that failed validation","example":"xx xx xx ","uniqueKey":"message.oneOf.3","typeLabel":"boolean"},{"type":"object","description":"Value that failed validation","example":"xx xx xx ","uniqueKey":"message.oneOf.4","typeLabel":"object"},{"type":"null","description":"Value that failed validation","example":"xx xx xx ","uniqueKey":"message.oneOf.5","typeLabel":"null"},{"type":"array","items":{"oneOf":[{"type":"string","uniqueKey":"message.oneOf.6.items.[INDEX].oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"message.oneOf.6.items.[INDEX].oneOf.1","typeLabel":"null"},{"type":"number","uniqueKey":"message.oneOf.6.items.[INDEX].oneOf.2","typeLabel":"number"},{"type":"boolean","uniqueKey":"message.oneOf.6.items.[INDEX].oneOf.3","typeLabel":"boolean"},{"type":"object","additionalProperties":true,"uniqueKey":"message.oneOf.6.items.[INDEX].oneOf.4","typeLabel":"object"}],"uniqueKey":"message.oneOf.6.items.[INDEX]","typeLabel":"string | null | number | boolean | object"},"description":"Value that failed validation","example":"xx xx xx ","uniqueKey":"message.oneOf.6","typeLabel":"(string | null | number | boolean | object)[]"}],"uniqueKey":"message","typeLabel":"string · null · number · boolean · object · null · (string | null | number | boolean | object)[]"},"ctx":{"type":"object","description":"Optional context object for additional error details.","additionalProperties":true,"example":{"workflowId":"some_wf_id","stepId":"some_wf_id"},"uniqueKey":"ctx","typeLabel":"object"},"errorId":{"type":"string","description":"Optional unique identifier for the error, useful for tracking using Sentry and \n New Relic, only available for 500.","example":"abc123","uniqueKey":"errorId","typeLabel":"string"}},"required":["statusCode","timestamp","path"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"statusCode":404,"timestamp":"2024-12-12T13:00:00Z","path":"/api/v1/resource","message":"xx xx xx ","ctx":{"workflowId":"some_wf_id","stepId":"some_wf_id"},"errorId":"abc123"}}},"exampleType":"generated"}},"exampleType":"generated"},"9ed9c15c-5c06-4663-882b-638cbd31f308":{"description":"Unsupported Media Type","headers":{"Content-Type":{"required":true,"description":"The MIME type of the response body.","schema":{"type":"string"},"example":"application/json"},"RateLimit-Limit":{"required":false,"description":"The number of requests that the client is permitted to make per second. The actual maximum may differ when burst is enabled.","schema":{"type":"string"},"example":"100"},"RateLimit-Remaining":{"required":false,"description":"The number of requests remaining until the next window.","schema":{"type":"string"},"example":"93"},"RateLimit-Reset":{"required":false,"description":"The remaining seconds until a request of the same cost will be refreshed.","schema":{"type":"string"},"example":"8"},"RateLimit-Policy":{"required":false,"description":"The rate limit policy that was used to evaluate the request.","schema":{"type":"string"},"example":"100;w=1;burst=110;comment=\"token bucket\";category=\"trigger\";cost=\"single\""},"Idempotency-Key":{"required":false,"description":"The idempotency key used to evaluate the request.","schema":{"type":"string"},"example":"8"},"Idempotency-Replay":{"required":false,"description":"Whether the request was a replay of a previous request.","schema":{"type":"string"},"example":"true"}},"content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","description":"HTTP status code of the error response.","example":404,"isRequired":true,"uniqueKey":"statusCode","typeLabel":"number"},"timestamp":{"type":"string","description":"Timestamp of when the error occurred.","example":"2024-12-12T13:00:00Z","isRequired":true,"uniqueKey":"timestamp","typeLabel":"string"},"path":{"type":"string","description":"The path where the error occurred.","example":"/api/v1/resource","isRequired":true,"uniqueKey":"path","typeLabel":"string"},"message":{"oneOf":[{"type":"string","description":"Value that failed validation","example":"xx xx xx ","uniqueKey":"message.oneOf.0","typeLabel":"string"},{"type":"null","description":"Value that failed validation","example":"xx xx xx ","uniqueKey":"message.oneOf.1","typeLabel":"null"},{"type":"number","description":"Value that failed validation","example":"xx xx xx ","uniqueKey":"message.oneOf.2","typeLabel":"number"},{"type":"boolean","description":"Value that failed validation","example":"xx xx xx ","uniqueKey":"message.oneOf.3","typeLabel":"boolean"},{"type":"object","description":"Value that failed validation","example":"xx xx xx ","uniqueKey":"message.oneOf.4","typeLabel":"object"},{"type":"null","description":"Value that failed validation","example":"xx xx xx ","uniqueKey":"message.oneOf.5","typeLabel":"null"},{"type":"array","items":{"oneOf":[{"type":"string","uniqueKey":"message.oneOf.6.items.[INDEX].oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"message.oneOf.6.items.[INDEX].oneOf.1","typeLabel":"null"},{"type":"number","uniqueKey":"message.oneOf.6.items.[INDEX].oneOf.2","typeLabel":"number"},{"type":"boolean","uniqueKey":"message.oneOf.6.items.[INDEX].oneOf.3","typeLabel":"boolean"},{"type":"object","additionalProperties":true,"uniqueKey":"message.oneOf.6.items.[INDEX].oneOf.4","typeLabel":"object"}],"uniqueKey":"message.oneOf.6.items.[INDEX]","typeLabel":"string | null | number | boolean | object"},"description":"Value that failed validation","example":"xx xx xx ","uniqueKey":"message.oneOf.6","typeLabel":"(string | null | number | boolean | object)[]"}],"uniqueKey":"message","typeLabel":"string · null · number · boolean · object · null · (string | null | number | boolean | object)[]"},"ctx":{"type":"object","description":"Optional context object for additional error details.","additionalProperties":true,"example":{"workflowId":"some_wf_id","stepId":"some_wf_id"},"uniqueKey":"ctx","typeLabel":"object"},"errorId":{"type":"string","description":"Optional unique identifier for the error, useful for tracking using Sentry and \n New Relic, only available for 500.","example":"abc123","uniqueKey":"errorId","typeLabel":"string"}},"required":["statusCode","timestamp","path"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"statusCode":404,"timestamp":"2024-12-12T13:00:00Z","path":"/api/v1/resource","message":"xx xx xx ","ctx":{"workflowId":"some_wf_id","stepId":"some_wf_id"},"errorId":"abc123"}}},"exampleType":"generated"}},"exampleType":"generated"},"db55555f-fa3e-497e-924b-37e100165b21":{"description":"Unprocessable Entity","headers":{"Content-Type":{"required":true,"description":"The MIME type of the response body.","schema":{"type":"string"},"example":"application/json"},"RateLimit-Limit":{"required":false,"description":"The number of requests that the client is permitted to make per second. The actual maximum may differ when burst is enabled.","schema":{"type":"string"},"example":"100"},"RateLimit-Remaining":{"required":false,"description":"The number of requests remaining until the next window.","schema":{"type":"string"},"example":"93"},"RateLimit-Reset":{"required":false,"description":"The remaining seconds until a request of the same cost will be refreshed.","schema":{"type":"string"},"example":"8"},"RateLimit-Policy":{"required":false,"description":"The rate limit policy that was used to evaluate the request.","schema":{"type":"string"},"example":"100;w=1;burst=110;comment=\"token bucket\";category=\"trigger\";cost=\"single\""},"Idempotency-Key":{"required":false,"description":"The idempotency key used to evaluate the request.","schema":{"type":"string"},"example":"8"},"Idempotency-Replay":{"required":false,"description":"Whether the request was a replay of a previous request.","schema":{"type":"string"},"example":"true"}},"content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","description":"HTTP status code of the error response.","example":404,"isRequired":true,"uniqueKey":"statusCode","typeLabel":"number"},"timestamp":{"type":"string","description":"Timestamp of when the error occurred.","example":"2024-12-12T13:00:00Z","isRequired":true,"uniqueKey":"timestamp","typeLabel":"string"},"path":{"type":"string","description":"The path where the error occurred.","example":"/api/v1/resource","isRequired":true,"uniqueKey":"path","typeLabel":"string"},"errors":{"type":"object","description":"A record of validation errors keyed by field name","additionalProperties":{"type":"object","properties":{"messages":{"type":"array","items":{"type":"string","uniqueKey":"errors.additionalProperties.messages.items.[INDEX]","typeLabel":"string"},"description":"List of validation error messages","example":["Field is required","Invalid format"],"isRequired":true,"uniqueKey":"errors.additionalProperties.messages","typeLabel":"string[]"},"value":{"oneOf":[{"type":"string","description":"Value that failed validation","example":"xx xx xx ","uniqueKey":"errors.additionalProperties.value.oneOf.0","typeLabel":"string"},{"type":"null","description":"Value that failed validation","example":"xx xx xx ","uniqueKey":"errors.additionalProperties.value.oneOf.1","typeLabel":"null"},{"type":"number","description":"Value that failed validation","example":"xx xx xx ","uniqueKey":"errors.additionalProperties.value.oneOf.2","typeLabel":"number"},{"type":"boolean","description":"Value that failed validation","example":"xx xx xx ","uniqueKey":"errors.additionalProperties.value.oneOf.3","typeLabel":"boolean"},{"type":"object","description":"Value that failed validation","example":"xx xx xx ","uniqueKey":"errors.additionalProperties.value.oneOf.4","typeLabel":"object"},{"type":"array","items":{"oneOf":[{"type":"string","uniqueKey":"errors.additionalProperties.value.oneOf.5.items.[INDEX].oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"errors.additionalProperties.value.oneOf.5.items.[INDEX].oneOf.1","typeLabel":"null"},{"type":"number","uniqueKey":"errors.additionalProperties.value.oneOf.5.items.[INDEX].oneOf.2","typeLabel":"number"},{"type":"boolean","uniqueKey":"errors.additionalProperties.value.oneOf.5.items.[INDEX].oneOf.3","typeLabel":"boolean"},{"type":"object","additionalProperties":true,"uniqueKey":"errors.additionalProperties.value.oneOf.5.items.[INDEX].oneOf.4","typeLabel":"object"}],"uniqueKey":"errors.additionalProperties.value.oneOf.5.items.[INDEX]","typeLabel":"string | null | number | boolean | object"},"description":"Value that failed validation","example":"xx xx xx ","uniqueKey":"errors.additionalProperties.value.oneOf.5","typeLabel":"(string | null | number | boolean | object)[]"}],"uniqueKey":"errors.additionalProperties.value","typeLabel":"string | null | number | boolean | object | (string | null | number | boolean | object)[]"}},"required":["messages"],"uniqueKey":"errors.additionalProperties","typeLabel":"object"},"example":{"fieldName1":{"messages":["Field is required","Must be a valid email address"],"value":"invalidEmail"},"fieldName2":{"messages":["Must be at least 18 years old"],"value":17},"fieldName3":{"messages":["Must be a boolean value"],"value":true},"fieldName4":{"messages":["Must be a valid object"],"value":{"key":"value"}},"fieldName5":{"messages":["Field is missing"],"value":null},"fieldName6":{"messages":["Undefined value"]}},"isRequired":true,"uniqueKey":"errors","typeLabel":"object"},"message":{"oneOf":[{"type":"string","description":"Value that failed validation","example":"xx xx xx ","uniqueKey":"message.oneOf.0","typeLabel":"string"},{"type":"null","description":"Value that failed validation","example":"xx xx xx ","uniqueKey":"message.oneOf.1","typeLabel":"null"},{"type":"number","description":"Value that failed validation","example":"xx xx xx ","uniqueKey":"message.oneOf.2","typeLabel":"number"},{"type":"boolean","description":"Value that failed validation","example":"xx xx xx ","uniqueKey":"message.oneOf.3","typeLabel":"boolean"},{"type":"object","description":"Value that failed validation","example":"xx xx xx ","uniqueKey":"message.oneOf.4","typeLabel":"object"},{"type":"null","description":"Value that failed validation","example":"xx xx xx ","uniqueKey":"message.oneOf.5","typeLabel":"null"},{"type":"array","items":{"oneOf":[{"type":"string","uniqueKey":"message.oneOf.6.items.[INDEX].oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"message.oneOf.6.items.[INDEX].oneOf.1","typeLabel":"null"},{"type":"number","uniqueKey":"message.oneOf.6.items.[INDEX].oneOf.2","typeLabel":"number"},{"type":"boolean","uniqueKey":"message.oneOf.6.items.[INDEX].oneOf.3","typeLabel":"boolean"},{"type":"object","additionalProperties":true,"uniqueKey":"message.oneOf.6.items.[INDEX].oneOf.4","typeLabel":"object"}],"uniqueKey":"message.oneOf.6.items.[INDEX]","typeLabel":"string | null | number | boolean | object"},"description":"Value that failed validation","example":"xx xx xx ","uniqueKey":"message.oneOf.6","typeLabel":"(string | null | number | boolean | object)[]"}],"uniqueKey":"message","typeLabel":"string · null · number · boolean · object · null · (string | null | number | boolean | object)[]"},"ctx":{"type":"object","description":"Optional context object for additional error details.","additionalProperties":true,"example":{"workflowId":"some_wf_id","stepId":"some_wf_id"},"uniqueKey":"ctx","typeLabel":"object"},"errorId":{"type":"string","description":"Optional unique identifier for the error, useful for tracking using Sentry and \n New Relic, only available for 500.","example":"abc123","uniqueKey":"errorId","typeLabel":"string"}},"required":["statusCode","timestamp","path","errors"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"statusCode":404,"timestamp":"2024-12-12T13:00:00Z","path":"/api/v1/resource","errors":{"fieldName1":{"messages":["Field is required","Must be a valid email address"],"value":"invalidEmail"},"fieldName2":{"messages":["Must be at least 18 years old"],"value":17},"fieldName3":{"messages":["Must be a boolean value"],"value":true},"fieldName4":{"messages":["Must be a valid object"],"value":{"key":"value"}},"fieldName5":{"messages":["Field is missing"],"value":null},"fieldName6":{"messages":["Undefined value"]}},"message":"xx xx xx ","ctx":{"workflowId":"some_wf_id","stepId":"some_wf_id"},"errorId":"abc123"}}},"exampleType":"generated"}},"exampleType":"generated"},"335bd6d5-05df-413c-b0dd-a26cb4f8c885":{"description":"The client has sent too many requests in a given amount of time. ","headers":{"Content-Type":{"required":true,"description":"The MIME type of the response body.","schema":{"type":"string"},"example":"application/json"},"RateLimit-Limit":{"required":false,"description":"The number of requests that the client is permitted to make per second. The actual maximum may differ when burst is enabled.","schema":{"type":"string"},"example":"100"},"RateLimit-Remaining":{"required":false,"description":"The number of requests remaining until the next window.","schema":{"type":"string"},"example":"93"},"RateLimit-Reset":{"required":false,"description":"The remaining seconds until a request of the same cost will be refreshed.","schema":{"type":"string"},"example":"8"},"RateLimit-Policy":{"required":false,"description":"The rate limit policy that was used to evaluate the request.","schema":{"type":"string"},"example":"100;w=1;burst=110;comment=\"token bucket\";category=\"trigger\";cost=\"single\""},"Idempotency-Key":{"required":false,"description":"The idempotency key used to evaluate the request.","schema":{"type":"string"},"example":"8"},"Idempotency-Replay":{"required":false,"description":"Whether the request was a replay of a previous request.","schema":{"type":"string"},"example":"true"},"Retry-After":{"required":false,"description":"The number of seconds after which the client may retry the request that was previously rejected.","schema":{"type":"string"},"example":"8"}},"content":{"application/json":{"schema":{"type":"string","example":"API rate limit exceeded","uniqueKey":"","typeLabel":"string"},"examples":{"Example":{"title":"Example","value":"API rate limit exceeded"}},"exampleType":"generated"}},"exampleType":"generated"},"d02d074d-c09e-4fb2-9094-88fbf73f3fb0":{"description":"Internal Server Error","headers":{"Content-Type":{"required":true,"description":"The MIME type of the response body.","schema":{"type":"string"},"example":"application/json"},"RateLimit-Limit":{"required":false,"description":"The number of requests that the client is permitted to make per second. The actual maximum may differ when burst is enabled.","schema":{"type":"string"},"example":"100"},"RateLimit-Remaining":{"required":false,"description":"The number of requests remaining until the next window.","schema":{"type":"string"},"example":"93"},"RateLimit-Reset":{"required":false,"description":"The remaining seconds until a request of the same cost will be refreshed.","schema":{"type":"string"},"example":"8"},"RateLimit-Policy":{"required":false,"description":"The rate limit policy that was used to evaluate the request.","schema":{"type":"string"},"example":"100;w=1;burst=110;comment=\"token bucket\";category=\"trigger\";cost=\"single\""},"Idempotency-Key":{"required":false,"description":"The idempotency key used to evaluate the request.","schema":{"type":"string"},"example":"8"},"Idempotency-Replay":{"required":false,"description":"Whether the request was a replay of a previous request.","schema":{"type":"string"},"example":"true"}},"content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","description":"HTTP status code of the error response.","example":404,"isRequired":true,"uniqueKey":"statusCode","typeLabel":"number"},"timestamp":{"type":"string","description":"Timestamp of when the error occurred.","example":"2024-12-12T13:00:00Z","isRequired":true,"uniqueKey":"timestamp","typeLabel":"string"},"path":{"type":"string","description":"The path where the error occurred.","example":"/api/v1/resource","isRequired":true,"uniqueKey":"path","typeLabel":"string"},"message":{"oneOf":[{"type":"string","description":"Value that failed validation","example":"xx xx xx ","uniqueKey":"message.oneOf.0","typeLabel":"string"},{"type":"null","description":"Value that failed validation","example":"xx xx xx ","uniqueKey":"message.oneOf.1","typeLabel":"null"},{"type":"number","description":"Value that failed validation","example":"xx xx xx ","uniqueKey":"message.oneOf.2","typeLabel":"number"},{"type":"boolean","description":"Value that failed validation","example":"xx xx xx ","uniqueKey":"message.oneOf.3","typeLabel":"boolean"},{"type":"object","description":"Value that failed validation","example":"xx xx xx ","uniqueKey":"message.oneOf.4","typeLabel":"object"},{"type":"null","description":"Value that failed validation","example":"xx xx xx ","uniqueKey":"message.oneOf.5","typeLabel":"null"},{"type":"array","items":{"oneOf":[{"type":"string","uniqueKey":"message.oneOf.6.items.[INDEX].oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"message.oneOf.6.items.[INDEX].oneOf.1","typeLabel":"null"},{"type":"number","uniqueKey":"message.oneOf.6.items.[INDEX].oneOf.2","typeLabel":"number"},{"type":"boolean","uniqueKey":"message.oneOf.6.items.[INDEX].oneOf.3","typeLabel":"boolean"},{"type":"object","additionalProperties":true,"uniqueKey":"message.oneOf.6.items.[INDEX].oneOf.4","typeLabel":"object"}],"uniqueKey":"message.oneOf.6.items.[INDEX]","typeLabel":"string | null | number | boolean | object"},"description":"Value that failed validation","example":"xx xx xx ","uniqueKey":"message.oneOf.6","typeLabel":"(string | null | number | boolean | object)[]"}],"uniqueKey":"message","typeLabel":"string · null · number · boolean · object · null · (string | null | number | boolean | object)[]"},"ctx":{"type":"object","description":"Optional context object for additional error details.","additionalProperties":true,"example":{"workflowId":"some_wf_id","stepId":"some_wf_id"},"uniqueKey":"ctx","typeLabel":"object"},"errorId":{"type":"string","description":"Optional unique identifier for the error, useful for tracking using Sentry and \n New Relic, only available for 500.","example":"abc123","uniqueKey":"errorId","typeLabel":"string"}},"required":["statusCode","timestamp","path"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"statusCode":404,"timestamp":"2024-12-12T13:00:00Z","path":"/api/v1/resource","message":"xx xx xx ","ctx":{"workflowId":"some_wf_id","stepId":"some_wf_id"},"errorId":"abc123"}}},"exampleType":"generated"}},"exampleType":"generated"},"1f0db3d0-6bb2-4293-a72d-6b8347d758d1":{"description":"The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.","headers":{"Content-Type":{"required":true,"description":"The MIME type of the response body.","schema":{"type":"string"},"example":"application/json"},"RateLimit-Limit":{"required":false,"description":"The number of requests that the client is permitted to make per second. The actual maximum may differ when burst is enabled.","schema":{"type":"string"},"example":"100"},"RateLimit-Remaining":{"required":false,"description":"The number of requests remaining until the next window.","schema":{"type":"string"},"example":"93"},"RateLimit-Reset":{"required":false,"description":"The remaining seconds until a request of the same cost will be refreshed.","schema":{"type":"string"},"example":"8"},"RateLimit-Policy":{"required":false,"description":"The rate limit policy that was used to evaluate the request.","schema":{"type":"string"},"example":"100;w=1;burst=110;comment=\"token bucket\";category=\"trigger\";cost=\"single\""},"Idempotency-Key":{"required":false,"description":"The idempotency key used to evaluate the request.","schema":{"type":"string"},"example":"8"},"Idempotency-Replay":{"required":false,"description":"Whether the request was a replay of a previous request.","schema":{"type":"string"},"example":"true"},"Retry-After":{"required":false,"description":"The number of seconds after which the client may retry the request that was previously rejected.","schema":{"type":"string"},"example":"8"}},"content":{"application/json":{"schema":{"type":"string","example":"Please wait some time, then try again.","uniqueKey":"","typeLabel":"string"},"examples":{"Example":{"title":"Example","value":"Please wait some time, then try again."}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"8ff678e0-f08a-4dfa-9143-aaa18e41846f":{"secretKey":{"type":"apiKey","name":"Authorization","in":"header","description":"API key authentication. Allowed headers-- \"Authorization: ApiKey \u003cnovu_secret_key>\".","x-speakeasy-example":"YOUR_SECRET_KEY_HERE","scopes":[]}}},"servers":{"29cc13d7-64c7-40f9-8a35-9c01537b78f4":{"url":"https://api.novu.co"},"7588375a-aa7e-462d-a5bf-d94b8564f985":{"url":"https://eu.api.novu.co"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"apiKey","name":"Authorization","in":"header","description":"API key authentication. Allowed headers-- \"Authorization: ApiKey \u003cnovu_secret_key>\".","x-speakeasy-example":"YOUR_SECRET_KEY_HERE","scopes":[]},"schema":{"title":"Authorization","type":"string","description":"API key authentication. Allowed headers-- \"Authorization: ApiKey \u003cnovu_secret_key>\".","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"secretKey","name":"Authorization"}],"title":"secretKey"}]},"originalFileLocation":"https://spec.speakeasy.com/novu/novu/json-development-with-code-samples"},"subdomain":"novu-c5de82d9","siteName":"Novu","title":"Publish resources to target environment - Novu","contextualStarterQuestions":[{"_id":"6a4617871acb1ee4e52cb7b8","deploymentId":"6a3b890b89d2acbacf3fa68a","questionText":"Which resources can I publish?","status":"active","generatedBy":"contextual","path":"api-reference/environments/publish-resources-to-target-environment","createdAt":"2026-07-02T07:47:19.175Z","updatedAt":"2026-07-02T07:47:19.175Z","__v":0},{"_id":"6a4617871acb1ee4e52cb7b6","deploymentId":"6a3b890b89d2acbacf3fa68a","questionText":"How do I publish resources?","status":"active","generatedBy":"contextual","path":"api-reference/environments/publish-resources-to-target-environment","createdAt":"2026-07-02T07:47:19.175Z","updatedAt":"2026-07-02T07:47:19.175Z","__v":0},{"_id":"6a4617871acb1ee4e52cb7b7","deploymentId":"6a3b890b89d2acbacf3fa68a","questionText":"What auth is required?","status":"active","generatedBy":"contextual","path":"api-reference/environments/publish-resources-to-target-environment","createdAt":"2026-07-02T07:47:19.175Z","updatedAt":"2026-07-02T07:47:19.175Z","__v":0}],"navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-07-09T07:59:57.974Z","originalFileLocation":"api-reference/environments/publish-resources-to-target-environment.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Publishes all workflows and resources from the source environment to the target environment. Optionally specify specific resources to publish or use dryRun mode to preview changes.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Novu\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/novu-c5de82d9/hif-BqO_gbG8zfWr/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/novu-c5de82d9/hif-BqO_gbG8zfWr/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/novu-c5de82d9/hif-BqO_gbG8zfWr/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/novu-c5de82d9/hif-BqO_gbG8zfWr/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/novu-c5de82d9/hif-BqO_gbG8zfWr/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/novu-c5de82d9/hif-BqO_gbG8zfWr/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/novu-c5de82d9/hif-BqO_gbG8zfWr/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/novu-c5de82d9/hif-BqO_gbG8zfWr/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/novu-c5de82d9/hif-BqO_gbG8zfWr/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Publish resources to target environment - Novu\">\u003cmeta data-mint-head property=\"og:description\" content=\"Publishes all workflows and resources from the source environment to the target environment. Optionally specify specific resources to publish or use dryRun mode to preview changes.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Novu\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.novu.co/api-reference/environments/publish-resources-to-target-environment\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://novu-c5de82d9.mintlify.app/_mintlify/api/og/v2?division=Environments\u0026amp;title=Publish+resources+to+target+environment\u0026amp;description=Publishes+all+workflows+and+resources+from+the+source+environment+to+the+target+environment.+Optionally+specify+specific+resources+to+publish+or+use+dryRun+mode\u0026amp;theme=1ee19fc55ed421ff750b0681\u0026amp;signature=1fadbc32998105cff8d45b9b2173dfde1f6eab264a6697f9256644f32860f194\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Publish resources to target environment - Novu\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Publishes all workflows and resources from the source environment to the target environment. Optionally specify specific resources to publish or use dryRun mode to preview changes.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://novu-c5de82d9.mintlify.app/_mintlify/api/og/v2?division=Environments\u0026amp;title=Publish+resources+to+target+environment\u0026amp;description=Publishes+all+workflows+and+resources+from+the+source+environment+to+the+target+environment.+Optionally+specify+specific+resources+to+publish+or+use+dryRun+mode\u0026amp;theme=1ee19fc55ed421ff750b0681\u0026amp;signature=1fadbc32998105cff8d45b9b2173dfde1f6eab264a6697f9256644f32860f194\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/novu-c5de82d9/hif-BqO_gbG8zfWr/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Novu\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#0e121b\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.novu.co/api-reference/environments/publish-resources-to-target-environment\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/environments/publish-resources-to-target-environment.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.novu.co/#organization\",\"name\":\"Novu\",\"url\":\"https://docs.novu.co\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/novu-c5de82d9/2Q_L4HxwUfLmJjB8/logo/light.svg?fit=max\u0026auto=format\u0026n=2Q_L4HxwUfLmJjB8\u0026q=85\u0026s=23e7050191303b6a0ac4a671dfed8df4\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.novu.co#website\",\"name\":\"Novu\",\"url\":\"https://docs.novu.co\",\"publisher\":{\"@id\":\"https://docs.novu.co/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.novu.co/api-reference/environments/publish-resources-to-target-environment#webpage\",\"url\":\"https://docs.novu.co/api-reference/environments/publish-resources-to-target-environment\",\"name\":\"Publish resources to target environment\",\"description\":\"Publishes all workflows and resources from the source environment to the target environment. Optionally specify specific resources to publish or use dryRun mode to preview changes.\",\"dateModified\":\"2026-07-09T07:59:57.974Z\",\"isPartOf\":{\"@id\":\"https://docs.novu.co#website\"},\"breadcrumb\":{\"@id\":\"https://docs.novu.co/api-reference/environments/publish-resources-to-target-environment#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.novu.co/api-reference/environments/publish-resources-to-target-environment#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Platform \u0026 channels\",\"item\":\"https://docs.novu.co/api-reference/environments/environment-schema\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Environments\",\"item\":\"https://docs.novu.co/api-reference/environments/environment-schema\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Publish resources to target environment\",\"item\":\"https://docs.novu.co/api-reference/environments/publish-resources-to-target-environment\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.novu.co/api-reference/environments/publish-resources-to-target-environment#apireference\",\"headline\":\"Publish resources to target environment\",\"name\":\"Publish resources to target environment\",\"description\":\"Publishes all workflows and resources from the source environment to the target environment. Optionally specify specific resources to publish or use dryRun mode to preview changes.\",\"url\":\"https://docs.novu.co/api-reference/environments/publish-resources-to-target-environment\",\"mainEntityOfPage\":{\"@id\":\"https://docs.novu.co/api-reference/environments/publish-resources-to-target-environment#webpage\"},\"dateModified\":\"2026-07-09T07:59:57.974Z\",\"publisher\":{\"@id\":\"https://docs.novu.co/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.novu.co#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Novu\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Novu","nav":{"global":{"anchors":[]},"tabs":[{"tab":"Notify","pages":[{"title":"Notify","href":"/platform"}]},{"tab":"Agent Connect","pages":[{"title":"Agent Connect","href":"/agents"}]},{"tab":"API Reference","groups":[{"group":"Getting Started","pages":[{"title":"Novu REST API Reference","sidebarTitle":"Overview","href":"/api-reference"},{"title":"Authentication","href":"/api-reference/authentication"},{"title":"Errors","href":"/api-reference/errors"},{"title":"Pagination","href":"/api-reference/pagination"},{"title":"Rate Limiting","href":"/api-reference/rate-limiting"},{"title":"Idempotency","href":"/api-reference/idempotency"},{"title":"Payload Limits","href":"/api-reference/payload-limits"}]},{"group":"Notification delivery","icon":"send","pages":[{"group":"Events","expanded":false,"pages":[{"title":"Trigger event","openapi":"POST /v1/events/trigger","href":"/api-reference/events/trigger-event"},{"title":"Bulk trigger event","openapi":"POST /v1/events/trigger/bulk","href":"/api-reference/events/bulk-trigger-event"},{"title":"Broadcast event to all","openapi":"POST /v1/events/trigger/broadcast","href":"/api-reference/events/broadcast-event-to-all"},{"title":"Cancel triggered event","openapi":"DELETE /v1/events/trigger/{transactionId}","href":"/api-reference/events/cancel-triggered-event"}]},{"group":"Notifications","expanded":false,"pages":[{"title":"Notification event schema","sidebarTitle":"Schema","href":"/api-reference/notifications/notification-event-schema"},{"title":"List all events","openapi":"GET /v1/notifications","href":"/api-reference/notifications/list-all-events"},{"title":"Retrieve an event","openapi":"GET /v1/notifications/{notificationId}","href":"/api-reference/notifications/retrieve-an-event"}]},{"group":"Messages","expanded":false,"pages":[{"title":"Message schema","sidebarTitle":"Schema","href":"/api-reference/messages/message-schema"},{"title":"List all messages","openapi":"GET /v1/messages","href":"/api-reference/messages/list-all-messages"},{"title":"Delete a message","openapi":"DELETE /v1/messages/{messageId}","href":"/api-reference/messages/delete-a-message"},{"title":"Delete messages by transactionId","openapi":"DELETE /v1/messages/transaction/{transactionId}","href":"/api-reference/messages/delete-messages-by-transactionid"}]},{"group":"Activity","expanded":false,"pages":[{"title":"Track activity and engagement events","openapi":"POST /v2/inbound-webhooks/delivery-providers/{environmentId}/{integrationId}","href":"/api-reference/activity/track-activity-and-engagement-events"}]}]},{"group":"Agents","icon":"bot","pages":[{"title":"Agent schema","sidebarTitle":"Schema","href":"/api-reference/agents/agent-schema"},{"group":"Management","expanded":false,"pages":[{"title":"Create an agent","openapi":"POST /v1/agents","href":"/api-reference/agents/create-an-agent"},{"title":"List all agents","openapi":"GET /v1/agents","href":"/api-reference/agents/list-all-agents"},{"title":"Retrieve an agent","openapi":"GET /v1/agents/{identifier}","href":"/api-reference/agents/retrieve-an-agent"},{"title":"Update an agent","openapi":"PATCH /v1/agents/{identifier}","href":"/api-reference/agents/update-an-agent"},{"title":"Delete an agent","openapi":"DELETE /v1/agents/{identifier}","href":"/api-reference/agents/delete-an-agent"}]},{"group":"Runtime","expanded":false,"pages":[{"title":"Update an agent bridge","openapi":"PUT /v1/agents/{identifier}/bridge","href":"/api-reference/agents/update-an-agent-bridge"},{"title":"Send an agent reply","openapi":"POST /v1/agents/{agentId}/reply","href":"/api-reference/agents/send-an-agent-reply"}]},{"group":"Integrations","expanded":false,"pages":[{"title":"Create an agent integration","openapi":"POST /v1/agents/{identifier}/integrations","href":"/api-reference/agents/create-an-agent-integration"},{"title":"List agent integrations","openapi":"GET /v1/agents/{identifier}/integrations","href":"/api-reference/agents/list-agent-integrations"},{"title":"Update an agent integration","openapi":"PATCH /v1/agents/{identifier}/integrations/{agentIntegrationId}","href":"/api-reference/agents/update-an-agent-integration"},{"title":"Delete an agent integration","openapi":"DELETE /v1/agents/{identifier}/integrations/{agentIntegrationId}","href":"/api-reference/agents/delete-an-agent-integration"}]}]},{"group":"Data","icon":"database","pages":[{"group":"Subscribers","expanded":false,"pages":[{"title":"Subscriber schema","sidebarTitle":"Schema","href":"/api-reference/subscribers/subscriber-schema"},{"group":"Management","expanded":false,"pages":[{"title":"Create a subscriber","openapi":"POST /v2/subscribers","href":"/api-reference/subscribers/create-a-subscriber"},{"title":"Retrieve a subscriber","openapi":"GET /v2/subscribers/{subscriberId}","href":"/api-reference/subscribers/retrieve-a-subscriber"},{"title":"Update a subscriber","openapi":"PATCH /v2/subscribers/{subscriberId}","href":"/api-reference/subscribers/update-a-subscriber"},{"title":"Delete a subscriber","openapi":"DELETE /v2/subscribers/{subscriberId}","href":"/api-reference/subscribers/delete-a-subscriber"},{"title":"Search subscribers","openapi":"GET /v2/subscribers","href":"/api-reference/subscribers/search-subscribers"},{"title":"Bulk create subscribers","openapi":"POST /v1/subscribers/bulk","href":"/api-reference/subscribers/bulk-create-subscribers"}]},{"group":"Subscriptions","expanded":false,"pages":[{"title":"Retrieve subscriber subscriptions","openapi":"GET /v2/subscribers/{subscriberId}/subscriptions","href":"/api-reference/subscribers/retrieve-subscriber-subscriptions"}]},{"group":"Preferences","expanded":false,"pages":[{"title":"Retrieve subscriber preferences","openapi":"GET /v2/subscribers/{subscriberId}/preferences","href":"/api-reference/subscribers/retrieve-subscriber-preferences"},{"title":"Update subscriber preferences","openapi":"PATCH /v2/subscribers/{subscriberId}/preferences","href":"/api-reference/subscribers/update-subscriber-preferences"},{"title":"Bulk update subscriber preferences","openapi":"PATCH /v2/subscribers/{subscriberId}/preferences/bulk","href":"/api-reference/subscribers/bulk-update-subscriber-preferences"}]},{"group":"Credentials","expanded":false,"pages":[{"title":"Update provider credentials","openapi":"PUT /v1/subscribers/{subscriberId}/credentials","href":"/api-reference/subscribers/update-provider-credentials"},{"title":"Upsert provider credentials","openapi":"PATCH /v1/subscribers/{subscriberId}/credentials","href":"/api-reference/subscribers/upsert-provider-credentials"},{"title":"Delete provider credentials","openapi":"DELETE /v1/subscribers/{subscriberId}/credentials/{providerId}","href":"/api-reference/subscribers/delete-provider-credentials"}]},{"group":"Notification state","expanded":false,"pages":[{"title":"Retrieve subscriber notifications","openapi":"GET /v1/subscribers/{subscriberId}/notifications/feed","href":"/api-reference/subscribers/retrieve-subscriber-notifications"},{"title":"Update notifications state","openapi":"POST /v1/subscribers/{subscriberId}/messages/mark-as","href":"/api-reference/subscribers/update-notifications-state"},{"title":"Update all notifications state","openapi":"POST /v1/subscribers/{subscriberId}/messages/mark-all","href":"/api-reference/subscribers/update-all-notifications-state"},{"title":"Update subscriber online status","openapi":"PATCH /v1/subscribers/{subscriberId}/online-status","href":"/api-reference/subscribers/update-subscriber-online-status"},{"title":"Retrieve unseen notifications count","openapi":"GET /v1/subscribers/{subscriberId}/notifications/unseen","href":"/api-reference/subscribers/retrieve-unseen-notifications-count"},{"title":"Update notification action status","openapi":"POST /v1/subscribers/{subscriberId}/messages/{messageId}/actions/{type}","href":"/api-reference/subscribers/update-notification-action-status"}]}]},{"group":"Inbox","expanded":false,"pages":[{"group":"Counts","expanded":false,"pages":[{"title":"Retrieve subscriber notifications count","openapi":"GET /v2/subscribers/{subscriberId}/notifications/count","href":"/api-reference/subscribers/retrieve-subscriber-notifications-count"}]},{"group":"Read \u0026 seen","expanded":false,"pages":[{"title":"Mark a notification as read","openapi":"PATCH /v2/subscribers/{subscriberId}/notifications/{notificationId}/read","href":"/api-reference/subscribers/mark-a-notification-as-read"},{"title":"Mark a notification as unread","openapi":"PATCH /v2/subscribers/{subscriberId}/notifications/{notificationId}/unread","href":"/api-reference/subscribers/mark-a-notification-as-unread"},{"title":"Mark all notifications as read","openapi":"POST /v2/subscribers/{subscriberId}/notifications/read","href":"/api-reference/subscribers/mark-all-notifications-as-read"},{"title":"Mark notifications as seen","openapi":"POST /v2/subscribers/{subscriberId}/notifications/seen","href":"/api-reference/subscribers/mark-notifications-as-seen"}]},{"group":"Snooze","expanded":false,"pages":[{"title":"Snooze a notification","openapi":"PATCH /v2/subscribers/{subscriberId}/notifications/{notificationId}/snooze","href":"/api-reference/subscribers/snooze-a-notification"},{"title":"Unsnooze a notification","openapi":"PATCH /v2/subscribers/{subscriberId}/notifications/{notificationId}/unsnooze","href":"/api-reference/subscribers/unsnooze-a-notification"}]},{"group":"Archive","expanded":false,"pages":[{"title":"Archive a notification","openapi":"PATCH /v2/subscribers/{subscriberId}/notifications/{notificationId}/archive","href":"/api-reference/subscribers/archive-a-notification"},{"title":"Unarchive a notification","openapi":"PATCH /v2/subscribers/{subscriberId}/notifications/{notificationId}/unarchive","href":"/api-reference/subscribers/unarchive-a-notification"},{"title":"Archive all notifications","openapi":"POST /v2/subscribers/{subscriberId}/notifications/archive","href":"/api-reference/subscribers/archive-all-notifications"},{"title":"Archive all read notifications","openapi":"POST /v2/subscribers/{subscriberId}/notifications/read-archive","href":"/api-reference/subscribers/archive-all-read-notifications"}]},{"group":"Delete","expanded":false,"pages":[{"title":"Delete a notification","openapi":"DELETE /v2/subscribers/{subscriberId}/notifications/{notificationId}","href":"/api-reference/subscribers/delete-a-notification"},{"title":"Delete all notifications","openapi":"POST /v2/subscribers/{subscriberId}/notifications/delete","href":"/api-reference/subscribers/delete-all-notifications"}]},{"group":"Actions","expanded":false,"pages":[{"title":"Complete a notification action","openapi":"PATCH /v2/subscribers/{subscriberId}/notifications/{notificationId}/actions/{actionType}/complete","href":"/api-reference/subscribers/complete-a-notification-action"},{"title":"Revert a notification action","openapi":"PATCH /v2/subscribers/{subscriberId}/notifications/{notificationId}/actions/{actionType}/revert","href":"/api-reference/subscribers/revert-a-notification-action"}]}]},{"group":"Topics","expanded":false,"pages":[{"title":"Topic schema","sidebarTitle":"Schema","href":"/api-reference/topics/topic-schema"},{"group":"Management","expanded":false,"pages":[{"title":"Create a topic","openapi":"POST /v2/topics","href":"/api-reference/topics/create-a-topic"},{"title":"Retrieve a topic","openapi":"GET /v2/topics/{topicKey}","href":"/api-reference/topics/retrieve-a-topic"},{"title":"Update a topic","openapi":"PATCH /v2/topics/{topicKey}","href":"/api-reference/topics/update-a-topic"},{"title":"Delete a topic","openapi":"DELETE /v2/topics/{topicKey}","href":"/api-reference/topics/delete-a-topic"},{"title":"List all topics","openapi":"GET /v2/topics","href":"/api-reference/topics/list-all-topics"}]},{"group":"Subscriptions","expanded":false,"pages":[{"title":"Create topic subscriptions","openapi":"POST /v2/topics/{topicKey}/subscriptions","href":"/api-reference/topics/create-topic-subscriptions"},{"title":"Delete topic subscriptions","openapi":"DELETE /v2/topics/{topicKey}/subscriptions","href":"/api-reference/topics/delete-topic-subscriptions"},{"title":"Update a topic subscription","openapi":"PATCH /v2/topics/{topicKey}/subscriptions/{identifier}","href":"/api-reference/topics/update-a-topic-subscription"},{"title":"List topic subscriptions","openapi":"GET /v2/topics/{topicKey}/subscriptions","href":"/api-reference/topics/list-topic-subscriptions"},{"title":"Check topic subscriber","openapi":"GET /v1/topics/{topicKey}/subscribers/{externalSubscriberId}","href":"/api-reference/topics/check-topic-subscriber"},{"title":"Retrieve a topic subscription","openapi":"GET /v2/topics/{topicKey}/subscriptions/{identifier}","href":"/api-reference/topics/retrieve-a-topic-subscription"}]}]},{"group":"Contexts","expanded":false,"pages":[{"title":"Context schema","sidebarTitle":"Schema","href":"/api-reference/contexts/context-schema"},{"title":"Create a context","openapi":"POST /v2/contexts","href":"/api-reference/contexts/create-a-context"},{"title":"Retrieve a context","openapi":"GET /v2/contexts/{type}/{id}","href":"/api-reference/contexts/retrieve-a-context"},{"title":"Update a context","openapi":"PATCH /v2/contexts/{type}/{id}","href":"/api-reference/contexts/update-a-context"},{"title":"Delete a context","openapi":"DELETE /v2/contexts/{type}/{id}","href":"/api-reference/contexts/delete-a-context"},{"title":"List all contexts","openapi":"GET /v2/contexts","href":"/api-reference/contexts/list-all-contexts"}]},{"group":"Channel Connections","expanded":false,"pages":[{"title":"Create a channel connection","openapi":"POST /v1/channel-connections","href":"/api-reference/channel-connections/create-a-channel-connection"},{"title":"Retrieve a channel connection","openapi":"GET /v1/channel-connections/{identifier}","href":"/api-reference/channel-connections/retrieve-a-channel-connection"},{"title":"Update a channel connection","openapi":"PATCH /v1/channel-connections/{identifier}","href":"/api-reference/channel-connections/update-a-channel-connection"},{"title":"Delete a channel connection","openapi":"DELETE /v1/channel-connections/{identifier}","href":"/api-reference/channel-connections/delete-a-channel-connection"},{"title":"List all channel connections","openapi":"GET /v1/channel-connections","href":"/api-reference/channel-connections/list-all-channel-connections"}]},{"group":"Channel Endpoints","expanded":false,"pages":[{"title":"Create a channel endpoint","openapi":"POST /v1/channel-endpoints","href":"/api-reference/channel-endpoints/create-a-channel-endpoint"},{"title":"Retrieve a channel endpoint","openapi":"GET /v1/channel-endpoints/{identifier}","href":"/api-reference/channel-endpoints/retrieve-a-channel-endpoint"},{"title":"Update a channel endpoint","openapi":"PATCH /v1/channel-endpoints/{identifier}","href":"/api-reference/channel-endpoints/update-a-channel-endpoint"},{"title":"Delete a channel endpoint","openapi":"DELETE /v1/channel-endpoints/{identifier}","href":"/api-reference/channel-endpoints/delete-a-channel-endpoint"},{"title":"List all channel endpoints","openapi":"GET /v1/channel-endpoints","href":"/api-reference/channel-endpoints/list-all-channel-endpoints"}]}]},{"group":"Workflows \u0026 content","icon":"git-branch","pages":[{"group":"Workflows","expanded":false,"pages":[{"title":"Workflow schema","sidebarTitle":"Schema","href":"/api-reference/workflows/workflow-schema"},{"title":"Create a workflow","openapi":"POST /v2/workflows","href":"/api-reference/workflows/create-a-workflow"},{"title":"Retrieve a workflow","openapi":"GET /v2/workflows/{workflowId}","href":"/api-reference/workflows/retrieve-a-workflow"},{"title":"Update a workflow","openapi":"PUT /v2/workflows/{workflowId}","href":"/api-reference/workflows/update-a-workflow"},{"title":"Delete a workflow","openapi":"DELETE /v2/workflows/{workflowId}","href":"/api-reference/workflows/delete-a-workflow"},{"title":"List all workflows","openapi":"GET /v2/workflows","href":"/api-reference/workflows/list-all-workflows"},{"title":"Sync a workflow","openapi":"PUT /v2/workflows/{workflowId}/sync","href":"/api-reference/workflows/sync-a-workflow"},{"title":"Retrieve workflow step","openapi":"GET /v2/workflows/{workflowId}/steps/{stepId}","href":"/api-reference/workflows/retrieve-workflow-step"},{"title":"Generate a step preview","openapi":"POST /v2/workflows/{workflowId}/step/{stepId}/preview","href":"/api-reference/workflows/generate-a-step-preview"}]},{"group":"Translations","expanded":false,"pages":[{"title":"Create a translation","openapi":"POST /v2/translations","href":"/api-reference/translations/create-a-translation"},{"title":"Retrieve a translation","openapi":"GET /v2/translations/{resourceType}/{resourceId}/{locale}","href":"/api-reference/translations/retrieve-a-translation"},{"title":"Delete a translation","openapi":"DELETE /v2/translations/{resourceType}/{resourceId}/{locale}","href":"/api-reference/translations/delete-a-translation"},{"title":"Retrieve a translation group","openapi":"GET /v2/translations/group/{resourceType}/{resourceId}","href":"/api-reference/translations/retrieve-a-translation-group"},{"title":"Delete a translation group","openapi":"DELETE /v2/translations/{resourceType}/{resourceId}","href":"/api-reference/translations/delete-a-translation-group"},{"title":"Import master translations JSON","openapi":"POST /v2/translations/master-json","href":"/api-reference/translations/import-master-translations-json"},{"title":"Retrieve master translations JSON","openapi":"GET /v2/translations/master-json","href":"/api-reference/translations/retrieve-master-translations-json"},{"title":"Upload master translations JSON file","openapi":"POST /v2/translations/master-json/upload","href":"/api-reference/translations/upload-master-translations-json-file"},{"title":"Upload translation files","openapi":"POST /v2/translations/upload","href":"/api-reference/translations/upload-translation-files"}]},{"group":"Layouts","expanded":false,"pages":[{"title":"Create a layout","openapi":"POST /v2/layouts","href":"/api-reference/layouts/create-a-layout"},{"title":"Delete a layout","openapi":"DELETE /v2/layouts/{layoutId}","href":"/api-reference/layouts/delete-a-layout"},{"title":"Duplicate a layout","openapi":"POST /v2/layouts/{layoutId}/duplicate","href":"/api-reference/layouts/duplicate-a-layout"},{"title":"Generate layout preview","openapi":"POST /v2/layouts/{layoutId}/preview","href":"/api-reference/layouts/generate-layout-preview"},{"title":"Get layout usage","openapi":"GET /v2/layouts/{layoutId}/usage","href":"/api-reference/layouts/get-layout-usage"},{"title":"List all layouts","openapi":"GET /v2/layouts","href":"/api-reference/layouts/list-all-layouts"},{"title":"Retrieve a layout","openapi":"GET /v2/layouts/{layoutId}","href":"/api-reference/layouts/retrieve-a-layout"},{"title":"Update a layout","openapi":"PUT /v2/layouts/{layoutId}","href":"/api-reference/layouts/update-a-layout"}]}]},{"group":"Platform \u0026 channels","icon":"settings","pages":[{"group":"Environments","expanded":false,"pages":[{"title":"Environment schema","sidebarTitle":"Schema","href":"/api-reference/environments/environment-schema"},{"title":"Create an environment","openapi":"POST /v1/environments","href":"/api-reference/environments/create-an-environment"},{"title":"Update an environment","openapi":"PUT /v1/environments/{environmentId}","href":"/api-reference/environments/update-an-environment"},{"title":"Delete an environment","openapi":"DELETE /v1/environments/{environmentId}","href":"/api-reference/environments/delete-an-environment"},{"title":"List all environments","openapi":"GET /v1/environments","href":"/api-reference/environments/list-all-environments"},{"title":"List environment tags","openapi":"GET /v2/environments/{environmentId}/tags","href":"/api-reference/environments/list-environment-tags"},{"title":"Compare resources between environments","openapi":"POST /v2/environments/{targetEnvironmentId}/diff","description":"Compares workflows and other resources between the source and target environments, returning detailed diff information including additions, modifications, and deletions.","href":"/api-reference/environments/compare-resources-between-environments"},{"title":"Publish resources to target environment","openapi":"POST /v2/environments/{targetEnvironmentId}/publish","href":"/api-reference/environments/publish-resources-to-target-environment"}]},{"group":"Environment Variables","expanded":false,"pages":[{"title":"Environment variable schema","sidebarTitle":"Schema","description":"Reference the Novu environment variable schema used in API requests and responses. Review fields, data types, and object structure for this resource.","href":"/api-reference/environment-variables/environment-variable-schema"},{"title":"Create a variable","openapi":"POST /v1/environment-variables","href":"/api-reference/environment-variables/create-a-variable"},{"title":"Retrieve a variable","openapi":"GET /v1/environment-variables/{variableKey}","href":"/api-reference/environment-variables/retrieve-a-variable"},{"title":"Update a variable","openapi":"PATCH /v1/environment-variables/{variableKey}","href":"/api-reference/environment-variables/update-a-variable"},{"title":"Delete a variable","openapi":"DELETE /v1/environment-variables/{variableKey}","href":"/api-reference/environment-variables/delete-a-variable"},{"title":"List all variables","openapi":"GET /v1/environment-variables","href":"/api-reference/environment-variables/list-all-variables"},{"title":"Retrieve a variable usage","openapi":"GET /v1/environment-variables/{variableKey}/usage","href":"/api-reference/environment-variables/retrieve-a-variable-usage"}]},{"group":"Integrations","expanded":false,"pages":[{"title":"Integration schema","sidebarTitle":"Schema","href":"/api-reference/integrations/integration-schema"},{"title":"Create an integration","openapi":"POST /v1/integrations","href":"/api-reference/integrations/create-an-integration"},{"title":"Update an integration","openapi":"PUT /v1/integrations/{integrationId}","href":"/api-reference/integrations/update-an-integration"},{"title":"Delete an integration","openapi":"DELETE /v1/integrations/{integrationId}","href":"/api-reference/integrations/delete-an-integration"},{"title":"List all integrations","openapi":"GET /v1/integrations","href":"/api-reference/integrations/list-all-integrations"},{"title":"List active integrations","openapi":"GET /v1/integrations/active","href":"/api-reference/integrations/list-active-integrations"},{"title":"Update integration as primary","openapi":"POST /v1/integrations/{integrationId}/set-primary","href":"/api-reference/integrations/update-integration-as-primary"},{"title":"Generate chat OAuth URL","openapi":"POST /v1/integrations/chat/oauth","href":"/api-reference/integrations/generate-chat-oauth-url"},{"title":"Auto-configure an integration for inbound webhooks","openapi":"POST /v1/integrations/{integrationId}/auto-configure","href":"/api-reference/integrations/auto-configure-an-integration-for-inbound-webhooks"}]}]}]},{"tab":"Resources","menu":[{"item":"Guides","pages":[{"title":"Guides","href":"/guides"}]},{"item":"Framework","pages":[{"title":"Framework","href":"/framework"}]},{"item":"Community","pages":[{"title":"Community","href":"/community"}]}],"pages":[{"title":"Resources","href":"/guides"}]}]},"basePath":"","title":"Publish resources to target environment - Novu","buildId":"dpl_2gSLkbMoF5kkLsBqYzq9KWtDyJRo","deploymentId":"dpl_2gSLkbMoF5kkLsBqYzq9KWtDyJRo","dynamics":["c2aa737661","b0f84f53ff","a9bb46feb3","2b790eda92"],"chunks":["OpenApiReferenceProvider-hfTk6MZX.js","utils-Bfp7HcY4.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-D8dSW7yV.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-CFgQXcZO.js","snippetPresets-dMW1-pV3.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","Page-BsZAA8xk.js","ApiExamples-DyrCOido.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-Bwwdcyh3.js","shallow-drVXTg79.js","getApiPlaygroundDisplay-GMPxUzWV.js","CodeSnippet-wTmV0wP6.js","CodeSnippets-D_QxCJEq.js","getPastedJson-Dev-X0Xy.js","icon-7L2WL0jD.js","MethodPill-Ble59Dl_.js","DuplicateIcon-r-98uLGh.js","createIcon-DaFzipjW.js","DynamicMarkdown-Jk8YAWGN.js","SectionHeading-nLgrCDOg.js","axios-vUo_bRtp.js","Markdown-_QGow1Wo.js","clsx-v8ssfMzu.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-CjboTi0T.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-DkAyo-p5.js"]}